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
- 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}
\]
- 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}
\]
- ¿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
- 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}
\]
- 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}
\]
- 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)\)
- 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)
\]
- 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}
\]
- 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==