Una muestra de 25 días del número de incidentes policiales registrados en un determinado barrio arrojó los siguientes resultados:

7 11 9 10 14 6 8 7 10 10 14 12 13 8 6 13 10 14 5 10 8 6 12 10 6

incidentes <- c(7, 11, 9, 10, 14, 6, 8, 7, 10, 10, 14, 12, 13, 8, 6, 13, 10, 14, 5, 10, 8, 6, 12, 10, 6)

Suponiendo que la muestra sigue una distribución normal

  1. Suponga que la desviación estándar de la población es igual a tres incidentes policiales. Construya un intervalo de confianza para el número promedio de incidentes policiales en este vecindario. Utilice un coeficiente de confianza del 95%. ¿Cuál es el margen de error asociado con este intervalo?
sum(incidentes)
[1] 239

\[ \begin{aligned} \sum_{i=1}^{25}x_i&=239 \end{aligned} \]

length(incidentes)
[1] 25

\[ \begin{aligned} n&=25 \end{aligned} \]

mean(incidentes)
[1] 9.56

\[ \begin{aligned} \overline{x}&=\frac{\sum_{i=1}^{25}x_i}{25}\\ &=9.56 \end{aligned} \]

qnorm(0.025)
[1] -1.959964

\[ z_{\frac{\alpha}{2}}=-1.959964 \]

qnorm(0.975)
[1] 1.959964

\[ z_{1-\frac{\alpha}{2}}=1.959964 \]

mean(incidentes) + c(qnorm(0.025)*3/sqrt(length(incidentes)), qnorm(0.975)*3/sqrt(length(incidentes)))
[1]  8.384022 10.735978

\[ \begin{aligned} \overline{x}{\pm}z_{1-\frac{\alpha}{2}}\frac{\sigma}{\sqrt{n}}&=9.56{\pm}1.959964\frac{3}{\sqrt{25}}\\ &=9.56{\pm}1.1759784\\ \end{aligned} \]

qnorm(0.975)*3/sqrt(length(incidentes))
[1] 1.175978

\[ \begin{aligned} me&=1.959964\frac{3}{\sqrt{25}}\\ &=1.1759784\\ \end{aligned} \]

  1. Aún suponiendo que la desviación estándar de la población es igual a 3 incidentes policiales, ¿cuál debería ser el tamaño de la muestra para que el intervalo de confianza del 95% tenga una longitud de 2 incidentes policiales?

\[ \begin{aligned} L&=\overline{x}{+}z_{1-\frac{\alpha}{2}}\frac{\sigma}{\sqrt{n}}-\left(\overline{x}{-}z_{1-\frac{\alpha}{2}}\frac{\sigma}{\sqrt{n}}\right)\\ &=\overline{x}{+}z_{1-\frac{\alpha}{2}}\frac{\sigma}{\sqrt{n}}-\overline{x}{+}z_{1-\frac{\alpha}{2}}\frac{\sigma}{\sqrt{n}}\\ &=z_{1-\frac{\alpha}{2}}\frac{\sigma}{\sqrt{n}}{+}z_{1-\frac{\alpha}{2}}\frac{\sigma}{\sqrt{n}}\\ &=2{\times}z_{1-\frac{\alpha}{2}}\frac{\sigma}{\sqrt{n}}\\ \end{aligned} \]

\[ \begin{aligned} 2=2{\times}z_{1-\frac{\alpha}{2}}\frac{\sigma}{\sqrt{n}}&{\implies}1=z_{1-\frac{\alpha}{2}}\frac{\sigma}{\sqrt{n}}\\ &{\implies}\sqrt{n}=z_{1-\frac{\alpha}{2}}\sigma\\ &{\implies}{n}{\geq}\left(z_{1-\frac{\alpha}{2}}{\sigma}\right)^2\\ \end{aligned} \]

(qnorm(0.975)*3)**2
[1] 34.57313

\[ \begin{aligned} {n}{\geq}\left(z_{1-\frac{\alpha}{2}}{\sigma}\right)^2&{\implies}{n}{\geq}\left(1.959964\cdot3\right)^2\\ &{\implies}{n}{\geq}\left(5.879892\right)^2\\ &{\implies}{n}{\geq}34.5731294\\ &{\implies}{n}{\approx}35\\ \end{aligned} \]

  1. ¿Cuál sería el intervalo de confianza del 95% si no se conociera la desviación estándar de la población? compárelo con el obtenido en (a) ¿Cu´al de los dos es mejor? justifique.
qt(0.025,length(incidentes)-1)
[1] -2.063899

\[ t_{\left(\frac{\alpha}{2},n-1\right)}=-2.0638986 \]

qt(0.975,length(incidentes)-1)
[1] 2.063899

\[ t_{\left(1-\frac{\alpha}{2},n-1\right)}=2.0638986 \]

var(incidentes)
[1] 7.923333

\[ \begin{aligned} s^2&=\frac{1}{25-1}\sum_{i=1}^{25}{(x_i-\overline{x})}^{2}\\ &=\frac{1}{25-1}\sum_{i=1}^{25}{(x_i-9.56)}^{2}\\ &=7.9233333 \end{aligned} \]

sd(incidentes)
[1] 2.814842

\[ \begin{aligned} s&=\sqrt{\frac{1}{25-1}\sum_{i=1}^{25}{(x_i-\overline{x})}^{2}}\\ &=\sqrt{\frac{1}{25-1}\sum_{i=1}^{25}{(x_i-9.56)}^{2}}\\ &=\sqrt{7.9233333}\\ &=2.8148416 \end{aligned} \]

mean(incidentes) + c(qt(0.025,length(incidentes)-1)*sd(incidentes)/sqrt(length(incidentes)), qt(0.975,length(incidentes)-1)*sd(incidentes)/sqrt(length(incidentes)))
[1]  8.39809 10.72191

\[ \begin{aligned} \overline{x}{\pm}t_{\left(1-\frac{\alpha}{2},n-1\right)}\frac{s}{\sqrt{n}}&=9.56{\pm}2.0638986\frac{2.8148416}{\sqrt{25}}\\ &=9.56{\pm}1.1619095\\ \end{aligned} \]

Suponga que una empresa de análisis de datos desea estimar la proporción de clientes de un servicio en línea que realizan compras mensuales. Realiza una encuesta a una muestra aleatoria de 500 clientes y encuentra que 300 de ellos han realizado al menos una compra en el ́ultimo mes.

p1 <- 300/500
n <- 500
  1. Encuentre un intervalo del 95% de confianza para la proporcióon de clientes que realizan compras mensuales.
p1 + c(qnorm(0.025)*sqrt(p1*(1-p1)/500), qnorm(0.975)*sqrt(p1*(1-p1)/500))
[1] 0.5570593 0.6429407

\[ \begin{aligned} \widehat{p}{\pm}z_{1-\frac{\alpha}{2}}\sqrt{\frac{\widehat{p}\left(1-\widehat{p}\right)}{n}}&=0.6{\pm}1.959964\sqrt{\frac{0.6\left(1-0.6\right)}{20}}\\ &=0.6{\pm}1.959964\sqrt{\frac{0.24}{20}}\\ &=0.6{\pm}1.959964\sqrt{0.012}\\ &=0.6{\pm}1.959964\cdot0.1095445\\ &=0.6{\pm}0.2147033\\ \end{aligned} \]

  1. Este mes, la empresa decide realizar una campaña de marketing dirigida a aumentar el número de compradores mensuales. Realiza una nueva encuesta a una muestra aleatoria de 500 clientes y encuentra que 350 de ellos han realizado al menos una compra en el último mes. Calcule un intervalo de confianza del 95% para la nueva proporci ́on de clientes que realizan compras mensuales.
