library(lifecontingencies)
Anualidades ordinarias
Para anualidades ordinarias se puede usar indistintamente el argumento arrears o el argumento immediate en las funciones accumulatedValue y annuity.
1. Una persona ahorra $400 cada seis meses y los invierte al 4% convertible semestralmente. Hallar el importe de sus ahorros después de 7 años.
\[
\begin{split}
VF &= R \ \left[ \frac{(1+i)^{n}-1}{i} \right] \\
&= 400 \ \left[ \frac{(1+ \frac{0.04}{2})^{7 \times 2}-1}{\frac{0.04}{2}}\right] \\
&= \$6389,58
\end{split}
\]
400 * accumulatedValue(i = 0.04 / 2, n = 7 * 2, k = 1, type = "arrears")
[1] 6389.575
2. Un empleado invierte $130 al final de cada trimestre en un fondo que paga 7% convertible trimestralmente. ¿Cuál será el importe del fondo precisamente después de 12 depósitos? \[X = VF = R \times \frac{(1+i)^{n}-1}{i}\]
130 * accumulatedValue(i = 0.07 / 4, n = 12, m = 0, k = 1, type = "arrears")
[1] 1719.263
3. ¿Cuál es el valor presente de $1600 depositados en una cuenta al final de cada trimestre durante 4 años, si la tasa de interés es del 8% convertible trimestralmente?
\[ X = VA = R \times \frac{1 - (1+i)^{-n}}{i}\]
1600 * annuity(i = 0.08 / 4, n = 4 * 4, type = "arrears")
[1] 21724.33
4. ¿Cuánto debió depositarse el 1 de junio de 2005 en un fondo que pagó el 10% convertible semestralmente con el objeto de poder hacer retiros semestrales de $2500 cada uno, desde el 1 de diciembre de 2005 hasta el 1 de diciembre de 2010?
\[ X = VA = R \times \frac{1 - (1+i)^{-n}}{i}\]
2500 * annuity(i = 0.10 / 2, n = 1 + 5 * 2, type = "immediate")
[1] 20766.04
5. Una persona compra un coche nuevo en $14000, si entrega su coche usado valorado en $4250 como parte de pago, ¿cuánto tendrá que pagar en efectivo el día de hoy si el saldo restante se lo liquidará mediante el pago de $550 al final de cada mes durante 18 meses, con intereses al 6% convertible mensualmente? \[ 14000 = 4250 + X + VA\] \[ X = 14000 - 4250 - R \times \frac{1 - (1+i)^{-n}}{i}\]
14000 - 4250 - 550 * annuity(i = 0.06 / 12, n = 18, type = "arrears")
[1] 304.9776
6. Un concesionario de automóviles ofrece un auto nuevo con un pago inicial de $8000 y 36 pagos mensuales de $680 cada uno, con interés del 12% capitalizable mensualmente ¿Cuál es el valor de contado del auto? \[ X = 8000 + R \times \frac{1 - (1+i)^{-n}}{i}\]
8000 + 680 * annuity(i = 0.12 / 12, n = 36, type = "arrears")
[1] 28473.1
7. El 1 de mayo de 2000 una persona depositó $500 en una cuenta de ahorros que paga el 3% convertible semestralmente y continuó haciendo depósitos similares cada 6 meses desde entonces. Después del 1 de mayo de 2003, el banco elevó el interés al 4% convertible semestralmente. ¿Cuánto registró la cuenta precisamente después del depósito del 1 de noviembre de 2005?
\[ X = \left[ C(1+i_1)^{n_1} + R \times\frac{(1+i_1)^{n_1}-1}{i_1} \right] (1+i_2)^{n_2} + R \times \frac{(1+i_2)^{n_2}-1}{i_2} \]
(500 * (1 + 0.03 / 2) ^ 6 +
500 * accumulatedValue(i = 0.03 / 2, n = 6, type = "arrears")) * (1 + 0.04 / 2) ^ 5 +
500 * accumulatedValue(i = 0.04 / 2, n = 5, type = "arrears")
[1] 6644.609
8. Una persona acuerda liquidar una deuda mediante 12 pagos semestrales de $5300 cada uno con intereses al 8% convertible semestral. Si omite los tres primeros pagos, ¿qué pago tendrá que hacer en el vencimiento del siguiente para quedar al corriente de sus pagos?
\[ X = VF = R \times \frac{(1+i)^{n}-1}{i}\]
5300 * accumulatedValue(i = 0.08 / 2, n = 4, type = "arrears")
[1] 22506.26
9. Una persona recibió tres ofertas al querer vender un apartamento: a) $ 90000 de contado, b) $30000 de contado y $2300 al mes durante 36 meses, c) $2800 al mes durante 3.5 años. Si la tasa de interés es del 12% convertible mensualmente, ¿cuál de estas ofertas es la más ventajosa?
\[X_a = VA_a\]
\[X_b = VA_b + R_b \times \frac{1 - (1+i)^{-n_b}}{i}\]
\[X_c = R_c \times \frac{1 - (1+i)^{-n_c}}{i}\]
(ofertas <- c(a = 90000,
b = 30000 + 2300 * annuity (i = 0.12 / 12, n = 36, type = "arrears"),
c = 2800 * annuity (i = 0.12 / 12, n = 3.5 * 12, type = "arrears")))
a b c
90000.00 99247.26 95642.70
ofertas[which.max(ofertas)]
b
99247.26
10. ¿Cuánto habrá en un fondo si se ha realizado depósitos trimestrales de $1200 durante 10 años, además un depósito al final de cada año de $1600 en un banco que reconoce el 12% convertible de acuerdo con la periodicidad de cada transacción?
\[X = VF_1 + VF_2 = R_1 \times \frac{(1+i_1)^{n_1} -1}{i_1} + R_2 \times \frac{(1+i_2)^{n_2} - 1}{i_2}\]
1200 * accumulatedValue(i = 0.12 / 4, n = 10 * 4, type = "arrears")
[1] 90481.51
+ 1600 * accumulatedValue(i = 0.12, n = 10, type = "arrears")
[1] 28077.98
11. Una máquina valorada en $15000 se vende a plazos con una cuota inicial de $3000 y saldo en 18 cuotas mensuales, cargando el 16% de interés convertible mensualmente. Calcular el valor de las cuotas.
\[VA = X \times \frac{1 - (1+i)^{-n}}{i}\]
(15000 - 3000) / annuity(i = 0.16 / 12, n = 18, type = "arrears")
[1] 754.2771
12. Una empresa necesita construir durante 10 años un fondo de depreciación de $70000 para reposición de maquinaria. Calcular el valor del depósito trimestral que deberá realizar en una institución financiera que paga una tasa de interés de 4% anual capitalizable trimestralmente. \[ VF = X \times \frac{(1+i)^{n}-1}{i}\]
70000 / accumulatedValue(i = 0.04 / 4, n = 10 * 4, type = "arrears")
[1] 1431.892
13. Reemplazar una serie de pagos de $12000 al final de cada año por el equivalente en pagos mensuales al final de cada mes suponiendo un interés al 6% convertible mensualmente.
\[ VF = X \times \frac{(1+i)^{n}-1}{i}\]
12000 / accumulatedValue(i = 0.06 / 12, n = 12, type = "arrears")
[1] 972.7972
14. Una persona espera disponer de $3000 al cabo de tres años para pagar el anticipo de una casa. Para ello desea acumular este capital mediante depósitos semestrales en una cuenta de ahorros que paga el 6% de interés convertible semestralmente. ¿Cuál será el valor de cada depósito semestral si espera disponer de los $3000 inmediatamente después del último depósito.
\[ VF = X \times \frac{(1+i)^{n}-1}{i}\]
3000 / accumulatedValue(i = 0.06 / 2, n = 3 * 2, type = "arrears")
[1] 463.7925
15. Para liquidar una deuda de $10000, con intereses al 4% convertible semestralmente, se acuerda hacer una serie de pagos semestrales, el primero con vencimiento al término de 6 meses y el último en cinco años. Un año después un pago de $2500, hallar el valor del pago semestral.
\[VA = X \times \frac{1 - (1+i)^{-n_1}}{i} + M(1+i)^{-n_2} \]
(10000 - 2500 * (1 + 0.04 / 2) ^ -12) / annuity(i = 0.04 / 2, n = 5 * 2, type = "arrears")
[1] 893.8148
16. Calcular el valor de los depósitos mensuales que durante 10 años deberá hacer una persona en un banco que reconoce una tasa de interés de 18% anual capitalizable mensualmente a fin de efectuar retiros de $500 mensuales durante los 5 años siguientes. \[X \times \frac{(1+i)^{n_1}-1}{i} = R \times \frac{1-(1+i)^{-n_2}}{i}\]
(500 * annuity(i = 0.18 / 12, n = 5 * 12, type = "arrears")) / accumulatedValue(i = 0.18 / 12, n = 10 * 12, type = "arrears")
[1] 59.43506
17. Una persona ha depositado $250 al final de cada mes durante 5 años en una cuenta que paga el 4% convertible mensualmente. ¿Cuánto tenía en la cuenta al final de dicho período?
\[X= VF = R \times \frac{(1+i)^n - 1}{i} \]
250 * accumulatedValue(i = 0.04 / 12, n = 5 * 12, type = "arrears")
[1] 16574.74
18. Un padre empieza a ahorrar para que su hijo pueda estudiar una carrera universitaria. Planea depositar $1500 en una cuenta de ahorros al final de cada trimestre durante los próximos 6 años. Si la tasa de interés es del 7% capitalizable trimestralmente, ¿cuál será el monto de la cuenta al cabo de 6 años?
\[X = VF = R \times \frac{(1+i)^n - 1}{i} \]
1500 * accumulatedValue(i = 0.07 / 4, n = 6 * 4, type = "immediate")
[1] 44266.52
19. ¿Qué cantidad debió ser depositada el 1 de junio de 1998 en un fondo que produjo el 5% convertible semestralmente con el fin de poder hacer retiros semestrales de $600 cada uno, a partir del 1 de diciembre de 1998 y terminando el 1 de diciembre de 2007?
\[X = VA = R \times \frac{1- (1+i)^{-n}}{i}\]
600 * annuity(i = 0.05 / 2, n = 9 * 2 + 1, type = "arrears")
[1] 8987.335
20. Con una tasa de interés al 8% convertible semestralmente, ¿qué pago único inmediato es equivalente a 25 pagos semestrales de $1000 cada uno, haciéndose el primero al final de seis meses?
\[X = VA = R\times \frac{1- (1+i)^{-n}}{i}\]
1000 * annuity(i = 0.08 / 2, n = 25, type = "arrears")
[1] 15622.08
21. Se estima que un terreno boscoso producirá $18000 anuales por su explotación en los próximos 20 años y entonces la tierra podrá venderse en $15000. Encontrar su valor actual suponiendo un interés al 6.25%.
\[X = R \times \frac{1- (1+i)^{-n}}{i} + M(1+i)^{-n} \]
18000 * annuity(i = 0.0625, n = 20, type = "arrears") + 15000 * (1 + 0.0625) ^ -20
[1] 206794.8
22. ¿Qué es más conveniente, comprar un automóvil en $2750 de contado o pagar $500 iniciales y $200 al final de cada mes por los próximos 12 meses, suponiendo intereses del 6% convertible mensualmente?
\[X_a = VA_a\] \[X_b = VA_{b_1} + VA_{b_2} = VA_{b_1}+ R\times \frac{1- (1+i)^{-n}}{i} \]
(opciones <- c(a = 2750,
b = 500 + 200 * annuity(i = 0.06 / 12, n = 12, type = "arrears")))
a b
2750.000 2823.786
opciones[which.min(opciones)]
a
2750
23. Un contrato estipula pagos semestrales de $400 por los próximos 10 años y un pago adicional de $2500 al término de dicho período. Hallar el valor efectivo equivalente del contrato al 8% convertible semestralmente.
\[X = VA_1 + VA_2 =R \times \frac{1- (1+i)^{-n}}{i} + M(1+i)^{-n} \]
400 * annuity(i = 0.08 / 2, n = 10 * 2, type = "arrears") +
+ 2500 * (1 + 0.08 / 2) ^ -(10 * 2)
[1] 6577.098
24. El 1 de mayo de 1980, Marianela depositó $100 en una cuenta de ahorros que paga el 3% convertible semestralmente, y continuó haciendo depósitos similares cada 6 meses desde entonces. Después del 1 de mayo de 1992, el banco elevó el interés al 4% convertible semestralmente. ¿Cuánto tuvo en la cuenta precisamente después del depósito del 1 de noviembre de 2000?
\[X = VF = \left[ C(1+i_1)^{n_1} + R \times \frac{(1+i)^{n_1} -1}{i_1} \right](1+i_2)^{n_2} + R \times \frac{(1+i_2)^{n_2} -1}{i_2} \]
(100 * (1 + 0.03 / 2) ^ (12 * 2) +
100 * accumulatedValue(i = 0.03 / 2, n = 12 * 2, type = "arrears")) * (1 + 0.04 / 2) ^ (17) +
100 * accumulatedValue(i = 0.04 / 2, n = 8 * 2 + 1, type = "arrears")
[1] 6210.756
25. Cada trimestre una persona deposita $3200 en su cuenta de ahorros, la cual gana un interés del 3,8% trimestral. Después de tres años, suspende los depósitos trimestrales y el monto obtenido en ese momento pasa a un fondo de inversión que da el 22% capitalizable cada mes. Si el dinero permaneció 2 años en el fondo de inversión, obtenga el monto final en el fondo.
\[ X = VF = \left [R \times \frac {(1+i_1)^{n_1} -1}{i_1} \right] (1+i_2)^{n_2} \]
(3200 * accumulatedValue(i = 0.038 / 4, n = 3 * 4, type = "arrears")) * (1 + 0.22 / 12) ^ (2 * 12)
[1] 62590.2
26. Una computadora cuesta $1050 y el comprador conviene pagar cuotas mensuales durante dos años. Si la tasa del mercado es 14,5% anual convertible mensualmente, halle el valor de cada cuota.
\[ VA = X\times \frac{1 - (1+i)^n}{i}\]
1050 / annuity(i = 0.145 / 12, n = 2 * 12, type = "arrears")
[1] 50.6619
27. El día de hoy se contrae una deuda de $20000 y se compromete a pagar en cuotas semestrales vencidas durante 5 años. Hallar el valor de la cuota semestral que debe pagarse si se aplica un interés de 12% anual capitalizable semestralmente
\[ VA = X\times \frac{1 - (1+i)^n}{i}\]
20000 / annuity(i = 0.12 / 2, n = 5 * 2, type = "arrears")
[1] 2717.359
28. Sustituir una serie de pagos de $10000 al principio de cada año, por el equivalente en pagos mensuales vencidos, con un interés del 8% convertible mensualmente.
\[ VA = X\times \frac{1 - (1+i)^n}{i}\]
10000 / annuity(i = 0.08 / 12, n = 12, type = "arrears")
[1] 869.8843
29. Al 1 de mayo de 2000, se tiene $2475.60 en un fondo que paga el 3% convertible trimestralmente. Haciendo depósitos trimestrales iguales en el fondo, el 1 de agosto de 2000 y el último el 1 de noviembre de 2006, tendrá en esta última fecha $10000 en el fondo. Hallar el depósito requerido.
\[ VF = C(1+i)^n + X\times \frac{(1+i)^n -1}{i}\]
(10000 - 2475.60 * (1 + 0.03 / 4) ^ 26) / accumulatedValue(i = 0.03 / 4, n = 26, type = "arrears")
[1] 244.6134
30. Hoy se depositan $15000 en una cuenta de ahorros que abona el 7% de interés. Transcurridos 3 años, se hacen nuevos depósitos cada final de año, de modo que a los 5 años, se tienen $70000 al efectuar el último depósito. Hallar el valor de los depósitos anuales.
\[VF = C(1+i)^{n_1} + X \times \frac{(1+i)^{n_2} -1}{i}\]
(70000 - (15000 * (1 + 0.07) ^ 8)) / accumulatedValue(i = 0.07, n = 5, type = "arrears")
[1] 7690.7
Anualidades anticipadas
Para anualidades anticipadas se pueden utilizar indistintamente el argumento advance o el argumento due en las funciones accumulatedValue y annuity
31. Hallar el valor futuro y el valor actual de la anualidad anticipada: $300 mensuales durante 5 años al 6% capitalizable mensualmente.
\[
\begin{split}
VF &= R \left[ \frac{(1+i)^{n+1} -1}{i} -1\right] \\
&= 300 \left[ \frac{(1 + \frac{0.06}{12})^{5\times12+1} -1}{\frac{0.06}{12}} -1 \right] \\
&= 21.035,66
\end{split}
\]
300 * accumulatedValue(i = 0.06 / 12, n = 5 * 12, type = "due")
[1] 21035.66
\[
\begin{split}
VP &= R \left[ \frac{1 - (1+i)^{-(n-1)}}{i} + 1 \right] \\
&= 300 \ \left[ \frac{1 - (1 + \frac{0.06}{12})^{-(5\times12-1)}}{\frac{0.06}{12}} + 1 \right] \\
&= 15.595,26
\end{split}
\]
300 * annuity(i = 0.06 / 12, n = 5 * 12, type = "advance")
[1] 15595.26
32. Hallar el valor futuro y el valor actual de una anualidad anticipada de $2500 semestrales, por 6 años al 4% capitalizable semestralmente.
\[X_1 = VF = R \ \left[ \frac{(1+i)^n -1}{i} \right] (1+i)\]
2500 * accumulatedValue(i = 0.04 / 2, n = 6 * 2, type = "advance")
[1] 34200.83
\[X_2 = VA = R \ \left[ \frac{1 - (1+i)^{-n}}{i} \right] (1+i)\]
2500 * annuity( i = 0.04 / 2, n = 6 * 2, type = "advance")
[1] 26967.12
33. Una empresa reserva $1500 al principio de cada trimestre para construir un fondo para renovación de activos. Si el fondo acredita el 3% capitalizable trimestralmente, ¿cuál será el monto que dispondrá el fondo después de 8 años?
\[X = VF = R \ \left[ \frac{(1+i)^n -1}{i} \right] (1+i)\]
1500 * accumulatedValue(i = 0.03 / 4, n = 8 * 4, type = "due")
[1] 54427.41
34. Gina García alquila un edificio en $25000 anuales por adelantado e invierte $18000 de cada pago en un fondo que reconoce el 6%. ¿Cuál es el importe del fondo después de 10 años?
\[X = VF = R \ \left[ \frac{(1+i)^n -1}{i} \right] (1+i)\]
18000 * accumulatedValue(i = 0.06, n = 10, type = "advance")
[1] 251489.6
35. Calcular el valor de contado de una propiedad vendida a 8 años plazo con pagos de $15200 semestrales anticipados, si la tasa de interés es del 10% convertible semestralmente
\[X = VA = R \ \left[ \frac{1 - (1+i)^{-n}}{i} \right] (1+i)\]
15200 * annuity(i = 0.10 / 2, n = 8 * 2, type = "advance")
[1] 172970.8
36. Un auto puede ser adquirido mediante cuotas anticipadas de $950 mensuales, durante 18 meses, suponiendo intereses al 8% convertible mensualmente, ¿cuál es el valor de contado del auto?
\[X = VA = R \ \left[ \frac{1 - (1+i)^{-n}}{i} \right] (1+i)\]
950 * annuity(i = 0.08 / 12, n = 18, type = "advance")
[1] 16170.59
37. Con el fin de disponer de $4000 dentro de 4 años, una empresa decide realizar depósitos trimestrales por anticipado en un fondo que reconoce el 8% con capitalización trimestral, encontrar el valor del depósito que se debe realizar.
\[VF = X \ \left[ \frac{(1+i)^n -1}{i} \right] (1+i)\]
4000 / accumulatedValue(i = 0.08 / 4, n = 4 * 4, type = "advance")
[1] 210.3927
38. Para reposición de activos, una empresa requiere de $45000 dentro de 4 años, decide entonces realizar depósitos semestrales por anticipado en un fondo que reconoce el 10% con capitalización semestral, encontrar el valor del depósito que se debe realizar.
\[VF = X \ \left[ \frac{(1+i)^n -1}{i} \right] (1+i)\]
45000 / accumulatedValue(i = 0.10 / 2, n = 4 * 2, type = "advance")
[1] 4488.078
39. El valor de contado de un coche usado es de $8650, una persona desea pagar en 36 abonos mensuales, venciendo el primero el día de la compra. Si se carga el 15% convertible mensualmente, hallar el importe del pago mensual.
\[VA = X \ \left[ \frac{1-(1+i)^n}{i} \right] (1+i)\]
8650 / annuity(i = 0.15 / 12, n = 36, type = "advance")
[1] 296.1532
40. Una empresa adquiere una deuda de $30000 y propone pagar mediante cuotas trimestrales anticipadas por 3 años; encontrar el valor de la cuota trimestral anticipada si se aplica un interés de 8% anual capitalizable trimestralmente.
\[VA = X \ \left[ \frac{1-(1+i)^n}{i} \right] (1+i)\]
30000 / annuity(i = 0.08 / 4, n = 3 * 4, type = "advance")
[1] 2781.165
41. Calcular el valor de contado de un equipo médico que se vende a 2 años plazo, con el 9% de interés convertible trimestralmente y con pagos trimestrales anticipados de $4000, y un último pago de $3200 a los 2 años 3 meses.
\[X = VA_1 + VA_2\] \[X = R \left[ \frac{1-(1+i)^{n_1}}{i} \right] (1+i) + \frac {M}{(1+i)^{n_2}}\]
4000 * annuity(i = 0.09 / 4, n = 2 * 4, type = "advance")
[1] 29640.99
+ 3200 * (1 + 0.09 / 4) ^ - (2 * 4 + 1)
[1] 2619.269
42. El día de hoy, Galo Bonilla deposita $500 en una cuenta cuyo saldo a la fecha del depósito es de $3500; y cada mes continúa con dichos depósitos por 2 años con un interés del 8% capitalizable mensualmente; precisamente al finalizar el segundo año va a empezar a realizar 8 retiros semestrales considerando una tasa del 12% capitalizable semestralmente. Encontrar el valor de los retiros semestrales de manera que la cuenta se liquide.
\[VF_1 + VF_2 = VA\]
\[C(1 + i_1)^{n_1} + R_1 \left[ \frac{(1+i_1)^{n_1} -1}{i_1} \right] (1+i_1) = X \left[ \frac{1-(1+i_2)^{n_2}}{i_2} \right] (1+i_2) \]
(3500 * (1 + 0.08 / 12) ^ 24 +
500 * accumulatedValue(i = 0.08 / 12, n = 2 * 12, type = "advance")) / annuity (i = 0.12 / 2, n = 8, type = "advance")
[1] 2606.678
Anualidades diferidas
43. Se desea establecer un fondo, para que un hospital que estará terminado dentro de 6 años, reciba una renta anual de $35000 por 20 años. Hallar el valor del fondo si gana el 8% de interés.
\[X = VA = R \times \frac{1 - (1+i)^{-n}}{i \ (1+i)^m}\]
35000 * annuity(i = 0.08, n = 20, m = 5, type = "arrears")
[1] 233872.3
44. Al nacimiento de su hijo, Marcelo desea depositar en una fiduciaria una cantidad tal que le proporcione a su hijo pagos de $1250 cada 6 meses durante 10 años, venciendo el primero cuando cumpla 18 años. Si la fiduciaria paga el 3% convertible semestralmente, ¿cuánto tendrá que depositar Marcelo?
\[X = VA = R \times \frac{1 - (1+i)^{-n}}{i \ (1+i)^m}\]
1250 * annuity(i = 0.03/2, n = 10 * 2, m = 35, type = "arrears")
[1] 12744.84
45. Carlos desea depositar en un fondo que gana el 3% convertible trimestralmente, una cantidad de dinero suficiente que le permita hacer retiros trimestrales de $1000 cada uno, el primero al término de 5 años y el último al término de 10 años. Hallar el depósito necesario.
\[X = VA = R \times \frac{1 - (1+i)^{-n}}{i \ (1+i)^m}\]
1000 * annuity(i = 0.03 / 4, n = 5 * 4, m = 19, type = "immediate")
[1] 16058.46
46. Una compañía es concesionaria de la explotación de un hotel, por 15 años contados desde su inauguración; el hotel será puesto en servicio dentro de dos años. Se estima que los ingresos brutos mensuales serán de $25000. Hallar con la tasa del 12% convertible mensualmente, el valor actual de los ingresos brutos.
\[X = VA = R \times \frac{1 - (1+i)^{-n}}{i \ (1+i)^m}\]
25000 * annuity(i = 0.12 / 12, n = 15 * 12, m = 24, type = "arrears")
[1] 1640533
47. Una compañía adquiere yacimientos de mineral; los estudios de ingeniería demuestran que los trabajos preparatorios y vías de acceso demorarán 6 años. Se estima que los yacimientos en explotación rendirán una ganancia anual de $600000. Suponiendo que la tasa comercial de interés es del 8% y que los yacimientos se agotarán después de 15 años continuos de explotación, hállese el Valor actual de la renta que espera obtenerse.
\[X = VA = R \times \frac{1 - (1+i)^{-n}}{i \ (1+i)^m}\]
600000 * annuity(i = 0.08, n =15, m = 6, type = "arrears")
[1] 3236354
48. Hallar el precio de contado de una propiedad comprada así: Cuota inicial de $50000; 10 pagos trimestrales de $12000, el primer pago dentro de 2 años; y un pago final de $18000, 6 meses después del último pago trimestral. El interés es del 15% convertible trimestralmente.
\[ X = VA = VA_1 + R \times \frac{1 - (1+i)^{-n_1}}{i \ (1+i)^m} + M (1+i)^{-n_2} \]
50000 + 12000 * annuity(i = 0.15 / 4, n = 10, m = 7, type = "arrears")
[1] 126164.9
+ 18000 * (1 + 0.15 / 4) ^ -19
[1] 8943.314
49. Un huerto proporcionará la primera cosecha completa al final del 5to año y se espera obtener por las siguientes cosechas un ingreso anual de $5000 durante 16 años más, finalmente se podrá vender el huerto en $35000. Hallar el valor en efectivo del huerto suponiendo intereses al 5%
\[ X = VA = R \times \frac{1 - (1+i)^{-n_1}}{i \ (1+i)^m} + M (1+i)^{-n_2}\]
5000 * annuity(i = 0.05, n = 16, m = 4, type = "arrears") + 35000 * (1+0.05) ^ -20
[1] 57772.43
50. Un granjero compró un tractor el 1 de marzo, comprometiéndose a hacer pagos mensuales de $ 2000 durante 24 meses, el primero el 1 de octubre y un pago adicional de $1500 3 meses más tarde; si el interés es 12% convertible mensualmente, hallar el Valor Actual equivalente.
\[ X = VA = R \times \frac{1 - (1+i)^{-n_1}}{i \ (1+i)^m} + M (1+i)^{-n_2}\]
2000 * annuity(i = 0.12 / 12, n = 24, m = 6, type = "arrears")
[1] 40024.46
+ 1500 * (1 + 0.12 / 12) ^ -33
[1] 1080.155
51. ¿Con cuánto se puede comprar una renta de $15000 trimestrales, pagadera durante 10 años, debiendo comenzar el primer pago dentro de 4 años, si con el primer pago deberá recibirse además $10000, si la tasa de interés es del 8% capitalizable trimestralmente.
\[ X = VA = R \times \frac{1 - (1+i)^{-n_1}}{i \ (1+i)^m} + M (1+i)^{-n_2}\]
15000 * annuity(i = 0.08 / 4, n = 40, m = 15, type = "arrears")
[1] 304882.9
+ 10000 * (1 + 0.08 / 4) ^ -16
[1] 7284.458
52. Un artículo se compró a plazos con un pago inicial de $1000 y 7 cuotas mensuales iguales de $800 y un interés de financiación del 8% convertible mensualmente, si la primera cuota se pagó cinco meses después de entregado el artículo, encontrar el valor de contado.
\[X = VA = VA_1 + R \times \frac{1 - (1+i)^{-n_1}}{i \ (1+i)^m} \]
1000 + 800 * annuity(i = 0.08 / 12, n = 7, m = 4, type = "arrears")
[1] 6310.567
53 Una ley de incentivos para la agricultura, permite a un agricultor adquirir equipos por valor de $50000, para pagarlos dentro de 3 años, con 8 cuotas semestrales. Si la ley fija para este tipo de préstamos el 6% de interés, capitalizable semestralmente, hallar el valor de las cuotas semestrales.
\[ VA = X \times \frac{1 - (1+i)^{-n_1}}{i \ (1+i)^m}\]
50000 / annuity(i = 0.06 / 2, n = 8, m = 3 * 2 - 1, type = "arrears")
[1] 8257.3
Anualidades perpetuas
54. El testamento del señor Pérez establece que deberá pagarse al asilo de ancianos María Auxiliadora, una renta perpetua de $1000, pagaderos al final de cada año. ¿Cuál es el valor actual de ese legado, suponiendo que se encuentra invertido a 10% de interés efectivo anual?
1000 * annuity(i = 0.10, n = Inf, type = "arrears")
[1] 10000
55. Suponiendo que una granja produzca $5000 anuales indefinidamente, ¿cuál es su valor actual sobre la base del 10%?
5000 * annuity(i = 0.10, n = Inf, type = "arrears")
[1] 50000
56. Establecer una cátedra en una universidad cuesta $12500 anuales. Hallar el valor presente del fondo necesario para establecerla suponiendo intereses de 4%.
12500 * annuity(i = 0.04, n = Inf, type = "advance")
[1] 325000
57. Los ex alumnos de una universidad deciden donar un laboratorio y los fondos para su mantenimiento futuro. Si el costo inicial es de $ 150000 y el mantenimiento se estima en $3000 anuales, hallar el valor de la donación si la tasa efectiva de interés es del 6 %.
150000 + 3000 * annuity(i = 0.06, n = Inf, type = "arrears")
[1] 2e+05
58. Para estudiar en una universidad dentro de 10 años, es requisito fundamental -entre otros- depositar el día de hoy una suma de dinero en una institución financiera que paga mensualmente por ahorros de este tipo el 12 % capitalizable mensualmente y que permite a la institución disponer de $2000 mensuales a perpetuidad. ¿Cuánto debo depositar el día de hoy?
2000 * annuity( i = 0.12 / 12, n = Inf, m = 119, type = "immediate") * (1 + 0.12 / 12) ^ -119
[1] 61204.95
59. Se propone efectuar una serie de 60 depósitos mensuales iguales de $750, para poder al siguiente mes después del último depósito, hacer retiros mensuales iguales a perpetuidad; ¿cuál será el valor de cada uno de los retiros si el banco reconoce una tasa de 12% capitalizable mensualmente?
VA <- 750 * accumulatedValue(i = .12 / 12, n = 60, type = "arrears")
i <- 0.12 / 12
(R <- VA * i)
[1] 612.5225
.
LS0tCnRpdGxlOiAiQW51YWxpZGFkZXMgY29uICoqUioqIC0gYGxpZmVjb250aW5nZW5jaWVzYCIKYXV0aG9yOiAiWGF2aWVyIEppbcOpbmV6LUFsYsOhbiIKZGF0ZTogIkp1bGlvIGRlIDIwMjAiCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgdG9jOiB0cnVlCiAgICB0b2NfZmxvYXQ6IHRydWUKICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQKICBodG1sX2RvY3VtZW50OiBkZWZhdWx0Ci0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmxpYnJhcnkoa25pdHIpCm9wdHNfY2h1bmskc2V0KHRpZHkub3B0cz1saXN0KHdpZHRoLmN1dG9mZj02MCksdGlkeT1UUlVFLCBjb21tZW50PU5BLCBwcm9tcHQgPSBUUlVFLCB2ZXJib3NlPUZBTFNFLCBwcm9tcHQ9VFJVRSwgaGlnaGxpZ2h0ID0gRkFMU0UpCmBgYAoKCgpgYGB7ciBsaWJyYXJpZXMsIGluY2x1ZGU9VFJVRSwgbWVzc2FnZT1GQUxTRX0KbGlicmFyeShsaWZlY29udGluZ2VuY2llcykKYGBgCgoKIyBBbnVhbGlkYWRlcyBvcmRpbmFyaWFzClBhcmEgYW51YWxpZGFkZXMgb3JkaW5hcmlhcyBzZSBwdWVkZSB1c2FyIGluZGlzdGludGFtZW50ZSBlbCBhcmd1bWVudG8gYGFycmVhcnNgIG8gZWwgYXJndW1lbnRvIGBpbW1lZGlhdGVgIGVuIGxhcyBmdW5jaW9uZXMgYGFjY3VtdWxhdGVkVmFsdWVgIHkgYGFubnVpdHlgLgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqMS4qKiBVbmEgcGVyc29uYSBhaG9ycmEgJDQwMCBjYWRhIHNlaXMgbWVzZXMgeSBsb3MgaW52aWVydGUgYWwgNCUgY29udmVydGlibGUgc2VtZXN0cmFsbWVudGUuIApIYWxsYXIgZWwgaW1wb3J0ZSBkZSBzdXMgYWhvcnJvcyBkZXNwdcOpcyBkZSA3IGHDsW9zLiAKCiQkClxiZWdpbntzcGxpdH0KVkYgJj0gUiBcIFxsZWZ0WyBcZnJhY3soMStpKV57bn0tMX17aX0gXHJpZ2h0XSBcXAomPSA0MDAgXCBcbGVmdFsgXGZyYWN7KDErIFxmcmFjezAuMDR9ezJ9KV57NyBcdGltZXMgMn0tMX17XGZyYWN7MC4wNH17Mn19XHJpZ2h0XSBcXCAKJj0gXCQ2Mzg5LDU4ClxlbmR7c3BsaXR9CiQkCgoKYGBge3J9CjQwMCAqIGFjY3VtdWxhdGVkVmFsdWUoaSA9IDAuMDQgLyAyLCBuID0gNyAqIDIsIGsgPSAxLCB0eXBlID0gImFycmVhcnMiKQpgYGAKCgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqMi4qKiBVbiBlbXBsZWFkbyBpbnZpZXJ0ZSAkMTMwIGFsIGZpbmFsIGRlIGNhZGEgdHJpbWVzdHJlIGVuIHVuIGZvbmRvIHF1ZSBwYWdhIDclIGNvbnZlcnRpYmxlIHRyaW1lc3RyYWxtZW50ZS4gwr9DdcOhbCBzZXLDoSBlbCBpbXBvcnRlIGRlbCBmb25kbyBwcmVjaXNhbWVudGUgZGVzcHXDqXMgZGUgMTIgZGVww7NzaXRvcz8KJCRYID0gVkYgPSBSICBcdGltZXMgXGZyYWN7KDEraSlee259LTF9e2l9JCQKCmBgYHtyfQoxMzAgKiBhY2N1bXVsYXRlZFZhbHVlKGkgPSAwLjA3IC8gNCwgbiA9IDEyLCBtID0gMCwgayA9IDEsIHR5cGUgPSAiYXJyZWFycyIpCmBgYAoKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjMuKiogwr9DdcOhbCBlcyBlbCB2YWxvciBwcmVzZW50ZSBkZSAkMTYwMCBkZXBvc2l0YWRvcyBlbiB1bmEgY3VlbnRhIGFsIGZpbmFsIGRlIGNhZGEgdHJpbWVzdHJlIGR1cmFudGUgNCBhw7Fvcywgc2kgbGEgdGFzYSBkZSBpbnRlcsOpcyBlcyBkZWwgOCUgY29udmVydGlibGUgdHJpbWVzdHJhbG1lbnRlPwoKJCQgWCA9IFZBID0gUiBcdGltZXMgXGZyYWN7MSAtICgxK2kpXnstbn19e2l9JCQKYGBge3J9CjE2MDAgKiBhbm51aXR5KGkgPSAwLjA4IC8gNCwgbiA9IDQgKiA0LCB0eXBlID0gImFycmVhcnMiKSAKYGBgCgoKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjQuKiogwr9DdcOhbnRvIGRlYmnDsyBkZXBvc2l0YXJzZSBlbCAxIGRlIGp1bmlvIGRlIDIwMDUgZW4gdW4gZm9uZG8gcXVlIHBhZ8OzIGVsIDEwJSBjb252ZXJ0aWJsZSBzZW1lc3RyYWxtZW50ZSBjb24gZWwgb2JqZXRvIGRlIHBvZGVyIGhhY2VyIHJldGlyb3Mgc2VtZXN0cmFsZXMgZGUgJDI1MDAgY2FkYSB1bm8sIGRlc2RlIGVsIDEgZGUgZGljaWVtYnJlIGRlIDIwMDUgaGFzdGEgZWwgMSBkZSBkaWNpZW1icmUgZGUgMjAxMD8KCiQkIFggPSBWQSA9IFIgXHRpbWVzICBcZnJhY3sxIC0gKDEraSleey1ufX17aX0kJAoKYGBge3J9CjI1MDAgKiBhbm51aXR5KGkgPSAwLjEwIC8gMiwgbiA9IDEgKyA1ICogMiwgdHlwZSA9ICJpbW1lZGlhdGUiKQpgYGAKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjUuKiogVW5hIHBlcnNvbmEgY29tcHJhIHVuIGNvY2hlIG51ZXZvIGVuIFwkMTQwMDAsIHNpIGVudHJlZ2Egc3UgY29jaGUgdXNhZG8gdmFsb3JhZG8gZW4gXCQ0MjUwIGNvbW8gcGFydGUgZGUgcGFnbywgwr9jdcOhbnRvIHRlbmRyw6EgcXVlIHBhZ2FyIGVuIGVmZWN0aXZvIGVsIGTDrWEgZGUgaG95IHNpIGVsIHNhbGRvIHJlc3RhbnRlIHNlIGxvIGxpcXVpZGFyw6EgbWVkaWFudGUgZWwgcGFnbyBkZSAkNTUwIGFsIGZpbmFsIGRlIGNhZGEgbWVzIGR1cmFudGUgMTggbWVzZXMsIGNvbiBpbnRlcmVzZXMgYWwgNiUgY29udmVydGlibGUgbWVuc3VhbG1lbnRlPwokJCAxNDAwMCA9IDQyNTAgKyBYICsgVkEkJAokJCBYID0gMTQwMDAgLSA0MjUwIC0gUiBcdGltZXMgXGZyYWN7MSAtICgxK2kpXnstbn19e2l9JCQKCmBgYHtyfQoxNDAwMCAtIDQyNTAgLSA1NTAgKiBhbm51aXR5KGkgPSAwLjA2IC8gMTIsIG4gPSAxOCwgdHlwZSA9ICJhcnJlYXJzIikKYGBgCgpccnVsZXtcdGV4dHdpZHRofXswLjRwdH0KKio2LioqIFVuIGNvbmNlc2lvbmFyaW8gZGUgYXV0b23Ds3ZpbGVzIG9mcmVjZSB1biBhdXRvIG51ZXZvIGNvbiB1biBwYWdvIGluaWNpYWwgZGUgXCQ4MDAwIHkgMzYgcGFnb3MgbWVuc3VhbGVzIGRlICQ2ODAgY2FkYSB1bm8sIApjb24gaW50ZXLDqXMgZGVsIDEyJSBjYXBpdGFsaXphYmxlIG1lbnN1YWxtZW50ZSDCv0N1w6FsIGVzIGVsIHZhbG9yIGRlIGNvbnRhZG8gZGVsIGF1dG8/CiQkIFggPSA4MDAwICsgUiBcdGltZXMgXGZyYWN7MSAtICgxK2kpXnstbn19e2l9JCQKCmBgYHtyfQo4MDAwICsgNjgwICogYW5udWl0eShpID0gMC4xMiAvIDEyLCBuID0gMzYsIHR5cGUgPSAiYXJyZWFycyIpCmBgYAoKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjcuKiogRWwgMSBkZSBtYXlvIGRlIDIwMDAgdW5hIHBlcnNvbmEgZGVwb3NpdMOzICQ1MDAgZW4gdW5hIGN1ZW50YSBkZSBhaG9ycm9zIHF1ZSBwYWdhIGVsIDMlIGNvbnZlcnRpYmxlIHNlbWVzdHJhbG1lbnRlIHkgY29udGludcOzIGhhY2llbmRvIGRlcMOzc2l0b3Mgc2ltaWxhcmVzIGNhZGEgNiBtZXNlcyBkZXNkZSBlbnRvbmNlcy4gRGVzcHXDqXMgZGVsIDEgZGUgbWF5byBkZSAyMDAzLCBlbCBiYW5jbyBlbGV2w7MgZWwgaW50ZXLDqXMgYWwgNCUgY29udmVydGlibGUgc2VtZXN0cmFsbWVudGUuIMK/Q3XDoW50byByZWdpc3Ryw7MgbGEgY3VlbnRhIHByZWNpc2FtZW50ZSBkZXNwdcOpcyBkZWwgZGVww7NzaXRvIGRlbCAxIGRlIG5vdmllbWJyZSBkZSAyMDA1PwoKJCQgWCA9IFxsZWZ0WyAgQygxK2lfMSlee25fMX0gKyBSIFx0aW1lc1xmcmFjeygxK2lfMSlee25fMX0tMX17aV8xfSBccmlnaHRdICgxK2lfMilee25fMn0gICsgUiBcdGltZXMgXGZyYWN7KDEraV8yKV57bl8yfS0xfXtpXzJ9ICAkJAoKCmBgYHtyfQooNTAwICogKDEgKyAwLjAzIC8gMikgXiA2ICsgCiAgICA1MDAgKiBhY2N1bXVsYXRlZFZhbHVlKGkgPSAwLjAzIC8gMiwgbiA9IDYsIHR5cGUgPSAiYXJyZWFycyIpKSAqICgxICsgMC4wNCAvIDIpIF4gNSArIAogICAgICA1MDAgKiBhY2N1bXVsYXRlZFZhbHVlKGkgPSAwLjA0IC8gMiwgbiA9IDUsIHR5cGUgPSAiYXJyZWFycyIpCmBgYAoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqOC4qKiBVbmEgcGVyc29uYSBhY3VlcmRhIGxpcXVpZGFyIHVuYSBkZXVkYSBtZWRpYW50ZSAxMiBwYWdvcyBzZW1lc3RyYWxlcyBkZSAkNTMwMCBjYWRhIHVubyBjb24gaW50ZXJlc2VzIGFsIDglIGNvbnZlcnRpYmxlIHNlbWVzdHJhbC4gU2kgb21pdGUgbG9zIHRyZXMgcHJpbWVyb3MgcGFnb3MsIMK/cXXDqSBwYWdvIHRlbmRyw6EgcXVlIGhhY2VyIGVuIGVsIHZlbmNpbWllbnRvIGRlbCBzaWd1aWVudGUgcGFyYSBxdWVkYXIgYWwgY29ycmllbnRlIGRlIHN1cyBwYWdvcz8KCiQkIFggPSBWRiA9IFIgXHRpbWVzIFxmcmFjeygxK2kpXntufS0xfXtpfSQkCgpgYGB7cn0KNTMwMCAqIGFjY3VtdWxhdGVkVmFsdWUoaSA9IDAuMDggLyAyLCBuID0gNCwgdHlwZSA9ICJhcnJlYXJzIikKYGBgCgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqOS4qKiBVbmEgcGVyc29uYSByZWNpYmnDsyB0cmVzIG9mZXJ0YXMgYWwgcXVlcmVyIHZlbmRlciB1biBhcGFydGFtZW50bzogYSkgXCQgOTAwMDAgZGUgY29udGFkbywgYikgXCQzMDAwMCBkZSBjb250YWRvIHkgXCQyMzAwIGFsIG1lcyBkdXJhbnRlIDM2IG1lc2VzLCBjKSAkMjgwMCBhbCBtZXMgZHVyYW50ZSAzLjUgYcOxb3MuIFNpIGxhIHRhc2EgZGUgaW50ZXLDqXMgZXMgZGVsIDEyJSBjb252ZXJ0aWJsZSBtZW5zdWFsbWVudGUsIMK/Y3XDoWwgZGUgZXN0YXMgb2ZlcnRhcyBlcyBsYSBtw6FzIHZlbnRham9zYT8KCiQkWF9hID0gVkFfYSQkCgokJFhfYiA9IFZBX2IgKyBSX2IgXHRpbWVzIFxmcmFjezEgLSAoMStpKV57LW5fYn19e2l9JCQKCiQkWF9jID0gUl9jIFx0aW1lcyBcZnJhY3sxIC0gKDEraSleey1uX2N9fXtpfSQkCgpgYGB7cn0KKG9mZXJ0YXMgPC0gYyhhID0gOTAwMDAsIAogICAgICAgICAgICAgICAgYiA9IDMwMDAwICsgMjMwMCAqIGFubnVpdHkgKGkgPSAwLjEyIC8gMTIsIG4gPSAzNiwgdHlwZSA9ICJhcnJlYXJzIiksIAogICAgICAgICAgICAgICAgICBjID0gMjgwMCAqIGFubnVpdHkgKGkgPSAwLjEyIC8gMTIsIG4gPSAzLjUgKiAxMiwgdHlwZSA9ICJhcnJlYXJzIikpKQpvZmVydGFzW3doaWNoLm1heChvZmVydGFzKV0KYGBgCgoKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjEwLioqIMK/Q3XDoW50byBoYWJyw6EgZW4gdW4gZm9uZG8gc2kgc2UgaGEgcmVhbGl6YWRvIGRlcMOzc2l0b3MgdHJpbWVzdHJhbGVzIGRlIFwkMTIwMCBkdXJhbnRlIDEwIGHDsW9zLCBhZGVtw6FzIHVuIGRlcMOzc2l0byBhbCBmaW5hbCBkZSBjYWRhIGHDsW8gZGUgJDE2MDAgZW4gdW4gYmFuY28gcXVlIHJlY29ub2NlIGVsIDEyJSBjb252ZXJ0aWJsZSBkZSBhY3VlcmRvIGNvbiBsYSBwZXJpb2RpY2lkYWQgZGUgY2FkYSB0cmFuc2FjY2nDs24/CgokJFggPSBWRl8xICsgVkZfMiA9IFJfMSBcdGltZXMgXGZyYWN7KDEraV8xKV57bl8xfSAtMX17aV8xfSArIFJfMiBcdGltZXMgXGZyYWN7KDEraV8yKV57bl8yfSAtIDF9e2lfMn0kJApgYGB7cn0KMTIwMCAqIGFjY3VtdWxhdGVkVmFsdWUoaSA9IDAuMTIgLyA0LCBuID0gMTAgKiA0LCB0eXBlID0gImFycmVhcnMiKSAKKyAxNjAwICogYWNjdW11bGF0ZWRWYWx1ZShpID0gMC4xMiwgbiA9IDEwLCB0eXBlID0gImFycmVhcnMiKQpgYGAKCgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqMTEuKiogVW5hIG3DoXF1aW5hIHZhbG9yYWRhIGVuIFwkMTUwMDAgc2UgdmVuZGUgYSBwbGF6b3MgY29uIHVuYSBjdW90YSBpbmljaWFsIGRlICQzMDAwIHkgc2FsZG8gZW4gMTggY3VvdGFzIG1lbnN1YWxlcywgY2FyZ2FuZG8gZWwgMTYlIGRlIGludGVyw6lzIGNvbnZlcnRpYmxlIG1lbnN1YWxtZW50ZS4gQ2FsY3VsYXIgZWwgdmFsb3IgZGUgbGFzIGN1b3Rhcy4KCiQkVkEgPSAgWCBcdGltZXMgXGZyYWN7MSAtICgxK2kpXnstbn19e2l9JCQKCmBgYHtyfQogICgxNTAwMCAtIDMwMDApIC8gYW5udWl0eShpID0gMC4xNiAvIDEyLCBuID0gMTgsIHR5cGUgPSAiYXJyZWFycyIpCmBgYAoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqMTIuKiogVW5hIGVtcHJlc2EgbmVjZXNpdGEgY29uc3RydWlyIGR1cmFudGUgMTAgYcOxb3MgdW4gZm9uZG8gZGUgZGVwcmVjaWFjacOzbiBkZSAkNzAwMDAgcGFyYSByZXBvc2ljacOzbiBkZSBtYXF1aW5hcmlhLiBDYWxjdWxhciBlbCB2YWxvciBkZWwgZGVww7NzaXRvIHRyaW1lc3RyYWwgcXVlIGRlYmVyw6EgcmVhbGl6YXIgZW4gdW5hIGluc3RpdHVjacOzbiBmaW5hbmNpZXJhIHF1ZSBwYWdhIHVuYSB0YXNhIGRlIGludGVyw6lzIGRlIDQlIGFudWFsIGNhcGl0YWxpemFibGUgdHJpbWVzdHJhbG1lbnRlLgokJCBWRiA9IFggXHRpbWVzIFxmcmFjeygxK2kpXntufS0xfXtpfSQkCgoKYGBge3J9CjcwMDAwIC8gYWNjdW11bGF0ZWRWYWx1ZShpID0gMC4wNCAvIDQsIG4gPSAxMCAqIDQsIHR5cGUgPSAiYXJyZWFycyIpCmBgYAoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqMTMuKiogUmVlbXBsYXphciB1bmEgc2VyaWUgZGUgcGFnb3MgZGUgJDEyMDAwIGFsIGZpbmFsIGRlIGNhZGEgYcOxbyBwb3IgZWwgZXF1aXZhbGVudGUgZW4gcGFnb3MgbWVuc3VhbGVzIGFsIGZpbmFsIGRlIGNhZGEgbWVzIHN1cG9uaWVuZG8gdW4gaW50ZXLDqXMgYWwgNiUgY29udmVydGlibGUgbWVuc3VhbG1lbnRlLgoKJCQgVkYgPSBYIFx0aW1lcyBcZnJhY3soMStpKV57bn0tMX17aX0kJAoKYGBge3J9CjEyMDAwIC8gYWNjdW11bGF0ZWRWYWx1ZShpID0gMC4wNiAvIDEyLCBuID0gMTIsIHR5cGUgPSAiYXJyZWFycyIpCmBgYAoKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjE0LioqIFVuYSBwZXJzb25hIGVzcGVyYSBkaXNwb25lciBkZSBcJDMwMDAgYWwgY2FibyBkZSB0cmVzIGHDsW9zIHBhcmEgcGFnYXIgZWwgYW50aWNpcG8gZGUgdW5hIGNhc2EuIFBhcmEgZWxsbyBkZXNlYSBhY3VtdWxhciBlc3RlIGNhcGl0YWwgbWVkaWFudGUgZGVww7NzaXRvcyBzZW1lc3RyYWxlcyBlbiB1bmEgY3VlbnRhIGRlIGFob3Jyb3MgcXVlIHBhZ2EgZWwgNiUgZGUgaW50ZXLDqXMgY29udmVydGlibGUgc2VtZXN0cmFsbWVudGUuIMK/Q3XDoWwgc2Vyw6EgZWwgdmFsb3IgZGUgY2FkYSBkZXDDs3NpdG8gc2VtZXN0cmFsIHNpIGVzcGVyYSBkaXNwb25lciBkZSBsb3MgJDMwMDAgaW5tZWRpYXRhbWVudGUgZGVzcHXDqXMgZGVsIMO6bHRpbW8gZGVww7NzaXRvLgoKJCQgVkYgPSBYIFx0aW1lcyBcZnJhY3soMStpKV57bn0tMX17aX0kJAoKYGBge3J9CjMwMDAgLyBhY2N1bXVsYXRlZFZhbHVlKGkgPSAwLjA2IC8gMiwgbiA9IDMgKiAyLCB0eXBlID0gImFycmVhcnMiKQpgYGAKCgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqMTUuKiogUGFyYSBsaXF1aWRhciB1bmEgZGV1ZGEgZGUgXCQxMDAwMCwgY29uIGludGVyZXNlcyBhbCA0JSBjb252ZXJ0aWJsZSBzZW1lc3RyYWxtZW50ZSwgc2UgYWN1ZXJkYSBoYWNlciB1bmEgc2VyaWUgZGUgcGFnb3Mgc2VtZXN0cmFsZXMsIGVsIHByaW1lcm8gY29uIHZlbmNpbWllbnRvIGFsIHTDqXJtaW5vIGRlIDYgbWVzZXMgeSBlbCDDumx0aW1vIGVuIGNpbmNvIGHDsW9zLiBVbiBhw7FvIGRlc3B1w6lzIHVuIHBhZ28gZGUgJDI1MDAsIGhhbGxhciBlbCB2YWxvciBkZWwgcGFnbyBzZW1lc3RyYWwuCgokJFZBID0gWCBcdGltZXMgXGZyYWN7MSAtICgxK2kpXnstbl8xfX17aX0gKyBNKDEraSleey1uXzJ9ICQkCgpgYGB7cn0KKDEwMDAwIC0gMjUwMCAqICgxICsgMC4wNCAvIDIpIF4gLTEyKSAvIGFubnVpdHkoaSA9IDAuMDQgLyAyLCBuID0gNSAqIDIsIHR5cGUgPSAiYXJyZWFycyIpCmBgYAoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqMTYuKiogQ2FsY3VsYXIgZWwgdmFsb3IgZGUgbG9zIGRlcMOzc2l0b3MgbWVuc3VhbGVzIHF1ZSBkdXJhbnRlIDEwIGHDsW9zIGRlYmVyw6EgaGFjZXIgdW5hIHBlcnNvbmEgZW4gdW4gYmFuY28gcXVlIHJlY29ub2NlIHVuYSB0YXNhIGRlIGludGVyw6lzIGRlIDE4JSBhbnVhbCBjYXBpdGFsaXphYmxlIG1lbnN1YWxtZW50ZSBhIGZpbiBkZSBlZmVjdHVhciByZXRpcm9zIGRlICQ1MDAgbWVuc3VhbGVzIGR1cmFudGUgbG9zIDUgYcOxb3Mgc2lndWllbnRlcy4KJCRYIFx0aW1lcyBcZnJhY3soMStpKV57bl8xfS0xfXtpfSA9IFIgXHRpbWVzIFxmcmFjezEtKDEraSleey1uXzJ9fXtpfSQkCgpgYGB7ciBwcm9tcHQ9VFJVRX0KKDUwMCAqIGFubnVpdHkoaSA9IDAuMTggLyAxMiwgbiA9IDUgKiAxMiwgdHlwZSA9ICJhcnJlYXJzIikpIC8gYWNjdW11bGF0ZWRWYWx1ZShpID0gMC4xOCAvIDEyLCBuID0gMTAgKiAxMiwgdHlwZSA9ICJhcnJlYXJzIikKYGBgCgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqMTcuKiogVW5hIHBlcnNvbmEgaGEgZGVwb3NpdGFkbyAkMjUwIGFsIGZpbmFsIGRlIGNhZGEgbWVzIGR1cmFudGUgNSBhw7FvcyBlbiB1bmEgY3VlbnRhIHF1ZSBwYWdhIGVsIDQlIGNvbnZlcnRpYmxlIG1lbnN1YWxtZW50ZS4gwr9DdcOhbnRvIHRlbsOtYSBlbiBsYSBjdWVudGEgYWwgZmluYWwgZGUgZGljaG8gcGVyw61vZG8/CgokJFg9IFZGID0gUiBcdGltZXMgXGZyYWN7KDEraSlebiAtIDF9e2l9ICQkCgpgYGB7cn0KMjUwICogYWNjdW11bGF0ZWRWYWx1ZShpID0gMC4wNCAvIDEyLCBuID0gNSAqIDEyLCB0eXBlID0gImFycmVhcnMiKQpgYGAKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjE4LioqIFVuIHBhZHJlIGVtcGllemEgYSBhaG9ycmFyIHBhcmEgcXVlIHN1IGhpam8gcHVlZGEgZXN0dWRpYXIgdW5hIGNhcnJlcmEgdW5pdmVyc2l0YXJpYS4gUGxhbmVhIGRlcG9zaXRhciAkMTUwMCBlbiB1bmEgY3VlbnRhIGRlIGFob3Jyb3MgYWwgZmluYWwgZGUgY2FkYSB0cmltZXN0cmUgZHVyYW50ZSBsb3MgcHLDs3hpbW9zIDYgYcOxb3MuIFNpIGxhIHRhc2EgZGUgaW50ZXLDqXMgZXMgZGVsIDclIGNhcGl0YWxpemFibGUgdHJpbWVzdHJhbG1lbnRlLCDCv2N1w6FsIHNlcsOhIGVsIG1vbnRvIGRlIGxhIGN1ZW50YSBhbCBjYWJvIGRlIDYgYcOxb3M/CgokJFggPSBWRiA9IFIgXHRpbWVzIFxmcmFjeygxK2kpXm4gLSAxfXtpfSAkJApgYGB7cn0KMTUwMCAqIGFjY3VtdWxhdGVkVmFsdWUoaSA9IDAuMDcgLyA0LCBuID0gNiAqIDQsIHR5cGUgPSAiaW1tZWRpYXRlIikKYGBgCgoKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjE5LioqIMK/UXXDqSBjYW50aWRhZCBkZWJpw7Mgc2VyIGRlcG9zaXRhZGEgZWwgMSBkZSBqdW5pbyBkZSAxOTk4IGVuIHVuIGZvbmRvIHF1ZSBwcm9kdWpvIGVsIDUlIGNvbnZlcnRpYmxlIHNlbWVzdHJhbG1lbnRlIGNvbiBlbCBmaW4gZGUgcG9kZXIgaGFjZXIgcmV0aXJvcyBzZW1lc3RyYWxlcyBkZSAkNjAwIGNhZGEgdW5vLCBhIHBhcnRpciBkZWwgMSBkZSBkaWNpZW1icmUgZGUgMTk5OCB5IHRlcm1pbmFuZG8gZWwgMSBkZSBkaWNpZW1icmUgZGUgMjAwNz8KCiQkWCA9IFZBID0gUiBcdGltZXMgXGZyYWN7MS0gKDEraSleey1ufX17aX0kJApgYGB7cn0KNjAwICogYW5udWl0eShpID0gMC4wNSAvIDIsIG4gPSA5ICogMiArIDEsIHR5cGUgPSAiYXJyZWFycyIpCmBgYAoKCgpccnVsZXtcdGV4dHdpZHRofXswLjRwdH0KKioyMC4qKiBDb24gdW5hIHRhc2EgZGUgaW50ZXLDqXMgYWwgOCUgY29udmVydGlibGUgc2VtZXN0cmFsbWVudGUsIMK/cXXDqSBwYWdvIMO6bmljbyBpbm1lZGlhdG8gZXMgZXF1aXZhbGVudGUgYSAyNSBwYWdvcyBzZW1lc3RyYWxlcyBkZSAkMTAwMCBjYWRhIHVubywgaGFjacOpbmRvc2UgZWwgcHJpbWVybyBhbCBmaW5hbCBkZSBzZWlzIG1lc2VzPwoKJCRYID0gVkEgPSBSXHRpbWVzIFxmcmFjezEtICgxK2kpXnstbn19e2l9JCQKYGBge3J9CjEwMDAgKiBhbm51aXR5KGkgPSAwLjA4IC8gMiwgbiA9IDI1LCB0eXBlID0gImFycmVhcnMiKQpgYGAKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjIxLioqIFNlIGVzdGltYSBxdWUgdW4gdGVycmVubyBib3Njb3NvIHByb2R1Y2lyw6EgXCQxODAwMCBhbnVhbGVzIHBvciBzdSBleHBsb3RhY2nDs24gZW4gbG9zIHByw7N4aW1vcyAyMCBhw7FvcyB5IGVudG9uY2VzIGxhIHRpZXJyYSBwb2Ryw6EgdmVuZGVyc2UgZW4gJDE1MDAwLiBFbmNvbnRyYXIgc3UgdmFsb3IgYWN0dWFsIHN1cG9uaWVuZG8gdW4gaW50ZXLDqXMgYWwgNi4yNSUuCgokJFggPSBSIFx0aW1lcyBcZnJhY3sxLSAoMStpKV57LW59fXtpfSArIE0oMStpKV57LW59ICQkCgpgYGB7cn0KMTgwMDAgKiBhbm51aXR5KGkgPSAwLjA2MjUsIG4gPSAyMCwgdHlwZSA9ICJhcnJlYXJzIikgKyAxNTAwMCAqICgxICsgMC4wNjI1KSBeIC0yMApgYGAKCgoKCgpccnVsZXtcdGV4dHdpZHRofXswLjRwdH0KKioyMi4qKiDCv1F1w6kgZXMgbcOhcyBjb252ZW5pZW50ZSwgY29tcHJhciB1biBhdXRvbcOzdmlsIGVuIFwkMjc1MCBkZSBjb250YWRvIG8gcGFnYXIgXCQ1MDAgaW5pY2lhbGVzIHkgJDIwMCBhbCBmaW5hbCBkZSBjYWRhIG1lcyBwb3IgbG9zIHByw7N4aW1vcyAxMiBtZXNlcywgc3Vwb25pZW5kbyBpbnRlcmVzZXMgZGVsIDYlIGNvbnZlcnRpYmxlIG1lbnN1YWxtZW50ZT8KCiQkWF9hID0gVkFfYSQkCiQkWF9iID0gVkFfe2JfMX0gKyBWQV97Yl8yfSA9IFZBX3tiXzF9KyBSXHRpbWVzIFxmcmFjezEtICgxK2kpXnstbn19e2l9ICAkJAoKCmBgYHtyfQoob3BjaW9uZXMgPC0gYyhhID0gMjc1MCwgCiAgICAgICAgICAgICAgYiA9IDUwMCArIDIwMCAqIGFubnVpdHkoaSA9IDAuMDYgLyAxMiwgbiA9IDEyLCB0eXBlID0gImFycmVhcnMiKSkpCm9wY2lvbmVzW3doaWNoLm1pbihvcGNpb25lcyldCmBgYAoKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjIzLioqIFVuIGNvbnRyYXRvIGVzdGlwdWxhIHBhZ29zIHNlbWVzdHJhbGVzIGRlIFwkNDAwIHBvciBsb3MgcHLDs3hpbW9zIDEwIGHDsW9zIHkgdW4gcGFnbyBhZGljaW9uYWwgZGUgJDI1MDAgYWwgdMOpcm1pbm8gZGUgZGljaG8gcGVyw61vZG8uIEhhbGxhciBlbCB2YWxvciBlZmVjdGl2byBlcXVpdmFsZW50ZSBkZWwgY29udHJhdG8gYWwgOCUgY29udmVydGlibGUgc2VtZXN0cmFsbWVudGUuCgokJFggPSBWQV8xICsgVkFfMiA9UiBcdGltZXMgXGZyYWN7MS0gKDEraSleey1ufX17aX0gKyBNKDEraSleey1ufSAkJAoKYGBge3J9CjQwMCAqIGFubnVpdHkoaSA9IDAuMDggLyAyLCBuID0gMTAgKiAyLCB0eXBlID0gImFycmVhcnMiKSArCisgMjUwMCAqICgxICsgMC4wOCAvIDIpIF4gLSgxMCAqIDIpCmBgYAoKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjI0LioqIEVsIDEgZGUgbWF5byBkZSAxOTgwLCBNYXJpYW5lbGEgZGVwb3NpdMOzICQxMDAgZW4gdW5hIGN1ZW50YSBkZSBhaG9ycm9zIHF1ZSBwYWdhIGVsIDMlIGNvbnZlcnRpYmxlIHNlbWVzdHJhbG1lbnRlLCB5IGNvbnRpbnXDsyBoYWNpZW5kbyBkZXDDs3NpdG9zIHNpbWlsYXJlcyBjYWRhIDYgbWVzZXMgZGVzZGUgZW50b25jZXMuIERlc3B1w6lzIGRlbCAxIGRlIG1heW8gZGUgMTk5MiwgZWwgYmFuY28gZWxldsOzIGVsIGludGVyw6lzIGFsIDQlIGNvbnZlcnRpYmxlIHNlbWVzdHJhbG1lbnRlLiDCv0N1w6FudG8gdHV2byBlbiBsYSBjdWVudGEgcHJlY2lzYW1lbnRlIGRlc3B1w6lzIGRlbCBkZXDDs3NpdG8gZGVsIDEgZGUgbm92aWVtYnJlIGRlIDIwMDA/CgokJFggPSBWRiA9IFxsZWZ0WyBDKDEraV8xKV57bl8xfSArIFIgXHRpbWVzICBcZnJhY3soMStpKV57bl8xfSAtMX17aV8xfSBccmlnaHRdKDEraV8yKV57bl8yfSArIFIgXHRpbWVzICBcZnJhY3soMStpXzIpXntuXzJ9IC0xfXtpXzJ9ICQkCgoKYGBge3J9CigxMDAgKiAoMSArIDAuMDMgLyAyKSBeICgxMiAqIDIpICsgCjEwMCAqIGFjY3VtdWxhdGVkVmFsdWUoaSA9IDAuMDMgLyAyLCBuID0gMTIgKiAyLCB0eXBlID0gImFycmVhcnMiKSkgKiAoMSArIDAuMDQgLyAyKSBeICgxNykgKwoxMDAgKiBhY2N1bXVsYXRlZFZhbHVlKGkgPSAwLjA0IC8gMiwgbiA9IDggKiAyICsgMSwgdHlwZSA9ICJhcnJlYXJzIikKYGBgCgoKCgpccnVsZXtcdGV4dHdpZHRofXswLjRwdH0KKioyNS4qKiBDYWRhIHRyaW1lc3RyZSB1bmEgcGVyc29uYSBkZXBvc2l0YSBcJDMyMDAgZW4gc3UgY3VlbnRhIGRlIGFob3Jyb3MsIGxhIGN1YWwgZ2FuYSB1biBpbnRlcsOpcyBkZWwgMyw4JSB0cmltZXN0cmFsLiBEZXNwdcOpcyBkZSB0cmVzIGHDsW9zLCBzdXNwZW5kZSBsb3MgZGVww7NzaXRvcyB0cmltZXN0cmFsZXMgeSBlbCBtb250byBvYnRlbmlkbyBlbiBlc2UgbW9tZW50byBwYXNhIGEgdW4gZm9uZG8gZGUgaW52ZXJzacOzbiBxdWUgZGEgZWwgMjIlIGNhcGl0YWxpemFibGUgY2FkYSBtZXMuIFNpIGVsIGRpbmVybyBwZXJtYW5lY2nDsyAyIGHDsW9zIGVuIGVsIGZvbmRvIGRlIGludmVyc2nDs24sIG9idGVuZ2EgZWwgbW9udG8gZmluYWwgZW4gZWwgZm9uZG8uCgokJCBYID0gVkYgPSBcbGVmdCBbUiBcdGltZXMgXGZyYWMgeygxK2lfMSlee25fMX0gLTF9e2lfMX0gXHJpZ2h0XSAoMStpXzIpXntuXzJ9ICAkJAoKYGBge3J9CigzMjAwICogYWNjdW11bGF0ZWRWYWx1ZShpID0gMC4wMzggLyA0LCBuID0gMyAqIDQsIHR5cGUgPSAiYXJyZWFycyIpKSAqICgxICsgMC4yMiAvIDEyKSBeICgyICogMTIpCmBgYAoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqMjYuKiogVW5hIGNvbXB1dGFkb3JhIGN1ZXN0YSAkMTA1MCB5IGVsIGNvbXByYWRvciBjb252aWVuZSBwYWdhciBjdW90YXMgbWVuc3VhbGVzIGR1cmFudGUgZG9zIGHDsW9zLiBTaSBsYSB0YXNhIGRlbCBtZXJjYWRvIGVzIDE0LDUlIGFudWFsIGNvbnZlcnRpYmxlIG1lbnN1YWxtZW50ZSwgaGFsbGUgZWwgdmFsb3IgZGUgY2FkYSBjdW90YS4KCiQkIFZBID0gWFx0aW1lcyBcZnJhY3sxIC0gKDEraSlebn17aX0kJAoKYGBge3J9CjEwNTAgLyBhbm51aXR5KGkgPSAwLjE0NSAvIDEyLCBuID0gMiAqIDEyLCB0eXBlID0gImFycmVhcnMiKQpgYGAKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjI3LioqIEVsIGTDrWEgZGUgaG95IHNlIGNvbnRyYWUgdW5hIGRldWRhIGRlICQyMDAwMCB5IHNlIGNvbXByb21ldGUgYSBwYWdhciBlbiBjdW90YXMgc2VtZXN0cmFsZXMgdmVuY2lkYXMgZHVyYW50ZSA1IGHDsW9zLiBIYWxsYXIgZWwgdmFsb3IgZGUgbGEgY3VvdGEgc2VtZXN0cmFsIHF1ZSBkZWJlIHBhZ2Fyc2Ugc2kgc2UgYXBsaWNhIHVuIGludGVyw6lzIGRlIDEyJSBhbnVhbCBjYXBpdGFsaXphYmxlIHNlbWVzdHJhbG1lbnRlCgokJCBWQSA9IFhcdGltZXMgXGZyYWN7MSAtICgxK2kpXm59e2l9JCQKCmBgYHtyfQoyMDAwMCAvIGFubnVpdHkoaSA9IDAuMTIgLyAyLCBuID0gNSAqIDIsIHR5cGUgPSAiYXJyZWFycyIpCmBgYAoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqMjguKiogU3VzdGl0dWlyIHVuYSBzZXJpZSBkZSBwYWdvcyBkZSAkMTAwMDAgYWwgcHJpbmNpcGlvIGRlIGNhZGEgYcOxbywgcG9yIGVsIGVxdWl2YWxlbnRlIGVuIHBhZ29zIG1lbnN1YWxlcyB2ZW5jaWRvcywgY29uIHVuIGludGVyw6lzIGRlbCA4JSBjb252ZXJ0aWJsZSBtZW5zdWFsbWVudGUuCgokJCBWQSA9IFhcdGltZXMgXGZyYWN7MSAtICgxK2kpXm59e2l9JCQKYGBge3J9CjEwMDAwIC8gYW5udWl0eShpID0gMC4wOCAvIDEyLCBuID0gMTIsIHR5cGUgPSAiYXJyZWFycyIpCmBgYAoKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjI5LioqIEFsIDEgZGUgbWF5byBkZSAyMDAwLCBzZSB0aWVuZSBcJDI0NzUuNjAgZW4gdW4gZm9uZG8gcXVlIHBhZ2EgZWwgMyUgY29udmVydGlibGUgdHJpbWVzdHJhbG1lbnRlLiBIYWNpZW5kbyBkZXDDs3NpdG9zIHRyaW1lc3RyYWxlcyBpZ3VhbGVzIGVuIGVsIGZvbmRvLCBlbCAxIGRlIGFnb3N0byBkZSAyMDAwIHkgZWwgw7psdGltbyBlbCAxIGRlIG5vdmllbWJyZSBkZSAyMDA2LCB0ZW5kcsOhIGVuIGVzdGEgw7psdGltYSBmZWNoYSAkMTAwMDAgZW4gZWwgZm9uZG8uIEhhbGxhciBlbCBkZXDDs3NpdG8gcmVxdWVyaWRvLgoKCiQkIFZGID0gQygxK2kpXm4gKyBYXHRpbWVzIFxmcmFjeygxK2kpXm4gLTF9e2l9JCQKCmBgYHtyfQooMTAwMDAgLSAyNDc1LjYwICogKDEgKyAwLjAzIC8gNCkgXiAyNikgLyBhY2N1bXVsYXRlZFZhbHVlKGkgPSAwLjAzIC8gNCwgbiA9IDI2LCB0eXBlID0gImFycmVhcnMiKQpgYGAKCgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CgoKKiozMC4qKiBIb3kgc2UgZGVwb3NpdGFuIFwkMTUwMDAgZW4gdW5hIGN1ZW50YSBkZSBhaG9ycm9zIHF1ZSBhYm9uYSBlbCA3JSBkZSBpbnRlcsOpcy4gVHJhbnNjdXJyaWRvcyAzIGHDsW9zLCBzZSBoYWNlbiBudWV2b3MgZGVww7NzaXRvcyBjYWRhIGZpbmFsIGRlIGHDsW8sIGRlIG1vZG8gcXVlIGEgbG9zIDUgYcOxb3MsIHNlIHRpZW5lbiAkNzAwMDAgYWwgZWZlY3R1YXIgZWwgw7psdGltbyBkZXDDs3NpdG8uIEhhbGxhciBlbCB2YWxvciBkZSBsb3MgZGVww7NzaXRvcyBhbnVhbGVzLgoKJCRWRiA9IEMoMStpKV57bl8xfSArIFggXHRpbWVzIFxmcmFjeygxK2kpXntuXzJ9IC0xfXtpfSQkCmBgYHtyfQooNzAwMDAgLSAoMTUwMDAgKiAoMSArIDAuMDcpIF4gOCkpIC8gYWNjdW11bGF0ZWRWYWx1ZShpID0gMC4wNywgbiA9IDUsIHR5cGUgPSAiYXJyZWFycyIpCmBgYAoKCgoKIyBBbnVhbGlkYWRlcyBhbnRpY2lwYWRhcwoKUGFyYSBhbnVhbGlkYWRlcyBhbnRpY2lwYWRhcyBzZSBwdWVkZW4gdXRpbGl6YXIgaW5kaXN0aW50YW1lbnRlIGVsIGFyZ3VtZW50byBgYWR2YW5jZWAgbyBlbCBhcmd1bWVudG8gYGR1ZWAgZW4gbGFzIGZ1bmNpb25lcyBgYWNjdW11bGF0ZWRWYWx1ZWAgeSBgYW5udWl0eWAKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjMxLioqIEhhbGxhciBlbCB2YWxvciBmdXR1cm8geSBlbCB2YWxvciBhY3R1YWwgZGUgbGEgYW51YWxpZGFkIGFudGljaXBhZGE6IFwkMzAwIG1lbnN1YWxlcyBkdXJhbnRlIDUgYcOxb3MgYWwgNiUgY2FwaXRhbGl6YWJsZSBtZW5zdWFsbWVudGUuCgoKJCQKXGJlZ2lue3NwbGl0fQpWRiAmPSBSIFxsZWZ0WyBcZnJhY3soMStpKV57bisxfSAtMX17aX0gLTFccmlnaHRdIFxcCiY9IDMwMCBcbGVmdFsgXGZyYWN7KDEgKyBcZnJhY3swLjA2fXsxMn0pXns1XHRpbWVzMTIrMX0gLTF9e1xmcmFjezAuMDZ9ezEyfX0gLTEgXHJpZ2h0XSBcXCAKJj0gMjEuMDM1LDY2ClxlbmR7c3BsaXR9CiQkCgoKCmBgYHtyfQozMDAgKiBhY2N1bXVsYXRlZFZhbHVlKGkgPSAwLjA2IC8gMTIsIG4gPSA1ICogMTIsIHR5cGUgPSAiZHVlIikKYGBgCgoKJCQKXGJlZ2lue3NwbGl0fQpWUCAmPSBSIFxsZWZ0WyBcZnJhY3sxIC0gKDEraSleey0obi0xKX19e2l9ICsgMSBccmlnaHRdIFxcCiY9IDMwMCBcIFxsZWZ0WyBcZnJhY3sxIC0gKDEgKyBcZnJhY3swLjA2fXsxMn0pXnstKDVcdGltZXMxMi0xKX19e1xmcmFjezAuMDZ9ezEyfX0gKyAxIFxyaWdodF0gXFwgCiY9IDE1LjU5NSwyNgpcZW5ke3NwbGl0fQokJAoKYGBge3J9CjMwMCAqIGFubnVpdHkoaSA9IDAuMDYgLyAxMiwgbiA9IDUgKiAxMiwgdHlwZSA9ICJhZHZhbmNlIikKYGBgCgoKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjMyLioqIEhhbGxhciBlbCB2YWxvciBmdXR1cm8geSBlbCB2YWxvciBhY3R1YWwgZGUgdW5hIGFudWFsaWRhZCBhbnRpY2lwYWRhIGRlICQyNTAwIHNlbWVzdHJhbGVzLCBwb3IgNiBhw7FvcyBhbCA0JSBjYXBpdGFsaXphYmxlIHNlbWVzdHJhbG1lbnRlLgoKJCRYXzEgPSBWRiA9IFIgXCBcbGVmdFsgXGZyYWN7KDEraSlebiAtMX17aX0gXHJpZ2h0XSAoMStpKSQkCgpgYGB7cn0KMjUwMCAqIGFjY3VtdWxhdGVkVmFsdWUoaSA9IDAuMDQgLyAyLCBuID0gNiAqIDIsIHR5cGUgPSAiYWR2YW5jZSIpCmBgYAoKCiQkWF8yID0gVkEgPSBSIFwgXGxlZnRbIFxmcmFjezEgLSAoMStpKV57LW59fXtpfSBccmlnaHRdICgxK2kpJCQKCmBgYHtyfQoyNTAwICogYW5udWl0eSggaSA9IDAuMDQgLyAyLCBuID0gNiAqIDIsIHR5cGUgPSAiYWR2YW5jZSIpCmBgYAoKCgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqMzMuKiogVW5hIGVtcHJlc2EgcmVzZXJ2YSAkMTUwMCBhbCBwcmluY2lwaW8gZGUgY2FkYSB0cmltZXN0cmUgcGFyYSBjb25zdHJ1aXIgdW4gZm9uZG8gcGFyYSByZW5vdmFjacOzbiBkZSBhY3Rpdm9zLiBTaSBlbCBmb25kbyBhY3JlZGl0YSBlbCAzJSBjYXBpdGFsaXphYmxlIHRyaW1lc3RyYWxtZW50ZSwgwr9jdcOhbCBzZXLDoSBlbCBtb250byBxdWUgZGlzcG9uZHLDoSBlbCBmb25kbyBkZXNwdcOpcyBkZSA4IGHDsW9zPwoKJCRYID0gVkYgPSBSIFwgXGxlZnRbIFxmcmFjeygxK2kpXm4gLTF9e2l9IFxyaWdodF0gKDEraSkkJAoKCmBgYHtyfQoxNTAwICogYWNjdW11bGF0ZWRWYWx1ZShpID0gMC4wMyAvIDQsIG4gPSA4ICogNCwgdHlwZSA9ICJkdWUiKQpgYGAKCgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqMzQuKiogR2luYSBHYXJjw61hIGFscXVpbGEgdW4gZWRpZmljaW8gZW4gXCQyNTAwMCBhbnVhbGVzIHBvciBhZGVsYW50YWRvIGUgaW52aWVydGUgJDE4MDAwIGRlIGNhZGEgcGFnbyBlbiB1biBmb25kbyBxdWUgcmVjb25vY2UgZWwgNiUuIMK/Q3XDoWwgZXMgZWwgaW1wb3J0ZSBkZWwgZm9uZG8gZGVzcHXDqXMgZGUgMTAgYcOxb3M/CgokJFggPSBWRiA9IFIgXCBcbGVmdFsgXGZyYWN7KDEraSlebiAtMX17aX0gXHJpZ2h0XSAoMStpKSQkCgpgYGB7cn0KMTgwMDAgKiBhY2N1bXVsYXRlZFZhbHVlKGkgPSAwLjA2LCBuID0gMTAsIHR5cGUgPSAiYWR2YW5jZSIpCmBgYAoKCgpccnVsZXtcdGV4dHdpZHRofXswLjRwdH0KKiozNS4qKiBDYWxjdWxhciBlbCB2YWxvciBkZSBjb250YWRvIGRlIHVuYSBwcm9waWVkYWQgdmVuZGlkYSBhIDggYcOxb3MgcGxhem8gY29uIHBhZ29zIGRlICQxNTIwMCBzZW1lc3RyYWxlcyBhbnRpY2lwYWRvcywgc2kgbGEgdGFzYSBkZSBpbnRlcsOpcyBlcyBkZWwgMTAlIGNvbnZlcnRpYmxlIHNlbWVzdHJhbG1lbnRlCgokJFggPSBWQSA9IFIgXCBcbGVmdFsgXGZyYWN7MSAtICgxK2kpXnstbn19e2l9IFxyaWdodF0gKDEraSkkJAoKYGBge3J9CjE1MjAwICogYW5udWl0eShpID0gMC4xMCAvIDIsIG4gPSA4ICogMiwgdHlwZSA9ICJhZHZhbmNlIikKYGBgCgoKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjM2LioqIFVuIGF1dG8gcHVlZGUgc2VyIGFkcXVpcmlkbyBtZWRpYW50ZSBjdW90YXMgYW50aWNpcGFkYXMgZGUgJDk1MCBtZW5zdWFsZXMsIGR1cmFudGUgMTggbWVzZXMsIHN1cG9uaWVuZG8gaW50ZXJlc2VzIGFsIDglIGNvbnZlcnRpYmxlIG1lbnN1YWxtZW50ZSwgwr9jdcOhbCBlcyBlbCB2YWxvciBkZSBjb250YWRvIGRlbCBhdXRvPwoKJCRYID0gVkEgPSBSIFwgXGxlZnRbIFxmcmFjezEgLSAoMStpKV57LW59fXtpfSBccmlnaHRdICgxK2kpJCQKCmBgYHtyfQo5NTAgKiBhbm51aXR5KGkgPSAwLjA4IC8gMTIsIG4gPSAxOCwgdHlwZSA9ICJhZHZhbmNlIikKYGBgCgoKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjM3LioqIENvbiBlbCBmaW4gZGUgZGlzcG9uZXIgZGUgJDQwMDAgZGVudHJvIGRlIDQgYcOxb3MsIHVuYSBlbXByZXNhIGRlY2lkZSByZWFsaXphciBkZXDDs3NpdG9zIHRyaW1lc3RyYWxlcyBwb3IgYW50aWNpcGFkbyBlbiB1biBmb25kbyBxdWUgcmVjb25vY2UgZWwgOCUgY29uIGNhcGl0YWxpemFjacOzbiB0cmltZXN0cmFsLCBlbmNvbnRyYXIgZWwgdmFsb3IgZGVsIGRlcMOzc2l0byBxdWUgc2UgZGViZSByZWFsaXphci4KCgokJFZGID0gWCBcIFxsZWZ0WyBcZnJhY3soMStpKV5uIC0xfXtpfSBccmlnaHRdICgxK2kpJCQKCmBgYHtyfQo0MDAwIC8gYWNjdW11bGF0ZWRWYWx1ZShpID0gMC4wOCAvIDQsIG4gPSA0ICogNCwgdHlwZSA9ICJhZHZhbmNlIikKYGBgCgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqMzguKiogUGFyYSByZXBvc2ljacOzbiBkZSBhY3Rpdm9zLCB1bmEgZW1wcmVzYSByZXF1aWVyZSBkZSAkNDUwMDAgZGVudHJvIGRlIDQgYcOxb3MsIGRlY2lkZSBlbnRvbmNlcyByZWFsaXphciBkZXDDs3NpdG9zIHNlbWVzdHJhbGVzIHBvciBhbnRpY2lwYWRvIGVuIHVuIGZvbmRvIHF1ZSByZWNvbm9jZSBlbCAxMCUgY29uIGNhcGl0YWxpemFjacOzbiBzZW1lc3RyYWwsIGVuY29udHJhciBlbCB2YWxvciBkZWwgZGVww7NzaXRvIHF1ZSBzZSBkZWJlIHJlYWxpemFyLgoKJCRWRiA9IFggXCBcbGVmdFsgXGZyYWN7KDEraSlebiAtMX17aX0gXHJpZ2h0XSAoMStpKSQkCgpgYGB7cn0KNDUwMDAgLyBhY2N1bXVsYXRlZFZhbHVlKGkgPSAwLjEwIC8gMiwgbiA9IDQgKiAyLCB0eXBlID0gImFkdmFuY2UiKQpgYGAKCgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqMzkuKiogRWwgdmFsb3IgZGUgY29udGFkbyBkZSB1biBjb2NoZSB1c2FkbyBlcyBkZSAkODY1MCwgdW5hIHBlcnNvbmEgZGVzZWEgcGFnYXIgZW4gMzYgYWJvbm9zIG1lbnN1YWxlcywgdmVuY2llbmRvIGVsIHByaW1lcm8gZWwgZMOtYSBkZSBsYSBjb21wcmEuIFNpIHNlIGNhcmdhIGVsIDE1JSBjb252ZXJ0aWJsZSBtZW5zdWFsbWVudGUsIGhhbGxhciBlbCBpbXBvcnRlIGRlbCBwYWdvIG1lbnN1YWwuCgokJFZBID0gWCBcIFxsZWZ0WyBcZnJhY3sxLSgxK2kpXm59e2l9IFxyaWdodF0gKDEraSkkJAoKYGBge3J9Cjg2NTAgLyBhbm51aXR5KGkgPSAwLjE1IC8gMTIsIG4gPSAzNiwgdHlwZSA9ICJhZHZhbmNlIikKYGBgCgpccnVsZXtcdGV4dHdpZHRofXswLjRwdH0KKio0MC4qKiBVbmEgZW1wcmVzYSBhZHF1aWVyZSB1bmEgZGV1ZGEgZGUgJDMwMDAwIHkgcHJvcG9uZSBwYWdhciBtZWRpYW50ZSBjdW90YXMgdHJpbWVzdHJhbGVzIGFudGljaXBhZGFzIHBvciAzIGHDsW9zOyBlbmNvbnRyYXIgZWwgdmFsb3IgZGUgbGEgY3VvdGEgdHJpbWVzdHJhbCBhbnRpY2lwYWRhIHNpIHNlIGFwbGljYSB1biBpbnRlcsOpcyBkZSA4JSBhbnVhbCBjYXBpdGFsaXphYmxlIHRyaW1lc3RyYWxtZW50ZS4KCiQkVkEgPSBYIFwgXGxlZnRbIFxmcmFjezEtKDEraSlebn17aX0gXHJpZ2h0XSAoMStpKSQkCgpgYGB7cn0KMzAwMDAgLyBhbm51aXR5KGkgPSAwLjA4IC8gNCwgbiA9IDMgKiA0LCB0eXBlID0gImFkdmFuY2UiKQpgYGAKCgpccnVsZXtcdGV4dHdpZHRofXswLjRwdH0KKio0MS4qKiBDYWxjdWxhciBlbCB2YWxvciBkZSBjb250YWRvIGRlIHVuIGVxdWlwbyBtw6lkaWNvIHF1ZSBzZSB2ZW5kZSBhIDIgYcOxb3MgcGxhem8sIGNvbiBlbCA5JSBkZSBpbnRlcsOpcwpjb252ZXJ0aWJsZSB0cmltZXN0cmFsbWVudGUgeSBjb24gcGFnb3MgdHJpbWVzdHJhbGVzIGFudGljaXBhZG9zIGRlIFwkNDAwMCwgeSB1biDDumx0aW1vIHBhZ28gZGUgXCQzMjAwIGEgbG9zIDIgYcOxb3MgMyBtZXNlcy4KCiQkWCA9IFZBXzEgKyBWQV8yJCQKJCRYID0gUiBcbGVmdFsgXGZyYWN7MS0oMStpKV57bl8xfX17aX0gXHJpZ2h0XSAoMStpKSArIFxmcmFjIHtNfXsoMStpKV57bl8yfX0kJAoKYGBge3J9CjQwMDAgKiBhbm51aXR5KGkgPSAwLjA5IC8gNCwgbiA9IDIgKiA0LCB0eXBlID0gImFkdmFuY2UiKSAKICArIDMyMDAgKiAoMSArIDAuMDkgLyA0KSBeIC0gKDIgKiA0ICsgMSkKYGBgCgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CgoqKjQyLioqIEVsIGTDrWEgZGUgaG95LCBHYWxvIEJvbmlsbGEgZGVwb3NpdGEgXCQ1MDAgZW4gdW5hIGN1ZW50YSBjdXlvIHNhbGRvIGEgbGEgZmVjaGEgZGVsIGRlcMOzc2l0byBlcyBkZSBcJDM1MDA7IHkgY2FkYSBtZXMgY29udGluw7phIGNvbiBkaWNob3MgZGVww7NzaXRvcyBwb3IgMiBhw7FvcyBjb24gdW4gaW50ZXLDqXMgZGVsIDglIGNhcGl0YWxpemFibGUgbWVuc3VhbG1lbnRlOyBwcmVjaXNhbWVudGUgYWwgZmluYWxpemFyIGVsIHNlZ3VuZG8gYcOxbyB2YSBhIGVtcGV6YXIgYSByZWFsaXphciA4IHJldGlyb3Mgc2VtZXN0cmFsZXMgY29uc2lkZXJhbmRvIHVuYSB0YXNhIGRlbCAxMiUgY2FwaXRhbGl6YWJsZSBzZW1lc3RyYWxtZW50ZS4gRW5jb250cmFyIGVsIHZhbG9yIGRlIGxvcyByZXRpcm9zIHNlbWVzdHJhbGVzIGRlIG1hbmVyYSBxdWUgbGEgY3VlbnRhIHNlIGxpcXVpZGUuCgokJFZGXzEgKyBWRl8yID0gVkEkJAoKJCRDKDEgKyBpXzEpXntuXzF9ICsgUl8xIFxsZWZ0WyBcZnJhY3soMStpXzEpXntuXzF9IC0xfXtpXzF9IFxyaWdodF0gKDEraV8xKSA9IFggXGxlZnRbIFxmcmFjezEtKDEraV8yKV57bl8yfX17aV8yfSBccmlnaHRdICgxK2lfMikgJCQKCmBgYHtyfQooMzUwMCAqICgxICsgMC4wOCAvIDEyKSBeIDI0ICsgCjUwMCAqIGFjY3VtdWxhdGVkVmFsdWUoaSA9IDAuMDggLyAxMiwgbiA9IDIgKiAxMiwgdHlwZSA9ICJhZHZhbmNlIikpIC8gYW5udWl0eSAoaSA9IDAuMTIgLyAyLCBuID0gOCwgdHlwZSA9ICJhZHZhbmNlIikKYGBgCgoKCgoKCgojIEFudWFsaWRhZGVzIGRpZmVyaWRhcwoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CgoqKjQzLioqIFNlIGRlc2VhIGVzdGFibGVjZXIgdW4gZm9uZG8sIHBhcmEgcXVlIHVuIGhvc3BpdGFsIHF1ZSBlc3RhcsOhIHRlcm1pbmFkbyBkZW50cm8gZGUgNiBhw7FvcywgcmVjaWJhIHVuYSByZW50YSBhbnVhbCBkZSAkMzUwMDAgcG9yIDIwIGHDsW9zLiBIYWxsYXIgZWwgdmFsb3IgZGVsIGZvbmRvIHNpIGdhbmEgZWwgOCUgZGUgaW50ZXLDqXMuCgoKJCRYID0gVkEgPSBSIFx0aW1lcyBcZnJhY3sxIC0gKDEraSleey1ufX17aSBcICgxK2kpXm19JCQKCmBgYHtyfQozNTAwMCAqIGFubnVpdHkoaSA9IDAuMDgsIG4gPSAyMCwgbSA9IDUsIHR5cGUgPSAiYXJyZWFycyIpCmBgYAoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CgoqKjQ0LioqIEFsIG5hY2ltaWVudG8gZGUgc3UgaGlqbywgTWFyY2VsbyBkZXNlYSBkZXBvc2l0YXIgZW4gdW5hIGZpZHVjaWFyaWEgdW5hIGNhbnRpZGFkIHRhbCBxdWUgbGUgcHJvcG9yY2lvbmUgYSBzdSBoaWpvIHBhZ29zIGRlIFwkMTI1MCBjYWRhIDYgbWVzZXMgZHVyYW50ZSAxMCBhw7FvcywgdmVuY2llbmRvIGVsIHByaW1lcm8gY3VhbmRvIGN1bXBsYSAxOCBhw7Fvcy4gU2kgbGEgZmlkdWNpYXJpYSBwYWdhIGVsIDMlIGNvbnZlcnRpYmxlIHNlbWVzdHJhbG1lbnRlLCDCv2N1w6FudG8gdGVuZHLDoSBxdWUgZGVwb3NpdGFyIE1hcmNlbG8/CgokJFggPSBWQSA9IFIgXHRpbWVzIFxmcmFjezEgLSAoMStpKV57LW59fXtpIFwgKDEraSlebX0kJAoKYGBge3J9CjEyNTAgKiBhbm51aXR5KGkgPSAwLjAzLzIsIG4gPSAxMCAqIDIsIG0gPSAzNSwgdHlwZSA9ICJhcnJlYXJzIikKYGBgCgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CgoqKjQ1LioqIENhcmxvcyBkZXNlYSBkZXBvc2l0YXIgZW4gdW4gZm9uZG8gcXVlIGdhbmEgZWwgMyUgY29udmVydGlibGUgdHJpbWVzdHJhbG1lbnRlLCB1bmEgY2FudGlkYWQgZGUgZGluZXJvIHN1ZmljaWVudGUgcXVlIGxlIHBlcm1pdGEgaGFjZXIgcmV0aXJvcyB0cmltZXN0cmFsZXMgZGUgXCQxMDAwIGNhZGEgdW5vLCBlbCBwcmltZXJvIGFsIHTDqXJtaW5vIGRlIDUgYcOxb3MgeSBlbCDDumx0aW1vIGFsIHTDqXJtaW5vIGRlIDEwIGHDsW9zLiBIYWxsYXIgZWwgZGVww7NzaXRvIG5lY2VzYXJpby4KCiQkWCA9IFZBID0gUiBcdGltZXMgXGZyYWN7MSAtICgxK2kpXnstbn19e2kgXCAoMStpKV5tfSQkCgoKCmBgYHtyfQoxMDAwICogYW5udWl0eShpID0gMC4wMyAvIDQsIG4gPSA1ICogNCwgbSA9IDE5LCB0eXBlID0gImltbWVkaWF0ZSIpCmBgYAoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CgoqKjQ2LioqIFVuYSBjb21wYcOxw61hIGVzIGNvbmNlc2lvbmFyaWEgZGUgbGEgZXhwbG90YWNpw7NuIGRlIHVuIGhvdGVsLCBwb3IgMTUgYcOxb3MgY29udGFkb3MgZGVzZGUgc3UgaW5hdWd1cmFjacOzbjsgZWwgaG90ZWwgc2Vyw6EgcHVlc3RvIGVuIHNlcnZpY2lvIGRlbnRybyBkZSBkb3MgYcOxb3MuIFNlIGVzdGltYSBxdWUgbG9zIGluZ3Jlc29zIGJydXRvcyBtZW5zdWFsZXMgc2Vyw6FuIGRlIFwkMjUwMDAuIEhhbGxhciBjb24gbGEgdGFzYSBkZWwgMTIlIGNvbnZlcnRpYmxlIG1lbnN1YWxtZW50ZSwgZWwgdmFsb3IgYWN0dWFsIGRlIGxvcyBpbmdyZXNvcyBicnV0b3MuCgokJFggPSBWQSA9IFIgXHRpbWVzIFxmcmFjezEgLSAoMStpKV57LW59fXtpIFwgKDEraSlebX0kJAoKYGBge3J9CjI1MDAwICogYW5udWl0eShpID0gMC4xMiAvIDEyLCBuID0gMTUgKiAxMiwgbSA9IDI0LCB0eXBlID0gImFycmVhcnMiKQpgYGAKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoKKio0Ny4qKiBVbmEgY29tcGHDscOtYSBhZHF1aWVyZSB5YWNpbWllbnRvcyBkZSBtaW5lcmFsOyBsb3MgZXN0dWRpb3MgZGUgaW5nZW5pZXLDrWEgZGVtdWVzdHJhbiBxdWUgbG9zIHRyYWJham9zIHByZXBhcmF0b3Jpb3MgeSB2w61hcyBkZSBhY2Nlc28gZGVtb3JhcsOhbiA2IGHDsW9zLiBTZSBlc3RpbWEgcXVlIGxvcyB5YWNpbWllbnRvcyBlbiBleHBsb3RhY2nDs24gcmVuZGlyw6FuIHVuYSBnYW5hbmNpYSBhbnVhbCBkZSBcJDYwMDAwMC4gU3Vwb25pZW5kbyBxdWUgbGEgdGFzYSBjb21lcmNpYWwgZGUgaW50ZXLDqXMgZXMgZGVsIDglIHkgcXVlIGxvcyB5YWNpbWllbnRvcyBzZSBhZ290YXLDoW4gZGVzcHXDqXMgZGUgMTUgYcOxb3MgY29udGludW9zIGRlIGV4cGxvdGFjacOzbiwgaMOhbGxlc2UgZWwgVmFsb3IgYWN0dWFsIGRlIGxhIHJlbnRhIHF1ZSBlc3BlcmEgb2J0ZW5lcnNlLgoKJCRYID0gVkEgPSBSIFx0aW1lcyBcZnJhY3sxIC0gKDEraSleey1ufX17aSBcICgxK2kpXm19JCQKCmBgYHtyfQo2MDAwMDAgKiBhbm51aXR5KGkgPSAwLjA4LCBuID0xNSwgbSA9IDYsIHR5cGUgPSAiYXJyZWFycyIpCmBgYAoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CgoqKjQ4LioqIEhhbGxhciBlbCBwcmVjaW8gZGUgY29udGFkbyBkZSB1bmEgcHJvcGllZGFkIGNvbXByYWRhIGFzw606IEN1b3RhIGluaWNpYWwgZGUgXCQ1MDAwMDsgMTAgcGFnb3MgdHJpbWVzdHJhbGVzIGRlIFwkMTIwMDAsIGVsIHByaW1lciBwYWdvIGRlbnRybyBkZSAyIGHDsW9zOyB5IHVuIHBhZ28gZmluYWwgZGUgXCQxODAwMCwgNiBtZXNlcyBkZXNwdcOpcyBkZWwgw7psdGltbyBwYWdvIHRyaW1lc3RyYWwuIEVsIGludGVyw6lzIGVzIGRlbCAxNSUgY29udmVydGlibGUgdHJpbWVzdHJhbG1lbnRlLgoKJCQgWCA9IFZBID0gVkFfMSArIFIgXHRpbWVzIFxmcmFjezEgLSAoMStpKV57LW5fMX19e2kgXCAoMStpKV5tfSArIE0gKDEraSleey1uXzJ9ICQkCmBgYHtyfQo1MDAwMCArIDEyMDAwICogYW5udWl0eShpID0gMC4xNSAvIDQsIG4gPSAxMCwgbSA9IDcsIHR5cGUgPSAiYXJyZWFycyIpIAogICsgMTgwMDAgKiAoMSArIDAuMTUgLyA0KSBeIC0xOQpgYGAKCgpccnVsZXtcdGV4dHdpZHRofXswLjRwdH0KCioqNDkuKiogVW4gaHVlcnRvIHByb3BvcmNpb25hcsOhIGxhIHByaW1lcmEgY29zZWNoYSBjb21wbGV0YSBhbCBmaW5hbCBkZWwgNXRvIGHDsW8geSBzZSBlc3BlcmEgb2J0ZW5lciBwb3IgbGFzIHNpZ3VpZW50ZXMgY29zZWNoYXMgdW4gaW5ncmVzbyBhbnVhbCBkZSBcJDUwMDAgZHVyYW50ZSAxNiBhw7FvcyBtw6FzLCBmaW5hbG1lbnRlIHNlIHBvZHLDoSB2ZW5kZXIgZWwgaHVlcnRvIGVuICQzNTAwMC4gSGFsbGFyIGVsIHZhbG9yIGVuIGVmZWN0aXZvIGRlbCBodWVydG8gc3Vwb25pZW5kbyBpbnRlcmVzZXMgYWwgNSUKCiQkIFggPSBWQSA9IFIgXHRpbWVzIFxmcmFjezEgLSAoMStpKV57LW5fMX19e2kgXCAoMStpKV5tfSArIE0gKDEraSleey1uXzJ9JCQKYGBge3J9CjUwMDAgKiBhbm51aXR5KGkgPSAwLjA1LCBuID0gMTYsIG0gPSA0LCB0eXBlID0gImFycmVhcnMiKSArIDM1MDAwICogKDErMC4wNSkgXiAtMjAKYGBgCgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CgoqKjUwLioqIFVuIGdyYW5qZXJvIGNvbXByw7MgdW4gdHJhY3RvciBlbCAxIGRlIG1hcnpvLCBjb21wcm9tZXRpw6luZG9zZSBhIGhhY2VyIHBhZ29zIG1lbnN1YWxlcyBkZSBcJCAyMDAwIGR1cmFudGUgMjQgbWVzZXMsIGVsIHByaW1lcm8gZWwgMSBkZSBvY3R1YnJlIHkgdW4gcGFnbyBhZGljaW9uYWwgZGUgXCQxNTAwIDMgbWVzZXMgbcOhcyB0YXJkZTsgc2kgZWwgaW50ZXLDqXMgZXMgMTIlIGNvbnZlcnRpYmxlIG1lbnN1YWxtZW50ZSwgaGFsbGFyIGVsIFZhbG9yIEFjdHVhbCBlcXVpdmFsZW50ZS4KCiQkIFggPSBWQSA9IFIgXHRpbWVzIFxmcmFjezEgLSAoMStpKV57LW5fMX19e2kgXCAoMStpKV5tfSArIE0gKDEraSleey1uXzJ9JCQKCmBgYHtyfQoyMDAwICogYW5udWl0eShpID0gMC4xMiAvIDEyLCBuID0gMjQsIG0gPSA2LCB0eXBlID0gImFycmVhcnMiKSAKICArIDE1MDAgKiAoMSArIDAuMTIgLyAxMikgXiAtMzMKYGBgCgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CgoqKjUxLioqIMK/Q29uIGN1w6FudG8gc2UgcHVlZGUgY29tcHJhciB1bmEgcmVudGEgZGUgXCQxNTAwMCB0cmltZXN0cmFsZXMsIHBhZ2FkZXJhIGR1cmFudGUgMTAgYcOxb3MsIGRlYmllbmRvIGNvbWVuemFyIGVsIHByaW1lciBwYWdvIGRlbnRybyBkZSA0IGHDsW9zLCBzaSBjb24gZWwgcHJpbWVyIHBhZ28gZGViZXLDoSByZWNpYmlyc2UgYWRlbcOhcyBcJDEwMDAwLCBzaSBsYSB0YXNhIGRlIGludGVyw6lzIGVzIGRlbCA4JSBjYXBpdGFsaXphYmxlIHRyaW1lc3RyYWxtZW50ZS4KCiQkIFggPSBWQSA9IFIgXHRpbWVzIFxmcmFjezEgLSAoMStpKV57LW5fMX19e2kgXCAoMStpKV5tfSArIE0gKDEraSleey1uXzJ9JCQKCmBgYHtyfQoxNTAwMCAqIGFubnVpdHkoaSA9IDAuMDggLyA0LCBuID0gNDAsIG0gPSAxNSwgdHlwZSA9ICJhcnJlYXJzIikgCiAgKyAxMDAwMCAqICgxICsgMC4wOCAvIDQpIF4gLTE2CmBgYAoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CgoqKjUyLioqIFVuIGFydMOtY3VsbyBzZSBjb21wcsOzIGEgcGxhem9zIGNvbiB1biBwYWdvIGluaWNpYWwgZGUgXCQxMDAwIHkgNyBjdW90YXMgbWVuc3VhbGVzIGlndWFsZXMgZGUgXCQ4MDAgeSB1biBpbnRlcsOpcyBkZSBmaW5hbmNpYWNpw7NuIGRlbCA4JSBjb252ZXJ0aWJsZSBtZW5zdWFsbWVudGUsIHNpIGxhIHByaW1lcmEgY3VvdGEgc2UgcGFnw7MgY2luY28gbWVzZXMgZGVzcHXDqXMgZGUgZW50cmVnYWRvIGVsIGFydMOtY3VsbywgZW5jb250cmFyIGVsIHZhbG9yIGRlIGNvbnRhZG8uCgokJFggPSBWQSA9IFZBXzEgKyBSIFx0aW1lcyBcZnJhY3sxIC0gKDEraSleey1uXzF9fXtpIFwgKDEraSlebX0gJCQKCmBgYHtyfQoxMDAwICsgODAwICogYW5udWl0eShpID0gMC4wOCAvIDEyLCBuID0gNywgbSA9IDQsIHR5cGUgPSAiYXJyZWFycyIpCmBgYAoKCgoKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjUzKiogVW5hIGxleSBkZSBpbmNlbnRpdm9zIHBhcmEgbGEgYWdyaWN1bHR1cmEsIHBlcm1pdGUgYSB1biBhZ3JpY3VsdG9yIGFkcXVpcmlyIGVxdWlwb3MgcG9yIHZhbG9yIGRlIFwkNTAwMDAsIHBhcmEgcGFnYXJsb3MgZGVudHJvIGRlIDMgYcOxb3MsIGNvbiA4IGN1b3RhcyBzZW1lc3RyYWxlcy4gU2kgbGEgbGV5IGZpamEgcGFyYSBlc3RlIHRpcG8gZGUgcHLDqXN0YW1vcyBlbCA2JSBkZSBpbnRlcsOpcywgY2FwaXRhbGl6YWJsZSBzZW1lc3RyYWxtZW50ZSwgaGFsbGFyIGVsIHZhbG9yIGRlIGxhcyBjdW90YXMgc2VtZXN0cmFsZXMuCgokJCBWQSA9IFggXHRpbWVzIFxmcmFjezEgLSAoMStpKV57LW5fMX19e2kgXCAoMStpKV5tfSQkCgpgYGB7cn0KNTAwMDAgLyBhbm51aXR5KGkgPSAwLjA2IC8gMiwgbiA9IDgsIG0gPSAzICogMiAtIDEsIHR5cGUgPSAiYXJyZWFycyIpCmBgYAoKCgoKCgoKIyBBbnVhbGlkYWRlcyBwZXJwZXR1YXMKCgpccnVsZXtcdGV4dHdpZHRofXswLjRwdH0KKio1NC4qKiBFbCB0ZXN0YW1lbnRvIGRlbCBzZcOxb3IgUMOpcmV6IGVzdGFibGVjZSBxdWUgZGViZXLDoSBwYWdhcnNlIGFsIGFzaWxvIGRlIGFuY2lhbm9zIE1hcsOtYSBBdXhpbGlhZG9yYSwgdW5hIHJlbnRhIHBlcnBldHVhIGRlIFwkMTAwMCwgcGFnYWRlcm9zIGFsIGZpbmFsIGRlIGNhZGEgYcOxby4gwr9DdcOhbCBlcyBlbCB2YWxvciBhY3R1YWwgZGUgZXNlIGxlZ2Fkbywgc3Vwb25pZW5kbyBxdWUgc2UgZW5jdWVudHJhIGludmVydGlkbyBhIDEwJSBkZSBpbnRlcsOpcyBlZmVjdGl2byBhbnVhbD8KCmBgYHtyfQoxMDAwICogYW5udWl0eShpID0gMC4xMCwgbiA9IEluZiwgdHlwZSA9ICJhcnJlYXJzIikKYGBgCgpccnVsZXtcdGV4dHdpZHRofXswLjRwdH0KCioqNTUuKiogU3Vwb25pZW5kbyBxdWUgdW5hIGdyYW5qYSBwcm9kdXpjYSBcJDUwMDAgYW51YWxlcyBpbmRlZmluaWRhbWVudGUsIMK/Y3XDoWwgZXMgc3UgdmFsb3IgYWN0dWFsIHNvYnJlIGxhIGJhc2UgZGVsIDEwJT8KCmBgYHtyfQo1MDAwICogYW5udWl0eShpID0gMC4xMCwgbiA9IEluZiwgdHlwZSA9ICJhcnJlYXJzIikKYGBgCgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CgoqKjU2LioqIEVzdGFibGVjZXIgdW5hIGPDoXRlZHJhIGVuIHVuYSB1bml2ZXJzaWRhZCBjdWVzdGEgXCQxMjUwMCBhbnVhbGVzLiBIYWxsYXIgZWwgdmFsb3IgcHJlc2VudGUgZGVsIGZvbmRvIG5lY2VzYXJpbyBwYXJhIGVzdGFibGVjZXJsYSBzdXBvbmllbmRvIGludGVyZXNlcyBkZSA0JS4KYGBge3J9CjEyNTAwICogYW5udWl0eShpID0gMC4wNCwgbiA9IEluZiwgdHlwZSA9ICJhZHZhbmNlIikKYGBgCgoKXHJ1bGV7XHRleHR3aWR0aH17MC40cHR9CioqNTcuKiogTG9zIGV4IGFsdW1ub3MgZGUgdW5hIHVuaXZlcnNpZGFkIGRlY2lkZW4gZG9uYXIgdW4gbGFib3JhdG9yaW8geSBsb3MgZm9uZG9zIHBhcmEgc3UgbWFudGVuaW1pZW50byBmdXR1cm8uIFNpIGVsIGNvc3RvIGluaWNpYWwgZXMgZGUgXCQgMTUwMDAwIHkgZWwgbWFudGVuaW1pZW50byBzZSBlc3RpbWEgZW4gXCQzMDAwIGFudWFsZXMsIGhhbGxhciBlbCB2YWxvciBkZSBsYSBkb25hY2nDs24gc2kgbGEgdGFzYSBlZmVjdGl2YSBkZSBpbnRlcsOpcyBlcyBkZWwgNiAlLgpgYGB7cn0KMTUwMDAwICsgMzAwMCAqIGFubnVpdHkoaSA9IDAuMDYsIG4gPSBJbmYsIHR5cGUgPSAiYXJyZWFycyIpCmBgYAoKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoKKio1OC4qKiBQYXJhIGVzdHVkaWFyIGVuIHVuYSB1bml2ZXJzaWRhZCBkZW50cm8gZGUgMTAgYcOxb3MsIGVzIHJlcXVpc2l0byBmdW5kYW1lbnRhbCAtZW50cmUgb3Ryb3MtIGRlcG9zaXRhciBlbCBkw61hIGRlIGhveSB1bmEgc3VtYSBkZSBkaW5lcm8gZW4gdW5hIGluc3RpdHVjacOzbiBmaW5hbmNpZXJhIHF1ZSBwYWdhIG1lbnN1YWxtZW50ZSBwb3IgYWhvcnJvcyBkZSBlc3RlIHRpcG8gZWwgMTIgJSBjYXBpdGFsaXphYmxlIG1lbnN1YWxtZW50ZSB5IHF1ZSBwZXJtaXRlIGEgbGEgaW5zdGl0dWNpw7NuIGRpc3BvbmVyIGRlIFwkMjAwMCBtZW5zdWFsZXMgYSBwZXJwZXR1aWRhZC4gwr9DdcOhbnRvIGRlYm8gZGVwb3NpdGFyIGVsIGTDrWEgZGUgaG95PwoKYGBge3J9CjIwMDAgKiBhbm51aXR5KCBpID0gMC4xMiAvIDEyLCBuID0gSW5mLCBtID0gMTE5LCB0eXBlID0gImltbWVkaWF0ZSIpICogKDEgKyAwLjEyIC8gMTIpIF4gLTExOQpgYGAKClxydWxle1x0ZXh0d2lkdGh9ezAuNHB0fQoqKjU5LioqIFNlIHByb3BvbmUgZWZlY3R1YXIgdW5hIHNlcmllIGRlIDYwIGRlcMOzc2l0b3MgbWVuc3VhbGVzIGlndWFsZXMgZGUgXCQ3NTAsIHBhcmEgcG9kZXIgYWwgc2lndWllbnRlIG1lcyBkZXNwdcOpcyBkZWwgw7psdGltbyBkZXDDs3NpdG8sIGhhY2VyIHJldGlyb3MgbWVuc3VhbGVzIGlndWFsZXMgYSBwZXJwZXR1aWRhZDsgwr9jdcOhbCBzZXLDoSBlbCB2YWxvciBkZSBjYWRhIHVubyBkZSBsb3MgcmV0aXJvcyBzaSBlbCBiYW5jbyByZWNvbm9jZSB1bmEgdGFzYSBkZSAxMiUgY2FwaXRhbGl6YWJsZSBtZW5zdWFsbWVudGU/CgpgYGB7cn0KVkEgPC0gNzUwICogYWNjdW11bGF0ZWRWYWx1ZShpID0gLjEyIC8gMTIsIG4gPSA2MCwgdHlwZSA9ICJhcnJlYXJzIikKaSA8LSAwLjEyIC8gMTIKKFIgPC0gVkEgKiBpKQoKYGBgCgoKLgoK