p2 <- 350/500
n <- 500
p2 + c(qnorm(0.025)*sqrt(p2*(1-p2)/500), qnorm(0.975)*sqrt(p2*(1-p2)/500))
[1] 0.6598327 0.7401673

\[ \begin{aligned} \widehat{p}{\pm}z_{1-\frac{\alpha}{2}}\sqrt{\frac{\widehat{p}\left(1-\widehat{p}\right)}{n}}&=0.7{\pm}1.959964\sqrt{\frac{0.7\left(1-0.7\right)}{20}}\\ &=0.7{\pm}1.959964\sqrt{\frac{0.21}{20}}\\ &=0.7{\pm}1.959964\sqrt{0.0105}\\ &=0.7{\pm}1.959964\cdot0.1024695\\ &=0.7{\pm}0.2008365\\ \end{aligned} \]

  1. Basándose en los intervalos de confianza obtenidos en (a) y (b), ¿hay evidencia suficiente para afirmar que la campaña de marketing ha sido efectiva? Justifique.

Si hay evidencia estadística suficiente en la muestra para afirmar que la campaña de marketing fue efectiva dado que el intervalo de confianza para la proporción antes de la campaña de marketing (0.5570593, 0.6429407) se encuentra a la izquierda del intervalo de confianza para la proporción luego de la campaña de marketing (0.6598327, 0.7401673), es decir, con una confiabilidad del 95% los valores más probables que tomaría la proporción luego de la campaña de marketing son más altos de los que tomaría antes antes de la misma.

Sea \(\overline{x}\) la media de una muestra aleatoria de tamaño \(n\) de una distribución que tiene media \(\mu\) y varianza \(\sigma^2=10\). Encuentre n tal que la probabilidad de que el intervalo \(\left(\overline{x}-\frac{1}{2},\overline{x}+\frac{1}{2}\right)\) contenga \(\mu\) sea aproximadamente 0.95.

(qnorm(0.975)*sqrt(10)/(1/2))**2
[1] 153.6584

\[ \begin{aligned} P\left(\overline{x}-\frac{1}{2}<\mu<\overline{x}+\frac{1}{2}\right)=1-0.05&{\implies}\frac{1}{2}=z_{1-\frac{0.05}{2}}\frac{\sigma}{\sqrt{n}}\\ &{\implies}\frac{1}{2}{=}1.959964\frac{\sqrt{10}}{\sqrt{n}}\\ &{\implies}\sqrt{n}{=}1.959964\frac{3.1622777}{\frac{1}{2}}\\ &{\implies}n{\geq}{\left(1.959964\frac{3.1622777}{\frac{1}{2}}\right)}^{2}\\ &{\implies}n{\geq}{\left(1.959964\cdot2\cdot3.1622777\right)}^{2}\\ &{\implies}n{\geq}{\left(1.959964\cdot6.3245553\right)}^{2}\\ &{\implies}n{\geq}{\left(12.3959006\right)}^{2}\\ &{\implies}n{\geq}153.6583528\\ &{\implies}n{\approx}154\\ \end{aligned} \]

Sea \(X_1,X_2,\ldots,X_n\) una muestra aleatoria de una poblacion \(gamma(1,\beta)\)

  1. Sabiendo que \(2\beta\sum_{i=1}^{n}x_i{\sim}{\chi}^2_{2n}\) encuentre un intervalo de \((1-\alpha)100\)% confianza para \(\beta\)

\[2\beta\sum_{i=1}^{n}x_i{\sim}{\chi}^2_{2n}\]

\[ \begin{aligned} P\left({\chi}^2_{2n,\frac{\alpha}{2}}<2\beta\sum_{i=1}^{n}x_i<{\chi}^2_{2n,1-\frac{\alpha}{2}}\right)=(1-\alpha)100\%&{\implies}P\left(\frac{{\chi}^2_{2n,\frac{\alpha}{2}}}{2}<\beta\sum_{i=1}^{n}x_i<\frac{{\chi}^2_{2n,1-\frac{\alpha}{2}}}{2}\right)=(1-\alpha)100\%\\ &{\implies}P\left(\frac{{\chi}^2_{2n,\frac{\alpha}{2}}}{2\sum_{i=1}^{n}x_i}<\beta<\frac{{\chi}^2_{2n,1-\frac{\alpha}{2}}}{2\sum_{i=1}^{n}x_i}\right)=(1-\alpha)100\%\\ \end{aligned} \]

Luego el intervalo de confianza sería dado por:

\[ \left(\frac{{\chi}^2_{2n,\frac{\alpha}{2}}}{2\sum_{i=1}^{n}x_i},\frac{{\chi}^2_{2n,1-\frac{\alpha}{2}}}{2\sum_{i=1}^{n}x_i}\right) \]

  1. Suponga que se extrajo una muestra de \(Gamma(1,\beta)\) y se obtuvo \(\sum_{i=1}^{20}x_i=3.97\), usando (a) encuentre un intervalo de 95% de confianza para \(\beta\) ¿qué puedes decir al respecto?
qchisq(0.025,2*20)
[1] 24.43304

\[ {\chi}^2_{2n,\frac{\alpha}{2}}=24.4330392 \]

qchisq(0.975,2*20)
[1] 59.34171

\[ {\chi}^2_{2n,1-\frac{\alpha}{2}}=59.3417071 \]

\[ \sum_{i=1}^{n}x_i=3.97 \]

c(qchisq(0.025,2*20)/(2*3.97),qchisq(0.975,2*20)/(2*3.97))
[1] 3.077209 7.473767

\[ \begin{aligned} \left(\frac{{\chi}^2_{2n,\frac{\alpha}{2}}}{2\sum_{i=1}^{n}x_i},\frac{{\chi}^2_{2n,1-\frac{\alpha}{2}}}{2\sum_{i=1}^{n}x_i}\right)&=\left(\frac{24.4330392}{2{\cdot}3.97},\frac{59.3417071}{2{\cdot}3.97}\right)\\ &=\left(\frac{24.4330392}{7.94},\frac{59.3417071}{7.94}\right)\\ &=\left(3.077209,7.4737666\right)\\ \end{aligned} \]

  1. Asuma una apriori \(expoenencial(2)\) para determinar un intervalo de máxima densidad aposteriori del 95% para \(\beta\)

Para encontrar un intervalo de máxima densidad aposteriori del 95% para \(\beta\), primero necesitamos determinar la distribución a posteriori de \(\beta\) dado que tenemos una muestra aleatoria de una población \(Gamma(1, \beta)\) y asumimos una distribución a priori \(Exponencial(2)\).

La distribución a posteriori de \(\beta\) es proporcional al producto de la verosimilitud y la densidad a priori. La verosimilitud viene dada por la función de densidad de la distribución gamma y la densidad a priori es la función de densidad de la distribución exponencial. Por lo tanto, la distribución a posteriori de \(\beta\) es:

\[ \begin{aligned} f(\beta | x_1, x_2, ..., x_n) &\propto f(x_1, x_2, ..., x_n | \beta) \times f(\beta)\\ &\propto \left( \prod_{i=1}^{n} \frac{1}{\beta} e^{-\frac{x_i}{\beta}} \right) \times \frac{1}{2} e^{-\frac{\beta}{2}}\\ &\propto \frac{1}{\beta^n} e^{-\frac{1}{\beta} \sum_{i=1}^{n} x_i} \times \frac{1}{2} e^{-\frac{\beta}{2}}\\ &\propto \frac{1}{\beta^{n+1}} e^{-\left(\frac{1}{\beta} \sum_{i=1}^{n} x_i + \frac{\beta}{2}\right)}\\ &\propto \frac{\beta^{n}}{1} e^{-\left(\frac{1}{\beta} \sum_{i=1}^{n} x_i + \frac{\beta}{2}\right)}\\ &\propto \frac{\beta^{n}}{1} e^{-\left(\frac{\beta}{1} \sum_{i=1}^{n} x_i + 2\beta\right)}\\ &\propto \frac{1}{\beta^{n+1}} e^{-\left(\frac{1}{\beta} \sum_{i=1}^{n} x_i + \frac{\beta}{2}\right)}\\ &\propto \beta^{n+1} e^{-\left(\frac{\beta}{n} \sum_{i=1}^{n} x_i + 2\beta\right)}\\ &\propto \frac{1}{\beta^{n+1}} e^{-\left(\frac{1}{\beta} \sum_{i=1}^{n} x_i + \frac{\beta}{2}\right)}\\ &\propto \beta^{n+1} e^{-\left(\frac{\beta}{n} \sum_{i=1}^{n} x_i + 2\beta\right)}\\ \end{aligned} \]

La distribución a posteriori de \(\beta\) sigue una distribución \(Gamma(n+1, \sum_{i=1}^{n} x_i + 2)\).

Para encontrar el intervalo de máxima densidad aposteriori del 95%, necesitamos encontrar los valores de \(\beta\) que delimitan el 95% de la distribución acumulada de la distribución gamma \(Gamma(n+1, \sum_{i=1}^{n} x_i + 2)\). Esto se puede hacer utilizando funciones de distribución acumulada inversa, disponibles en paquetes de software estadístico como R.

Finalmente, el intervalo de máxima densidad aposteriori del 95% para \(\beta\) estará dado por los valores de \(\beta\) que delimitan el 2.5% más bajo y el 97.5% más alto de la distribución a posteriori de \(\beta\).

Para encontrar el intervalo de máxima densidad aposteriori del 95% para \(\beta\) dado que tenemos una distribución a posteriori \(Gamma(n+1, \sum_{i=1}^{n} x_i + 2)\), podemos utilizar funciones de distribución acumulada inversa. En R, podemos utilizar la función qgamma para calcular los cuantiles de una distribución gamma.

Aquí tienes el código en R para calcular el intervalo de máxima densidad aposteriori del 95% para \(\beta\):

n <- 20  # Tamaño de la muestra
sum_x <- 3.9  # Suma de la muestra

# Calcular los cuantiles
library(TeachingDemos)
cuantiles <- hpd(qgamma, shape=n+1, rate=sum_x + 2, conf=0.95)

# Imprimir el resultado
print(paste("Intervalo de máxima densidad aposteriori del 95% para beta: (", cuantiles[1], ",", cuantiles[2], ")"))
[1] "Intervalo de máxima densidad aposteriori del 95% para beta: ( 2.10836067587545 , 5.10803650969796 )"
LS0tCnRpdGxlOiAiU29sdWNpw7NuIGFsIHNlZ3VuZG8gcGFyY2lhbCBkZSBpbmZlcmVuY2lhIgphdXRob3I6ICJNIFNjLiBNYXJpbyBHcmVnb3JpbyBTYWF2ZWRyYSBSb2Ryw61ndWV6IgpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KClVuYSBtdWVzdHJhIGRlIDI1IGTDrWFzIGRlbCBuw7ptZXJvIGRlIGluY2lkZW50ZXMgcG9saWNpYWxlcyByZWdpc3RyYWRvcyBlbiB1biBkZXRlcm1pbmFkbyBiYXJyaW8gYXJyb2rDsyBsb3Mgc2lndWllbnRlcyByZXN1bHRhZG9zOgoKNyAxMSA5IDEwIDE0IDYgOCA3IDEwIDEwIDE0IDEyIDEzIDggNiAxMyAxMCAxNCA1IDEwIDggNiAxMiAxMCA2CgpgYGB7cn0KaW5jaWRlbnRlcyA8LSBjKDcsIDExLCA5LCAxMCwgMTQsIDYsIDgsIDcsIDEwLCAxMCwgMTQsIDEyLCAxMywgOCwgNiwgMTMsIDEwLCAxNCwgNSwgMTAsIDgsIDYsIDEyLCAxMCwgNikKYGBgCgpTdXBvbmllbmRvIHF1ZSBsYSBtdWVzdHJhIHNpZ3VlIHVuYSBkaXN0cmlidWNpw7NuIG5vcm1hbAoKYS4gU3Vwb25nYSBxdWUgbGEgZGVzdmlhY2nDs24gZXN0w6FuZGFyIGRlIGxhIHBvYmxhY2nDs24gZXMgaWd1YWwgYSB0cmVzIGluY2lkZW50ZXMgcG9saWNpYWxlcy4gQ29uc3RydXlhIHVuIGludGVydmFsbyBkZSBjb25maWFuemEgcGFyYSBlbCBuw7ptZXJvIHByb21lZGlvIGRlIGluY2lkZW50ZXMgcG9saWNpYWxlcyBlbiBlc3RlIHZlY2luZGFyaW8uIFV0aWxpY2UgdW4gY29lZmljaWVudGUgZGUgY29uZmlhbnphIGRlbCA5NVwlLiDCv0N1w6FsIGVzIGVsIG1hcmdlbiBkZSBlcnJvciBhc29jaWFkbyBjb24gZXN0ZSBpbnRlcnZhbG8/CgpgYGB7cn0Kc3VtKGluY2lkZW50ZXMpCmBgYAoKJCQKXGJlZ2lue2FsaWduZWR9ClxzdW1fe2k9MX1eezI1fXhfaSY9YHIgc3VtKGluY2lkZW50ZXMpYApcZW5ke2FsaWduZWR9CiQkCgpgYGB7cn0KbGVuZ3RoKGluY2lkZW50ZXMpCmBgYAoKJCQKXGJlZ2lue2FsaWduZWR9Cm4mPWByIGxlbmd0aChpbmNpZGVudGVzKWAKXGVuZHthbGlnbmVkfQokJAoKYGBge3J9Cm1lYW4oaW5jaWRlbnRlcykKYGBgCgokJApcYmVnaW57YWxpZ25lZH0KXG92ZXJsaW5le3h9Jj1cZnJhY3tcc3VtX3tpPTF9XnsyNX14X2l9ezI1fVxcCiY9YHIgbWVhbihpbmNpZGVudGVzKWAKXGVuZHthbGlnbmVkfQokJAoKYGBge3J9CnFub3JtKDAuMDI1KQpgYGAKCiQkCnpfe1xmcmFje1xhbHBoYX17Mn19PWByIHFub3JtKDAuMDI1KWAKJCQKCmBgYHtyfQpxbm9ybSgwLjk3NSkKYGBgCgokJAp6X3sxLVxmcmFje1xhbHBoYX17Mn19PWByIHFub3JtKDAuOTc1KWAKJCQKCmBgYHtyfQptZWFuKGluY2lkZW50ZXMpICsgYyhxbm9ybSgwLjAyNSkqMy9zcXJ0KGxlbmd0aChpbmNpZGVudGVzKSksIHFub3JtKDAuOTc1KSozL3NxcnQobGVuZ3RoKGluY2lkZW50ZXMpKSkKYGBgCgokJApcYmVnaW57YWxpZ25lZH0KXG92ZXJsaW5le3h9e1xwbX16X3sxLVxmcmFje1xhbHBoYX17Mn19XGZyYWN7XHNpZ21hfXtcc3FydHtufX0mPWByIG1lYW4oaW5jaWRlbnRlcylge1xwbX1gciBxbm9ybSgxLTAuMDUvMilgXGZyYWN7M317XHNxcnR7YHIgbGVuZ3RoKGluY2lkZW50ZXMpYH19XFwKJj1gciBtZWFuKGluY2lkZW50ZXMpYHtccG19YHIgcW5vcm0oMS0wLjA1LzIpKjMvc3FydChsZW5ndGgoaW5jaWRlbnRlcykpYFxcClxlbmR7YWxpZ25lZH0KJCQKCmBgYHtyfQpxbm9ybSgwLjk3NSkqMy9zcXJ0KGxlbmd0aChpbmNpZGVudGVzKSkKYGBgCgokJApcYmVnaW57YWxpZ25lZH0KbWUmPWByIHFub3JtKDEtMC4wNS8yKWBcZnJhY3szfXtcc3FydHtgciBsZW5ndGgoaW5jaWRlbnRlcylgfX1cXAomPWByIHFub3JtKDEtMC4wNS8yKSozL3NxcnQobGVuZ3RoKGluY2lkZW50ZXMpKWBcXApcZW5ke2FsaWduZWR9CiQkCgpiLiBBw7puIHN1cG9uaWVuZG8gcXVlIGxhIGRlc3ZpYWNpw7NuIGVzdMOhbmRhciBkZSBsYSBwb2JsYWNpw7NuIGVzIGlndWFsIGEgMyBpbmNpZGVudGVzIHBvbGljaWFsZXMsIMK/Y3XDoWwgZGViZXLDrWEgc2VyIGVsIHRhbWHDsW8gZGUgbGEgbXVlc3RyYSBwYXJhIHF1ZSBlbCBpbnRlcnZhbG8gZGUgY29uZmlhbnphIGRlbCA5NVwlIHRlbmdhIHVuYSBsb25naXR1ZCBkZSAyIGluY2lkZW50ZXMgcG9saWNpYWxlcz8KCiQkClxiZWdpbnthbGlnbmVkfQpMJj1cb3ZlcmxpbmV7eH17K316X3sxLVxmcmFje1xhbHBoYX17Mn19XGZyYWN7XHNpZ21hfXtcc3FydHtufX0tXGxlZnQoXG92ZXJsaW5le3h9ey19el97MS1cZnJhY3tcYWxwaGF9ezJ9fVxmcmFje1xzaWdtYX17XHNxcnR7bn19XHJpZ2h0KVxcCiY9XG92ZXJsaW5le3h9eyt9el97MS1cZnJhY3tcYWxwaGF9ezJ9fVxmcmFje1xzaWdtYX17XHNxcnR7bn19LVxvdmVybGluZXt4fXsrfXpfezEtXGZyYWN7XGFscGhhfXsyfX1cZnJhY3tcc2lnbWF9e1xzcXJ0e259fVxcCiY9el97MS1cZnJhY3tcYWxwaGF9ezJ9fVxmcmFje1xzaWdtYX17XHNxcnR7bn19eyt9el97MS1cZnJhY3tcYWxwaGF9ezJ9fVxmcmFje1xzaWdtYX17XHNxcnR7bn19XFwKJj0ye1x0aW1lc316X3sxLVxmcmFje1xhbHBoYX17Mn19XGZyYWN7XHNpZ21hfXtcc3FydHtufX1cXApcZW5ke2FsaWduZWR9CiQkCgokJApcYmVnaW57YWxpZ25lZH0KMj0ye1x0aW1lc316X3sxLVxmcmFje1xhbHBoYX17Mn19XGZyYWN7XHNpZ21hfXtcc3FydHtufX0me1xpbXBsaWVzfTE9el97MS1cZnJhY3tcYWxwaGF9ezJ9fVxmcmFje1xzaWdtYX17XHNxcnR7bn19XFwKJntcaW1wbGllc31cc3FydHtufT16X3sxLVxmcmFje1xhbHBoYX17Mn19XHNpZ21hXFwKJntcaW1wbGllc317bn17XGdlcX1cbGVmdCh6X3sxLVxmcmFje1xhbHBoYX17Mn19e1xzaWdtYX1ccmlnaHQpXjJcXApcZW5ke2FsaWduZWR9CiQkCgpgYGB7cn0KKHFub3JtKDAuOTc1KSozKSoqMgpgYGAKCiQkClxiZWdpbnthbGlnbmVkfQp7bn17XGdlcX1cbGVmdCh6X3sxLVxmcmFje1xhbHBoYX17Mn19e1xzaWdtYX1ccmlnaHQpXjIme1xpbXBsaWVzfXtufXtcZ2VxfVxsZWZ0KGByIHFub3JtKDAuOTc1KWBcY2RvdGByIDNgXHJpZ2h0KV4yXFwKJntcaW1wbGllc317bn17XGdlcX1cbGVmdChgciBxbm9ybSgwLjk3NSkqM2BccmlnaHQpXjJcXAome1xpbXBsaWVzfXtufXtcZ2VxfWByIChxbm9ybSgwLjk3NSkqMykqKjJgXFwKJntcaW1wbGllc317bn17XGFwcHJveH1gciBjZWlsaW5nKChxbm9ybSgwLjk3NSkqMykqKjIpYFxcClxlbmR7YWxpZ25lZH0KJCQKCmMuIMK/Q3XDoWwgc2Vyw61hIGVsIGludGVydmFsbyBkZSBjb25maWFuemEgZGVsIDk1XCUgc2kgbm8gc2UgY29ub2NpZXJhIGxhIGRlc3ZpYWNpw7NuIGVzdMOhbmRhciBkZSBsYSBwb2JsYWNpw7NuPyBjb21ww6FyZWxvIGNvbiBlbCBvYnRlbmlkbyBlbiAoYSkgwr9DdcK0YWwgZGUgbG9zIGRvcyBlcyBtZWpvcj8ganVzdGlmaXF1ZS4KCmBgYHtyfQpxdCgwLjAyNSxsZW5ndGgoaW5jaWRlbnRlcyktMSkKYGBgCgokJAp0X3tcbGVmdChcZnJhY3tcYWxwaGF9ezJ9LG4tMVxyaWdodCl9PWByIHF0KDAuMDI1LGxlbmd0aChpbmNpZGVudGVzKS0xKWAKJCQKCmBgYHtyfQpxdCgwLjk3NSxsZW5ndGgoaW5jaWRlbnRlcyktMSkKYGBgCgokJAp0X3tcbGVmdCgxLVxmcmFje1xhbHBoYX17Mn0sbi0xXHJpZ2h0KX09YHIgcXQoMC45NzUsbGVuZ3RoKGluY2lkZW50ZXMpLTEpYAokJAoKYGBge3J9CnZhcihpbmNpZGVudGVzKQpgYGAKCiQkClxiZWdpbnthbGlnbmVkfQpzXjImPVxmcmFjezF9ezI1LTF9XHN1bV97aT0xfV57MjV9eyh4X2ktXG92ZXJsaW5le3h9KX1eezJ9XFwKJj1cZnJhY3sxfXsyNS0xfVxzdW1fe2k9MX1eezI1fXsoeF9pLWByIG1lYW4oaW5jaWRlbnRlcylgKX1eezJ9XFwKJj1gciB2YXIoaW5jaWRlbnRlcylgClxlbmR7YWxpZ25lZH0KJCQKCmBgYHtyfQpzZChpbmNpZGVudGVzKQpgYGAKCiQkClxiZWdpbnthbGlnbmVkfQpzJj1cc3FydHtcZnJhY3sxfXsyNS0xfVxzdW1fe2k9MX1eezI1fXsoeF9pLVxvdmVybGluZXt4fSl9XnsyfX1cXAomPVxzcXJ0e1xmcmFjezF9ezI1LTF9XHN1bV97aT0xfV57MjV9eyh4X2ktYHIgbWVhbihpbmNpZGVudGVzKWApfV57Mn19XFwKJj1cc3FydHtgciB2YXIoaW5jaWRlbnRlcylgfVxcCiY9YHIgc2QoaW5jaWRlbnRlcylgClxlbmR7YWxpZ25lZH0KJCQKCmBgYHtyfQptZWFuKGluY2lkZW50ZXMpICsgYyhxdCgwLjAyNSxsZW5ndGgoaW5jaWRlbnRlcyktMSkqc2QoaW5jaWRlbnRlcykvc3FydChsZW5ndGgoaW5jaWRlbnRlcykpLCBxdCgwLjk3NSxsZW5ndGgoaW5jaWRlbnRlcyktMSkqc2QoaW5jaWRlbnRlcykvc3FydChsZW5ndGgoaW5jaWRlbnRlcykpKQpgYGAKCiQkClxiZWdpbnthbGlnbmVkfQpcb3ZlcmxpbmV7eH17XHBtfXRfe1xsZWZ0KDEtXGZyYWN7XGFscGhhfXsyfSxuLTFccmlnaHQpfVxmcmFje3N9e1xzcXJ0e259fSY9YHIgbWVhbihpbmNpZGVudGVzKWB7XHBtfWByIHF0KDAuOTc1LGxlbmd0aChpbmNpZGVudGVzKS0xKWBcZnJhY3tgciBzZChpbmNpZGVudGVzKWB9e1xzcXJ0e2ByIGxlbmd0aChpbmNpZGVudGVzKWB9fVxcCiY9YHIgbWVhbihpbmNpZGVudGVzKWB7XHBtfWByIHF0KDAuOTc1LGxlbmd0aChpbmNpZGVudGVzKS0xKSpzZChpbmNpZGVudGVzKS9zcXJ0KGxlbmd0aChpbmNpZGVudGVzKSlgXFwKXGVuZHthbGlnbmVkfQokJAoKU3Vwb25nYSBxdWUgdW5hIGVtcHJlc2EgZGUgYW7DoWxpc2lzIGRlIGRhdG9zIGRlc2VhIGVzdGltYXIgbGEgcHJvcG9yY2nDs24gZGUgY2xpZW50ZXMgZGUgdW4gc2VydmljaW8gZW4gbMOtbmVhIHF1ZSByZWFsaXphbiBjb21wcmFzIG1lbnN1YWxlcy4gUmVhbGl6YSB1bmEgZW5jdWVzdGEgYSB1bmEgbXVlc3RyYSBhbGVhdG9yaWEgZGUgNTAwIGNsaWVudGVzIHkgZW5jdWVudHJhIHF1ZSAzMDAgZGUgZWxsb3MgaGFuIHJlYWxpemFkbyBhbCBtZW5vcyB1bmEgY29tcHJhIGVuIGVsICDMgXVsdGltbyBtZXMuCgoKYGBge3J9CnAxIDwtIDMwMC81MDAKbiA8LSA1MDAKYGBgCgphLiBFbmN1ZW50cmUgdW4gaW50ZXJ2YWxvIGRlbCA5NVwlIGRlIGNvbmZpYW56YSBwYXJhIGxhIHByb3BvcmNpw7NvbiBkZSBjbGllbnRlcyBxdWUgcmVhbGl6YW4gY29tcHJhcyBtZW5zdWFsZXMuCgpgYGB7cn0KcDEgKyBjKHFub3JtKDAuMDI1KSpzcXJ0KHAxKigxLXAxKS81MDApLCBxbm9ybSgwLjk3NSkqc3FydChwMSooMS1wMSkvNTAwKSkKYGBgCgokJApcYmVnaW57YWxpZ25lZH0KXHdpZGVoYXR7cH17XHBtfXpfezEtXGZyYWN7XGFscGhhfXsyfX1cc3FydHtcZnJhY3tcd2lkZWhhdHtwfVxsZWZ0KDEtXHdpZGVoYXR7cH1ccmlnaHQpfXtufX0mPWByIHAxYHtccG19YHIgcW5vcm0oMC45NzUpYFxzcXJ0e1xmcmFje2ByIHAxYFxsZWZ0KDEtYHIgcDFgXHJpZ2h0KX17YHIgbmB9fVxcCiY9YHIgcDFge1xwbX1gciBxbm9ybSgwLjk3NSlgXHNxcnR7XGZyYWN7YHIgcDEqKDEtcDEpYH17YHIgbmB9fVxcCiY9YHIgcDFge1xwbX1gciBxbm9ybSgwLjk3NSlgXHNxcnR7YHIgcDEqKDEtcDEpL25gfVxcCiY9YHIgcDFge1xwbX1gciBxbm9ybSgwLjk3NSlgXGNkb3RgciBzcXJ0KHAxKigxLXAxKS9uKWBcXAomPWByIHAxYHtccG19YHIgcW5vcm0oMC45NzUpKnNxcnQocDEqKDEtcDEpL24pYFxcClxlbmR7YWxpZ25lZH0KJCQKCmIuIEVzdGUgbWVzLCBsYSBlbXByZXNhIGRlY2lkZSByZWFsaXphciB1bmEgY2FtcGHDsWEgZGUgbWFya2V0aW5nIGRpcmlnaWRhIGEgYXVtZW50YXIgZWwgbsO6bWVybyBkZSBjb21wcmFkb3JlcyBtZW5zdWFsZXMuIFJlYWxpemEgdW5hIG51ZXZhIGVuY3Vlc3RhIGEgdW5hIG11ZXN0cmEgYWxlYXRvcmlhIGRlIDUwMCBjbGllbnRlcyB5IGVuY3VlbnRyYSBxdWUgMzUwIGRlIGVsbG9zIGhhbiByZWFsaXphZG8gYWwgbWVub3MgdW5hIGNvbXByYSBlbiBlbCAgw7psdGltbyBtZXMuIENhbGN1bGUgdW4gaW50ZXJ2YWxvIGRlIGNvbmZpYW56YSBkZWwgOTVcJSBwYXJhIGxhIG51ZXZhIHByb3BvcmNpIMyBb24gZGUgY2xpZW50ZXMgcXVlIHJlYWxpemFuIGNvbXByYXMgbWVuc3VhbGVzLgoKYGBge3J9CnAyIDwtIDM1MC81MDAKbiA8LSA1MDAKYGBgCgpgYGB7cn0KcDIgKyBjKHFub3JtKDAuMDI1KSpzcXJ0KHAyKigxLXAyKS81MDApLCBxbm9ybSgwLjk3NSkqc3FydChwMiooMS1wMikvNTAwKSkKYGBgCgokJApcYmVnaW57YWxpZ25lZH0KXHdpZGVoYXR7cH17XHBtfXpfezEtXGZyYWN7XGFscGhhfXsyfX1cc3FydHtcZnJhY3tcd2lkZWhhdHtwfVxsZWZ0KDEtXHdpZGVoYXR7cH1ccmlnaHQpfXtufX0mPWByIHAyYHtccG19YHIgcW5vcm0oMC45NzUpYFxzcXJ0e1xmcmFje2ByIHAyYFxsZWZ0KDEtYHIgcDJgXHJpZ2h0KX17YHIgbmB9fVxcCiY9YHIgcDJge1xwbX1gciBxbm9ybSgwLjk3NSlgXHNxcnR7XGZyYWN7YHIgcDIqKDEtcDIpYH17YHIgbmB9fVxcCiY9YHIgcDJge1xwbX1gciBxbm9ybSgwLjk3NSlgXHNxcnR7YHIgcDIqKDEtcDIpL25gfVxcCiY9YHIgcDJge1xwbX1gciBxbm9ybSgwLjk3NSlgXGNkb3RgciBzcXJ0KHAyKigxLXAyKS9uKWBcXAomPWByIHBge1xwbX1gciBxbm9ybSgwLjk3NSkqc3FydChwKigxLXApL24pYFxcClxlbmR7YWxpZ25lZH0KJCQKCmMuIEJhc8OhbmRvc2UgZW4gbG9zIGludGVydmFsb3MgZGUgY29uZmlhbnphIG9idGVuaWRvcyBlbiAoYSkgeSAoYiksIMK/aGF5IGV2aWRlbmNpYSBzdWZpY2llbnRlIHBhcmEgYWZpcm1hciBxdWUgbGEgY2FtcGHDsWEgZGUgbWFya2V0aW5nIGhhIHNpZG8gZWZlY3RpdmE/IEp1c3RpZmlxdWUuCgpTaSBoYXkgZXZpZGVuY2lhIGVzdGFkw61zdGljYSBzdWZpY2llbnRlIGVuIGxhIG11ZXN0cmEgcGFyYSBhZmlybWFyIHF1ZSBsYSBjYW1wYcOxYSBkZSBtYXJrZXRpbmcgZnVlIGVmZWN0aXZhIGRhZG8gcXVlIGVsIGludGVydmFsbyBkZSBjb25maWFuemEgcGFyYSBsYSBwcm9wb3JjacOzbiBhbnRlcyBkZSBsYSBjYW1wYcOxYSBkZSBtYXJrZXRpbmcgKGByIDMwMC81MDAgKyBjKHFub3JtKDAuMDI1KSpzcXJ0KDMwMC81MDAqKDEtMzAwLzUwMCkvNTAwKSwgcW5vcm0oMC45NzUpKnNxcnQoMzAwLzUwMCooMS0zMDAvNTAwKS81MDApKWApIHNlIGVuY3VlbnRyYSBhIGxhIGl6cXVpZXJkYSBkZWwgaW50ZXJ2YWxvIGRlIGNvbmZpYW56YSBwYXJhIGxhIHByb3BvcmNpw7NuIGx1ZWdvIGRlIGxhIGNhbXBhw7FhIGRlIG1hcmtldGluZyAoYHIgMzUwLzUwMCArIGMocW5vcm0oMC4wMjUpKnNxcnQoMzUwLzUwMCooMS0zNTAvNTAwKS81MDApLCBxbm9ybSgwLjk3NSkqc3FydCgzNTAvNTAwKigxLTM1MC81MDApLzUwMCkpYCksIGVzIGRlY2lyLCBjb24gdW5hIGNvbmZpYWJpbGlkYWQgZGVsIDk1XCUgbG9zIHZhbG9yZXMgbcOhcyBwcm9iYWJsZXMgcXVlIHRvbWFyw61hIGxhIHByb3BvcmNpw7NuIGx1ZWdvIGRlIGxhIGNhbXBhw7FhIGRlIG1hcmtldGluZyBzb24gbcOhcyBhbHRvcyBkZSBsb3MgcXVlIHRvbWFyw61hIGFudGVzIGFudGVzIGRlIGxhIG1pc21hLgoKU2VhICRcb3ZlcmxpbmV7eH0kIGxhIG1lZGlhIGRlIHVuYSBtdWVzdHJhIGFsZWF0b3JpYSBkZSB0YW1hw7FvICRuJCBkZSB1bmEgZGlzdHJpYnVjacOzbiBxdWUgdGllbmUgbWVkaWEgJFxtdSQgeSB2YXJpYW56YSAkXHNpZ21hXjI9MTAkLiBFbmN1ZW50cmUgbiB0YWwgcXVlIGxhIHByb2JhYmlsaWRhZCBkZSBxdWUgZWwgaW50ZXJ2YWxvICRcbGVmdChcb3ZlcmxpbmV7eH0tXGZyYWN7MX17Mn0sXG92ZXJsaW5le3h9K1xmcmFjezF9ezJ9XHJpZ2h0KSQgY29udGVuZ2EgJFxtdSQgc2VhIGFwcm94aW1hZGFtZW50ZSAwLjk1LgoKYGBge3J9Cihxbm9ybSgwLjk3NSkqc3FydCgxMCkvKDEvMikpKioyCmBgYAoKJCQKXGJlZ2lue2FsaWduZWR9ClBcbGVmdChcb3ZlcmxpbmV7eH0tXGZyYWN7MX17Mn08XG11PFxvdmVybGluZXt4fStcZnJhY3sxfXsyfVxyaWdodCk9MS0wLjA1JntcaW1wbGllc31cZnJhY3sxfXsyfT16X3sxLVxmcmFjezAuMDV9ezJ9fVxmcmFje1xzaWdtYX17XHNxcnR7bn19XFwKJntcaW1wbGllc31cZnJhY3sxfXsyfXs9fWByIHFub3JtKDAuOTc1KWBcZnJhY3tcc3FydHtgciAxMGB9fXtcc3FydHtufX1cXAome1xpbXBsaWVzfVxzcXJ0e259ez19YHIgcW5vcm0oMC45NzUpYFxmcmFje2ByIHNxcnQoMTApYH17XGZyYWN7YHIgMWB9e2ByIDJgfX1cXAome1xpbXBsaWVzfW57XGdlcX17XGxlZnQoYHIgcW5vcm0oMC45NzUpYFxmcmFje2ByIHNxcnQoMTApYH17XGZyYWN7YHIgMWB9e2ByIDJgfX1ccmlnaHQpfV57Mn1cXAome1xpbXBsaWVzfW57XGdlcX17XGxlZnQoYHIgcW5vcm0oMC45NzUpYFxjZG90YHIgMmBcY2RvdGByIHNxcnQoMTApYFxyaWdodCl9XnsyfVxcCiZ7XGltcGxpZXN9bntcZ2VxfXtcbGVmdChgciBxbm9ybSgwLjk3NSlgXGNkb3RgciAyKnNxcnQoMTApYFxyaWdodCl9XnsyfVxcCiZ7XGltcGxpZXN9bntcZ2VxfXtcbGVmdChgciBxbm9ybSgwLjk3NSkqMipzcXJ0KDEwKWBccmlnaHQpfV57Mn1cXAome1xpbXBsaWVzfW57XGdlcX1gciAocW5vcm0oMC45NzUpKjIqc3FydCgxMCkpKioyYFxcCiZ7XGltcGxpZXN9bntcYXBwcm94fWByIGNlaWxpbmcoKHFub3JtKDAuOTc1KSoyKnNxcnQoMTApKSoqMilgXFwKXGVuZHthbGlnbmVkfQokJAoKU2VhICRYXzEsWF8yLFxsZG90cyxYX24kIHVuYSBtdWVzdHJhIGFsZWF0b3JpYSBkZSB1bmEgcG9ibGFjaW9uICRnYW1tYSgxLFxiZXRhKSQKCmEuIFNhYmllbmRvIHF1ZSAkMlxiZXRhXHN1bV97aT0xfV57bn14X2l7XHNpbX17XGNoaX1eMl97Mm59JCBlbmN1ZW50cmUgdW4gaW50ZXJ2YWxvIGRlICQoMS1cYWxwaGEpMTAwJFwlIGNvbmZpYW56YSBwYXJhICRcYmV0YSQKCiQkMlxiZXRhXHN1bV97aT0xfV57bn14X2l7XHNpbX17XGNoaX1eMl97Mm59JCQKCiQkClxiZWdpbnthbGlnbmVkfQpQXGxlZnQoe1xjaGl9XjJfezJuLFxmcmFje1xhbHBoYX17Mn19PDJcYmV0YVxzdW1fe2k9MX1ee259eF9pPHtcY2hpfV4yX3sybiwxLVxmcmFje1xhbHBoYX17Mn19XHJpZ2h0KT0oMS1cYWxwaGEpMTAwXCUme1xpbXBsaWVzfVBcbGVmdChcZnJhY3t7XGNoaX1eMl97Mm4sXGZyYWN7XGFscGhhfXsyfX19ezJ9PFxiZXRhXHN1bV97aT0xfV57bn14X2k8XGZyYWN7e1xjaGl9XjJfezJuLDEtXGZyYWN7XGFscGhhfXsyfX19ezJ9XHJpZ2h0KT0oMS1cYWxwaGEpMTAwXCVcXAome1xpbXBsaWVzfVBcbGVmdChcZnJhY3t7XGNoaX1eMl97Mm4sXGZyYWN7XGFscGhhfXsyfX19ezJcc3VtX3tpPTF9XntufXhfaX08XGJldGE8XGZyYWN7e1xjaGl9XjJfezJuLDEtXGZyYWN7XGFscGhhfXsyfX19ezJcc3VtX3tpPTF9XntufXhfaX1ccmlnaHQpPSgxLVxhbHBoYSkxMDBcJVxcClxlbmR7YWxpZ25lZH0KJCQKCkx1ZWdvIGVsIGludGVydmFsbyBkZSBjb25maWFuemEgc2Vyw61hIGRhZG8gcG9yOgoKJCQKXGxlZnQoXGZyYWN7e1xjaGl9XjJfezJuLFxmcmFje1xhbHBoYX17Mn19fXsyXHN1bV97aT0xfV57bn14X2l9LFxmcmFje3tcY2hpfV4yX3sybiwxLVxmcmFje1xhbHBoYX17Mn19fXsyXHN1bV97aT0xfV57bn14X2l9XHJpZ2h0KQokJAoKYi4gU3Vwb25nYSBxdWUgc2UgZXh0cmFqbyB1bmEgbXVlc3RyYSBkZSAkR2FtbWEoMSxcYmV0YSkkIHkgc2Ugb2J0dXZvICRcc3VtX3tpPTF9XnsyMH14X2k9My45NyQsIHVzYW5kbyAoYSkgZW5jdWVudHJlIHVuIGludGVydmFsbyBkZSA5NVwlIGRlIGNvbmZpYW56YSBwYXJhICRcYmV0YSQgwr9xdcOpIHB1ZWRlcyBkZWNpciBhbCByZXNwZWN0bz8KCmBgYHtyfQpxY2hpc3EoMC4wMjUsMioyMCkKYGBgCgokJAp7XGNoaX1eMl97Mm4sXGZyYWN7XGFscGhhfXsyfX09YHIgcWNoaXNxKDAuMDI1LDIqMjApYAokJAoKYGBge3J9CnFjaGlzcSgwLjk3NSwyKjIwKQpgYGAKCiQkCntcY2hpfV4yX3sybiwxLVxmcmFje1xhbHBoYX17Mn19PWByIHFjaGlzcSgwLjk3NSwyKjIwKWAKJCQKCiQkClxzdW1fe2k9MX1ee259eF9pPWByIDMuOTdgCiQkCgpgYGB7cn0KYyhxY2hpc3EoMC4wMjUsMioyMCkvKDIqMy45NykscWNoaXNxKDAuOTc1LDIqMjApLygyKjMuOTcpKQpgYGAKCiQkClxiZWdpbnthbGlnbmVkfQpcbGVmdChcZnJhY3t7XGNoaX1eMl97Mm4sXGZyYWN7XGFscGhhfXsyfX19ezJcc3VtX3tpPTF9XntufXhfaX0sXGZyYWN7e1xjaGl9XjJfezJuLDEtXGZyYWN7XGFscGhhfXsyfX19ezJcc3VtX3tpPTF9XntufXhfaX1ccmlnaHQpJj1cbGVmdChcZnJhY3tgciBxY2hpc3EoMC4wMjUsMioyMClgfXsye1xjZG90fWByIDMuOTdgfSxcZnJhY3tgciBxY2hpc3EoMC45NzUsMioyMClgfXsye1xjZG90fWByIDMuOTdgfVxyaWdodClcXAomPVxsZWZ0KFxmcmFje2ByIHFjaGlzcSgwLjAyNSwyKjIwKWB9e2ByIDIqMy45N2B9LFxmcmFje2ByIHFjaGlzcSgwLjk3NSwyKjIwKWB9e2ByIDIqMy45N2B9XHJpZ2h0KVxcCiY9XGxlZnQoYHIgcWNoaXNxKDAuMDI1LDIqMjApLygyKjMuOTcpYCxgciBxY2hpc3EoMC45NzUsMioyMCkvKDIqMy45NylgXHJpZ2h0KVxcClxlbmR7YWxpZ25lZH0KJCQKCmMuIEFzdW1hIHVuYSBhcHJpb3JpICRleHBvZW5lbmNpYWwoMikkIHBhcmEgZGV0ZXJtaW5hciB1biBpbnRlcnZhbG8gZGUgbcOheGltYSBkZW5zaWRhZCBhcG9zdGVyaW9yaSBkZWwgOTUlIHBhcmEgJFxiZXRhJAoKUGFyYSBlbmNvbnRyYXIgdW4gaW50ZXJ2YWxvIGRlIG3DoXhpbWEgZGVuc2lkYWQgYXBvc3RlcmlvcmkgZGVsIDk1JSBwYXJhICRcYmV0YSQsIHByaW1lcm8gbmVjZXNpdGFtb3MgZGV0ZXJtaW5hciBsYSBkaXN0cmlidWNpw7NuIGEgcG9zdGVyaW9yaSBkZSAkXGJldGEkIGRhZG8gcXVlIHRlbmVtb3MgdW5hIG11ZXN0cmEgYWxlYXRvcmlhIGRlIHVuYSBwb2JsYWNpw7NuICRHYW1tYSgxLCBcYmV0YSkkIHkgYXN1bWltb3MgdW5hIGRpc3RyaWJ1Y2nDs24gYSBwcmlvcmkgJEV4cG9uZW5jaWFsKDIpJC4KCkxhIGRpc3RyaWJ1Y2nDs24gYSBwb3N0ZXJpb3JpIGRlICRcYmV0YSQgZXMgcHJvcG9yY2lvbmFsIGFsIHByb2R1Y3RvIGRlIGxhIHZlcm9zaW1pbGl0dWQgeSBsYSBkZW5zaWRhZCBhIHByaW9yaS4gTGEgdmVyb3NpbWlsaXR1ZCB2aWVuZSBkYWRhIHBvciBsYSBmdW5jacOzbiBkZSBkZW5zaWRhZCBkZSBsYSBkaXN0cmlidWNpw7NuIGdhbW1hIHkgbGEgZGVuc2lkYWQgYSBwcmlvcmkgZXMgbGEgZnVuY2nDs24gZGUgZGVuc2lkYWQgZGUgbGEgZGlzdHJpYnVjacOzbiBleHBvbmVuY2lhbC4gUG9yIGxvIHRhbnRvLCBsYSBkaXN0cmlidWNpw7NuIGEgcG9zdGVyaW9yaSBkZSAkXGJldGEkIGVzOgoKJCQKXGJlZ2lue2FsaWduZWR9CmYoXGJldGEgfCB4XzEsIHhfMiwgLi4uLCB4X24pICZccHJvcHRvIGYoeF8xLCB4XzIsIC4uLiwgeF9uIHwgXGJldGEpIFx0aW1lcyBmKFxiZXRhKVxcCiZccHJvcHRvIFxsZWZ0KCBccHJvZF97aT0xfV57bn0gXGZyYWN7MX17XGJldGF9IGVeey1cZnJhY3t4X2l9e1xiZXRhfX0gXHJpZ2h0KSBcdGltZXMgXGZyYWN7MX17Mn0gZV57LVxmcmFje1xiZXRhfXsyfX1cXAomXHByb3B0byBcZnJhY3sxfXtcYmV0YV5ufSBlXnstXGZyYWN7MX17XGJldGF9IFxzdW1fe2k9MX1ee259IHhfaX0gXHRpbWVzIFxmcmFjezF9ezJ9IGVeey1cZnJhY3tcYmV0YX17Mn19XFwKJlxwcm9wdG8gXGZyYWN7MX17XGJldGFee24rMX19IGVeey1cbGVmdChcZnJhY3sxfXtcYmV0YX0gXHN1bV97aT0xfV57bn0geF9pICsgXGZyYWN7XGJldGF9ezJ9XHJpZ2h0KX1cXAomXHByb3B0byBcZnJhY3tcYmV0YV57bn19ezF9IGVeey1cbGVmdChcZnJhY3sxfXtcYmV0YX0gXHN1bV97aT0xfV57bn0geF9pICsgXGZyYWN7XGJldGF9ezJ9XHJpZ2h0KX1cXAomXHByb3B0byBcZnJhY3tcYmV0YV57bn19ezF9IGVeey1cbGVmdChcZnJhY3tcYmV0YX17MX0gXHN1bV97aT0xfV57bn0geF9pICsgMlxiZXRhXHJpZ2h0KX1cXAomXHByb3B0byBcZnJhY3sxfXtcYmV0YV57bisxfX0gZV57LVxsZWZ0KFxmcmFjezF9e1xiZXRhfSBcc3VtX3tpPTF9XntufSB4X2kgKyBcZnJhY3tcYmV0YX17Mn1ccmlnaHQpfVxcCiZccHJvcHRvIFxiZXRhXntuKzF9IGVeey1cbGVmdChcZnJhY3tcYmV0YX17bn0gXHN1bV97aT0xfV57bn0geF9pICsgMlxiZXRhXHJpZ2h0KX1cXAomXHByb3B0byBcZnJhY3sxfXtcYmV0YV57bisxfX0gZV57LVxsZWZ0KFxmcmFjezF9e1xiZXRhfSBcc3VtX3tpPTF9XntufSB4X2kgKyBcZnJhY3tcYmV0YX17Mn1ccmlnaHQpfVxcCiZccHJvcHRvIFxiZXRhXntuKzF9IGVeey1cbGVmdChcZnJhY3tcYmV0YX17bn0gXHN1bV97aT0xfV57bn0geF9pICsgMlxiZXRhXHJpZ2h0KX1cXApcZW5ke2FsaWduZWR9CiQkCgpMYSBkaXN0cmlidWNpw7NuIGEgcG9zdGVyaW9yaSBkZSAkXGJldGEkIHNpZ3VlIHVuYSBkaXN0cmlidWNpw7NuICRHYW1tYShuKzEsIFxzdW1fe2k9MX1ee259IHhfaSArIDIpJC4KClBhcmEgZW5jb250cmFyIGVsIGludGVydmFsbyBkZSBtw6F4aW1hIGRlbnNpZGFkIGFwb3N0ZXJpb3JpIGRlbCA5NSUsIG5lY2VzaXRhbW9zIGVuY29udHJhciBsb3MgdmFsb3JlcyBkZSAkXGJldGEkIHF1ZSBkZWxpbWl0YW4gZWwgOTUlIGRlIGxhIGRpc3RyaWJ1Y2nDs24gYWN1bXVsYWRhIGRlIGxhIGRpc3RyaWJ1Y2nDs24gZ2FtbWEgJEdhbW1hKG4rMSwgXHN1bV97aT0xfV57bn0geF9pICsgMikkLiBFc3RvIHNlIHB1ZWRlIGhhY2VyIHV0aWxpemFuZG8gZnVuY2lvbmVzIGRlIGRpc3RyaWJ1Y2nDs24gYWN1bXVsYWRhIGludmVyc2EsIGRpc3BvbmlibGVzIGVuIHBhcXVldGVzIGRlIHNvZnR3YXJlIGVzdGFkw61zdGljbyBjb21vIFIuCgpGaW5hbG1lbnRlLCBlbCBpbnRlcnZhbG8gZGUgbcOheGltYSBkZW5zaWRhZCBhcG9zdGVyaW9yaSBkZWwgOTUlIHBhcmEgJFxiZXRhJCBlc3RhcsOhIGRhZG8gcG9yIGxvcyB2YWxvcmVzIGRlICRcYmV0YSQgcXVlIGRlbGltaXRhbiBlbCAyLjUlIG3DoXMgYmFqbyB5IGVsIDk3LjUlIG3DoXMgYWx0byBkZSBsYSBkaXN0cmlidWNpw7NuIGEgcG9zdGVyaW9yaSBkZSAkXGJldGEkLgoKUGFyYSBlbmNvbnRyYXIgZWwgaW50ZXJ2YWxvIGRlIG3DoXhpbWEgZGVuc2lkYWQgYXBvc3RlcmlvcmkgZGVsIDk1JSBwYXJhICRcYmV0YSQgZGFkbyBxdWUgdGVuZW1vcyB1bmEgZGlzdHJpYnVjacOzbiBhIHBvc3RlcmlvcmkgJEdhbW1hKG4rMSwgXHN1bV97aT0xfV57bn0geF9pICsgMikkLCBwb2RlbW9zIHV0aWxpemFyIGZ1bmNpb25lcyBkZSBkaXN0cmlidWNpw7NuIGFjdW11bGFkYSBpbnZlcnNhLiBFbiBSLCBwb2RlbW9zIHV0aWxpemFyIGxhIGZ1bmNpw7NuIHFnYW1tYSBwYXJhIGNhbGN1bGFyIGxvcyBjdWFudGlsZXMgZGUgdW5hIGRpc3RyaWJ1Y2nDs24gZ2FtbWEuCgpBcXXDrSB0aWVuZXMgZWwgY8OzZGlnbyBlbiBSIHBhcmEgY2FsY3VsYXIgZWwgaW50ZXJ2YWxvIGRlIG3DoXhpbWEgZGVuc2lkYWQgYXBvc3RlcmlvcmkgZGVsIDk1JSBwYXJhICRcYmV0YSQ6CgpgYGB7cn0KbiA8LSAyMCAgIyBUYW1hw7FvIGRlIGxhIG11ZXN0cmEKc3VtX3ggPC0gMy45ICAjIFN1bWEgZGUgbGEgbXVlc3RyYQoKIyBDYWxjdWxhciBsb3MgY3VhbnRpbGVzCmxpYnJhcnkoVGVhY2hpbmdEZW1vcykKY3VhbnRpbGVzIDwtIGhwZChxZ2FtbWEsIHNoYXBlPW4rMSwgcmF0ZT1zdW1feCArIDIsIGNvbmY9MC45NSkKCiMgSW1wcmltaXIgZWwgcmVzdWx0YWRvCnByaW50KHBhc3RlKCJJbnRlcnZhbG8gZGUgbcOheGltYSBkZW5zaWRhZCBhcG9zdGVyaW9yaSBkZWwgOTUlIHBhcmEgYmV0YTogKCIsIGN1YW50aWxlc1sxXSwgIiwiLCBjdWFudGlsZXNbMl0sICIpIikpCmBgYAoKCg==