Tareita 1
Sean \(X_1,X_2~N(1,1)\) \(X_3~N(2,4)\) y \(X_4~N(3,9)\) y v a i realiza 1000
simulaciones de cada una de las variables, calcula las formulas y dibuja
un histograma de proba en cada caso encimando la curva de densidad
\[*\left.(X_{1}-1\right)^{2}+\left(\frac{X_{3}-2}{2}\right)^{2}+\left(\frac{X_{4}-3}{3}\right)^{2}*\]
\[
\begin{aligned}
&\text {Proposicion 1}\\
&\text {Sean} X_{i} i=1, \cdot,n v.a,i. X_{i} \sim
\mathbb{N}\left(\mu, \sigma^{2}\right)\\
&a) Z_{i}=\left(\frac{X_{i}-M}{\sigma}\right)^{i} \sim
\mathbb{N}(0,1)\\
&b) Y_{i}=Z_{i}^{2}=\left(\frac{X_{i}-\mu}{\sigma}\right)^{2} \sim
X_{(1)}^{2} \\
&c) \sum_{i=1}^{n} Y_{i} \sim \chi_{(n)}^{2}\\
& \\
&\text {Sabemos}\\
&X_{1} \sim \mathbb{N}(1,1)
\Rightarrow\left(\frac{X_{1}-1}{1}\right)^{2} \sim \chi_{(1)}^{2}\\
&X_{3} \sim \mathbb{N}(2,4)
\Rightarrow\left(\frac{X_{3}-2}{2}\right)^{2} \sim \chi_{(1)}^{2}\\
&X_{4} \sim \mathbb{N}(3,9)
\Rightarrow\left(\frac{X_{4}-3}{3}\right)^{2} \sim \chi_{(1)}^{2}\\
&\therefore
\left(X_{1}-1\right)^{2}+\left(\frac{X_{3}-2}{2}\right)^{2}+\left(\frac{X_{4}-3}{3}\right)^{2}
\sim X_{(3)}^{2}\\
\end{aligned}
\]
\[\frac{\left(X_{-1}-1\right)^{2}}{\frac{\left(X_{2}-1\right)^{2}+\left(\frac{X_{3}-2}{2}\right)^{2}}{2}}\]
\[
\begin{aligned}
&\text {Proposicion_2}\\
&\text {Si } U\sim x_{(p)}^{2}, V \sim x_{(q)}^{2} \text
{independientes}\\
&\frac{U / p}{V / q} \sim \mathbb{F}(p, q) \\
&\\
&U =\left(X_{1}-1\right)^{2} \sim \chi{(1)}^{2} \\
&V = Y_{2}+Y_{3}
\stackrel{\downarrow}{=}\left(X_{2}-1\right)^{2}+\left(\frac{X_{3}-2}{2}\right)^{2}
\chi_{(2)}^{2}\\
&\\
&\text {Como U y V no tienen v.a.s. las Xi en}\\
&\text {comun entonces U indpendiente de V}\\
&\frac{U /
1}{V/2}=\frac{\frac{\left(X_{1}-1\right)^{2}}{1}}{\frac{\left(X_{2}-1\right)^{2}+\left(\frac{X_{3}-2}{2}\right)^{2}}{2}}
\sim \mathbb{F}(1,2) \\
\end{aligned}
\] \[
\frac{U / 1}{V /
2}=\frac{\frac{\left(X_{1}-1\right)^{2}}{1}}{\frac{\left(X_{2}-1\right)^{2}+\left(\frac{X_{3}-2}{2}\right)^{2}}{2}}
\sim \mathbb{F}(1,2)
\]
# llamamos las siguientes librerias
library(ggplot2)
n<-1000 # 1000 simulaciones
x1<-rnorm(n,1,1) # N(1,1)
x2<-rnorm(n,1,1) # N(1,1)
x3<-rnorm(n,2,2) # N(2,4)
x4<-rnorm(n,3,3) # N(3,9)
\[\left.(X_{1}-1\right)^{2}+\left(\frac{X_{3}-2}{2}\right)^{2}+\left(\frac{X_{4}-3}{3}\right)^{2}\sim \chi_{(3)}^{2}\]

\[\frac{\left(X_{-1}-1\right)^{2}}{\frac{\left(X_{2}-1\right)^{2}+\left(\frac{X_{3}-2}{2}\right)^{2}}{2}}\sim
\mathbb{F}(1,2)\]

Tareita 2
Ajusta una Pareto a los siguientes datos
# usamos las siguientes librerias
library(ggplot2)
library(actuar)
datos=c(10, 11, 15, 22, 28, 30, 32, 36, 38, 48,
55, 56, 68, 68, 85, 87, 94, 103, 104, 105,
109, 119, 121, 137, 178, 181, 226, 287, 310, 106,
393, 438, 591, 1045, 1210, 1212, 2423, 321, 354, 51)
datos=as.data.frame(datos)
summary(datos)
datos
Min. : 10.00
1st Qu.: 50.25
Median : 104.50
Mean : 272.68
3rd Qu.: 292.75
Max. :2423.00
Reconocimiento de la familia.
Esto se realiza mediante estadística descriptiva: cálculo de medidas
descriptivas y gráficos estadísticos
# Histograma con densidad
ggplot(datos, aes(x=datos)) +
geom_histogram(aes(y = ..density..),
colour = 1, fill = "blue") +
geom_density()
`stat_bin()` using `bins = 30`. Pick better value with
`binwidth`.

ggplot(datos, aes(x=datos)) +
geom_boxplot() +
labs(title="datos",
x="cantidad",
y="distribucion") +
theme_grey() +
theme(legend.position="none")

Tenemos 3 picos, dos datos atipicos 1210, 1212, 2423, Datos sesgados
a la derecha
Medidas de tendencia centrales
summary.data.frame(datos)
datos
Min. : 10.00
1st Qu.: 50.25
Median : 104.50
Mean : 272.68
3rd Qu.: 292.75
Max. :2423.00
mean(datos$datos)
[1] 272.675
median(datos$datos)
[1] 104.5
var(datos$datos)
[1] 212649
Tenemos indicios de asimetría
Medidas de dispersión
var(datos$datos)
[1] 212649
sd(datos$datos)
[1] 461.1389
range(datos$datos)
[1] 10 2423
IQR(datos$datos)
[1] 242.5
range(datos$datos)
[1] 10 2423
diff(range(datos$datos))
[1] 2413
Estimación de los parámetros de la densidad.
Podemos estimar los parámetros mediante MLE, Momentos, erc. Usamos la
siguiente libreria
# llamamos la siguiente libreria
library(fitdistrplus)
library(MASS)
library(survival)
# Graficamos el sesgo vs curtosis
descdist(datos$datos,boot = 800)
summary statistics
------
min: 10 max: 2423
median: 104.5
mean: 272.675
estimated sd: 461.1389
estimated skewness: 3.259925
estimated kurtosis: 15.20117

El gráfico señala que la distribución de los datos experimentales
siguen la distribución gamma, una weibull, lognormal,pareto puesto que
el conjunto de datos se encuentran cerca a las formas que indican dichas
distribuciones.
Ajusta distribuciones univariadas
f1 <- fitdist(datos$datos,"pareto")
plot(f1)

f1
Fitting of the distribution ' pareto ' by maximum likelihood
Parameters:
Aparentemente el ajuste es bueno para una Pareto (1.83, 247.60)
Verificación del ajuste
Realizado a los datos Mediante pruebas de hipótesis, qqplots, curvas
de densidad, etc.
Pruebas de Hipotesis
\(H_0\):Pertenecen a la misma
distribución continua Pareto (p value > alfa=.05)) \(H_a\):No Pertenecen a la misma distribución
continua Pareto (p value < alfa=.05)
Kolmogorov-Smirnov
test de kolmogorof smirnov
ks.test(datos$datos,ppareto,f1$estimate[1],f1$estimate[2])
Warning in ks.test(datos$datos, ppareto, f1$estimate[1], f1$estimate[2]) :
ties should not be present for the Kolmogorov-Smirnov test
One-sample Kolmogorov-Smirnov test
data: datos$datos
D = 0.10741, p-value = 0.7454
alternative hypothesis: two-sided
como p-value = 0.7454 > alfa=.05 Aceptamos \(H_0\)
Anderson Darling
ADGofTest::ad.test(datos$datos,ppareto,f1$estimate[1],f1$estimate[2])
Anderson-Darling GoF Test
data: datos$datos and ppareto
AD = 0.46132, p-value = 0.7855
alternative hypothesis: NA
Como p-value = 0.7855 > alfa=.05 Aceptamos \(H_0\)
Ajustamos la curva de una Pareto
library(actuar)
ggplot(datos, aes(x=datos)) +
geom_histogram(aes(y = ..density..),colour = 1, fill = "blue") +
stat_function(fun =dpareto, args = list(shape=f1$estimate[1],scale =f1$estimate[2]),colour ="orange")
`stat_bin()` using `bins = 30`. Pick better value with
`binwidth`.

Tareita 3
Calcula la densidad, distribución y esperanza para las
variables \(Y_P\) y \(Y_L\) si se agrega un deducible \(d=5000\)
\[F(X)=1−0.3e^{−.00001x}, \quad x≥
0\]
\[
\begin{aligned}
&\text {Para simplificar hacemos} \quad \lambda=0.00001=1 \cdot
10^{-5}\\
&\mathbb{F}_{x}(x)=1-0.3 e^{-\lambda x} \quad x \geqslant 0\\
&\mathbb{S}_{x}(x)=0.3 e^{-\lambda x} \quad x \geq 0\\
&f_{x}(x)= \begin{cases} 0.3 \lambda e^{-\lambda x} & x>0 \\
0.7 & x=0 \end{cases}\\
& \\
&\text {Calculamos} \quad Y^{L} Y^{p} \quad d=5,000\\
&\mathbb{F}_{x}(d)=1-0.3 e^{-\lambda d}=0.714631\\
&f_{x}(y+d)=0.3 \lambda e^{-\lambda(y+d)}=0.3 e^{-\lambda d} \cdot
\lambda e^{-\lambda d}=\\
& \\
&{f}_{Y^{L}}=\begin{cases}\mathbb{F}_{x}(d)=0.7144 & , y=0 \\
f_{X}(y+d)=(0.28536)\left(10^{-5}\right) e^{-\left(10^{-5} \cdot
5000\right)} & , y>0\end{cases}\\
& a\\
\end{aligned}
\] \[
\begin{aligned}
&S_{Y^{L}}(y)=S_{x}(y+d)=0.3 e^{-\lambda(y+d)}\quad
\mathbb{F}_{Y^{L}}=1-0.3 e^{-\lambda(y+d)}\\
& \\
& \mathbb{E}{[Y^{L}]}=\int_{d}^{\infty}
S_{x}(x)dx=\int_{d}^{\infty}0.3e^{-\lambda x}dx=\\
&\frac{0.3}{\lambda} \int_{d}^{\infty} \lambda e^{-\lambda x}
dx=\frac{0.3}{\lambda} \int_{d}^{\infty} f_{u}(u) d
u=\frac{0.3}{\lambda} \cdot S_{u}(d)\\
&=\frac{0.3}{\lambda} \cdot e^{-\lambda d}=\frac{0.3}{10^{-5}}
e^{-10^{-5}(5,000)}\\
&=28,536.88274\\
& \\
&\therefore \mathbb{E}\left[Y^{L}\right]=28,536.88274\\
& \\
&\text{Calculamos} Y^{P}\\
&f_Y^{p}(y)=\frac{f_{x}(y+d)}{S_{x}(d)}=\frac{0.3 \lambda
e^{-\lambda(y+d)}}{0,3 e^{-\lambda d}}=\lambda e^{-\lambda \bar{y}}, y
\geqslant 0\\
&\therefore Y^{P} \sim \exp \left(\lambda=10^{-5} = 0.00001\right)\\
& \\
&\mathbb{F}_{Y^{P}}(y)=\begin{cases}1-e^{-\lambda x}& \quad,
x\geqslant 0 \\ 0\quad\quad\quad, e.o.c \end{cases}\\
&\mathbb{S}_{Y^{P}}(y)=\begin{cases}e^{-\lambda x}& , x\geqslant
0 \\ 0\quad\quad\quad, e.o.c \end{cases}\\
&\mathbb{E}[Y^{p}]=(\frac{1}{\lambda})=\frac{1}{10^{-5}}=10^{5}=100,000
\end{aligned}
\]
Sea una variable aleatoria N discreta que pertenece a la
clase (a, b, 0). Se sabe lo siguiente:
\[
\begin{aligned}
&\mathbb{P}(N=0)=\mathbb{P}(N=1)=0.25 \\
&\mathbb{P}[N=2]=0.1875 \\
&\text {Calcular} \quad \mathbb{P}[N=3] \\
\end{aligned}
\]
\[
\begin{aligned}
&\text{N de la forma}\quad (a,b,0) \quad P_{k}=\mathbb{P}[N=k] \\
&P_{0}=P_{0} \\
&P_{K}=\left(a+\frac{b}{k}\right)\cdot P_{k-1} \quad k=1,2,3,
\ldots\\
& \\
&\text{Sustituyendo} \\
&0.25=P_{0} \cdots \cdots\cdots\cdots \cdots \cdots \cdots \cdots
\text { (0) } \\
&0.25=P_{1}(a+b) \cdot 0.25 \quad \cdots \cdots \cdots \text { (1) }
\\
&0.1875=P_{2}=\left(a+\frac{b}{2}\right) \cdot 0.25 \cdots \text
{(2)} \\
& \\
&\text {De (1) tenemos}\\
&0.25=(a+b) 0.25\\
&1=a+b \quad \ldots(1)\\
& \\
&\text {De (2) tenemos}\\
& 0.1875=\left(a+\frac{b}{2}\right) 0.25 \\
&1.5=\left(\frac{0.187-5}{0.25}\right)(2)=2 a+b \cdots(2)\\
\end{aligned}
\]
\[
\text {Restando (1) a (2)}\\
\begin{aligned}
&1.5 &=2 a+b \\
&1 &=a+b \\
&\hline 0.5 &=a
\end{aligned}
\]
\[
\begin{aligned}
&\text {Por (1)} \quad b=1-a=1-0.5=0.5\\
&\text {Calculamos} \quad P[N=3]=P_{3}\\
&P_{3}=\left(a+\frac{b}{3}\right) P_{2} \\
&=\left(\frac{1}{2}+\frac{1 / 2}{3}\right)(0.1875) \\
&=\frac{1}{8}=0.1251\\
\end{aligned}
\]
Tareita 4
Sea \(X\sim\exp(\theta=900)\) y un
deucible \(d=500\) el asegrador quiere
obtencer la tasa de eliminación de perdida, que se tiene actuolmente.
Determina el nuevo deducible. \[
\begin{aligned}
f_{x}(x)=\frac{1}{\theta}e^{-\frac{x}{\theta}}
&\quad \mathbb{E}[x]=\theta \\
\mathbb{F}_{x}(x)=1-e^{-\frac{x}{\theta}}
&\quad \mathbb{Var}[x]=\theta^{2}\\
\end{aligned}
\]
\[\frac{\mathbb{E}\left[X^{\wedge}
d\right]}{\mathbb{E}[X]}\]
tasa de eliminación de perdida.
\[
\mathbb{E}\left[X^{\wedge} d\right]=\int_{0}^{d} e^{-\frac{x}{\theta}} d
x=\theta \int_{0}^{d} \frac{1}{\theta} e^{-\frac{x}{\theta}} d x=\theta
\mathbb{F}(d)
\]
Calculamos la tasa de eliminación para alguna \(d\)
\[\frac{\mathbb{E}\left[X^{\wedge}
d\right]}{\mathbb{E}[X]}=\frac{\theta
\mathbb{F}(d)}{\theta}=\mathbb{F}(d)\]
Buscamos un \(d_2\) tal que la tasa
de eliminción sea el doble, que con \(d_{1}=500 , \theta=900\)
\[
\begin{aligned}
2\left[\frac{\mathbb{E}\left[X^{\wedge}d_{1}\right]}{\mathbb{E}[X]}\right]&=\frac{\mathbb{E}\left[X^{\wedge}d_{2}\right]}{\mathbb{E}[X]}
\\
2 \mathbb{F}\left(d_{1}\right) &=\mathbb{F}\left(d_{2}\right) \\
2 \mathbb{F}\left(d_{1}\right) &=1-e^{-\frac{d_{2}}{\theta}}
\\
e^{-\frac{d_{2}}{\theta}}&=1-2 \mathbb{F}\left(d_{1}\right)
\\
\frac{-d_{2}}{\theta} &=\ln \left(1-2
\mathbb{F}\left(d_{1}\right)\right)
\\
d_{2} &=-\theta\ln
\left(1-2\left(1-e^{\frac{d_{1}}{\theta}}\right)\right)
\\
&=-900 \cdot \ln \left(1-2\left(1-e^{-\frac{5}{9}}\right)\right) \\
&=1722.492649 \\
& \approx 11722.49
\end{aligned}
\]
\(\therefore\) El deducible que
duplica la tasa de eliminación es, \(d_{2}=1722.49\)
LS0tCnRpdGxlOiAiVGVvcmlhIGRlbCBSaWVzZ28gVGFyZWl0YXMiCmF1dGhvcjogIioqQ3J1eiBNYXRlbyBEYXZpZCoqIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazoKICAgIHRvYzogeWVzCiAgICB0b2NfZGVwdGg6IDUKICAgIHRvY19mbG9hdDoKICAgICAgY29sbGFwc2VkOiB5ZXMKICAgICAgc21vb290aF9zY3JvbGw6IHllcwogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IHllcwpsYW5nOiBlcy1FUwotLS0KCiMgKipUYXJlaXRhIDEqKgoKU2VhbiAkWF8xLFhfMn5OKDEsMSkkICRYXzN+TigyLDQpJCB5ICRYXzR+TigzLDkpJCB5ICB2IGEgaSByZWFsaXphIDEwMDAgc2ltdWxhY2lvbmVzIGRlIGNhZGEgdW5hIGRlICBsYXMgIHZhcmlhYmxlcywgY2FsY3VsYSBsYXMgZm9ybXVsYXMgeSBkaWJ1amEgdW4gaGlzdG9ncmFtYSBkZSBwcm9iYSBlbiBjYWRhIGNhc28gZW5jaW1hbmRvIGxhIGN1cnZhIGRlIGRlbnNpZGFkCgokJCpcbGVmdC4oWF97MX0tMVxyaWdodCleezJ9K1xsZWZ0KFxmcmFje1hfezN9LTJ9ezJ9XHJpZ2h0KV57Mn0rXGxlZnQoXGZyYWN7WF97NH0tM317M31ccmlnaHQpXnsyfSokJAoKCiQkClxiZWdpbnthbGlnbmVkfQomXHRleHQge1Byb3Bvc2ljaW9uIDF9XFwKJlx0ZXh0IHtTZWFufSBYX3tpfSBpPTEsIFxjZG90LG4gIHYuYSxpLiBYX3tpfSBcc2ltIFxtYXRoYmJ7Tn1cbGVmdChcbXUsIFxzaWdtYV57Mn1ccmlnaHQpXFwKJmEpIFpfe2l9PVxsZWZ0KFxmcmFje1hfe2l9LU19e1xzaWdtYX1ccmlnaHQpXntpfSBcc2ltIFxtYXRoYmJ7Tn0oMCwxKVxcCiZiKSBZX3tpfT1aX3tpfV57Mn09XGxlZnQoXGZyYWN7WF97aX0tXG11fXtcc2lnbWF9XHJpZ2h0KV57Mn0gXHNpbSBYX3soMSl9XnsyfSBcXAomYykgXHN1bV97aT0xfV57bn0gWV97aX0gXHNpbSBcY2hpX3sobil9XnsyfVxcCiYgXFwKJlx0ZXh0IHtTYWJlbW9zfVxcCiZYX3sxfSBcc2ltIFxtYXRoYmJ7Tn0oMSwxKSBcUmlnaHRhcnJvd1xsZWZ0KFxmcmFje1hfezF9LTF9ezF9XHJpZ2h0KV57Mn0gXHNpbSBcY2hpX3soMSl9XnsyfVxcCiZYX3szfSBcc2ltIFxtYXRoYmJ7Tn0oMiw0KSBcUmlnaHRhcnJvd1xsZWZ0KFxmcmFje1hfezN9LTJ9ezJ9XHJpZ2h0KV57Mn0gXHNpbSBcY2hpX3soMSl9XnsyfVxcCiZYX3s0fSBcc2ltIFxtYXRoYmJ7Tn0oMyw5KSBcUmlnaHRhcnJvd1xsZWZ0KFxmcmFje1hfezR9LTN9ezN9XHJpZ2h0KV57Mn0gXHNpbSBcY2hpX3soMSl9XnsyfVxcCiZcdGhlcmVmb3JlIFxsZWZ0KFhfezF9LTFccmlnaHQpXnsyfStcbGVmdChcZnJhY3tYX3szfS0yfXsyfVxyaWdodCleezJ9K1xsZWZ0KFxmcmFje1hfezR9LTN9ezN9XHJpZ2h0KV57Mn0gXHNpbSBYX3soMyl9XnsyfVxcClxlbmR7YWxpZ25lZH0KJCQKCiQkXGZyYWN7XGxlZnQoWF97LTF9LTFccmlnaHQpXnsyfX17XGZyYWN7XGxlZnQoWF97Mn0tMVxyaWdodCleezJ9K1xsZWZ0KFxmcmFje1hfezN9LTJ9ezJ9XHJpZ2h0KV57Mn19ezJ9fSQkCgokJApcYmVnaW57YWxpZ25lZH0KJlx0ZXh0IHtQcm9wb3NpY2lvbl8yfVxcCiZcdGV4dCB7U2kgfSBVXHNpbSB4X3socCl9XnsyfSwgViBcc2ltIHhfeyhxKX1eezJ9IFx0ZXh0IHtpbmRlcGVuZGllbnRlc31cXAomXGZyYWN7VSAvIHB9e1YgLyBxfSBcc2ltIFxtYXRoYmJ7Rn0ocCwgcSkgXFwKJlxcCiZVID1cbGVmdChYX3sxfS0xXHJpZ2h0KV57Mn0gXHNpbSBcY2hpeygxKX1eezJ9IFxcCiZWID0gWV97Mn0rWV97M30gXHN0YWNrcmVse1xkb3duYXJyb3d9ez19XGxlZnQoWF97Mn0tMVxyaWdodCleezJ9K1xsZWZ0KFxmcmFje1hfezN9LTJ9ezJ9XHJpZ2h0KV57Mn0gXGNoaV97KDIpfV57Mn1cXAomXFwKJlx0ZXh0IHtDb21vIFUgeSBWIG5vIHRpZW5lbiB2LmEucy4gbGFzIFhpIGVufVxcCiZcdGV4dCB7Y29tdW4gZW50b25jZXMgVSBpbmRwZW5kaWVudGUgIGRlIFZ9XFwKJlxmcmFje1UgLyAxfXtWLzJ9PVxmcmFje1xmcmFje1xsZWZ0KFhfezF9LTFccmlnaHQpXnsyfX17MX19e1xmcmFje1xsZWZ0KFhfezJ9LTFccmlnaHQpXnsyfStcbGVmdChcZnJhY3tYX3szfS0yfXsyfVxyaWdodCleezJ9fXsyfX0gXHNpbSBcbWF0aGJie0Z9KDEsMikgXFwKXGVuZHthbGlnbmVkfQokJAokJApcZnJhY3tVIC8gMX17ViAvIDJ9PVxmcmFje1xmcmFje1xsZWZ0KFhfezF9LTFccmlnaHQpXnsyfX17MX19e1xmcmFje1xsZWZ0KFhfezJ9LTFccmlnaHQpXnsyfStcbGVmdChcZnJhY3tYX3szfS0yfXsyfVxyaWdodCleezJ9fXsyfX0gXHNpbSBcbWF0aGJie0Z9KDEsMikKJCQKCgpgYGB7cn0KIyBsbGFtYW1vcyBsYXMgc2lndWllbnRlcyBsaWJyZXJpYXMKbGlicmFyeShnZ3Bsb3QyKQoKbjwtMTAwMCAjIDEwMDAgc2ltdWxhY2lvbmVzCngxPC1ybm9ybShuLDEsMSkgIyBOKDEsMSkKeDI8LXJub3JtKG4sMSwxKSAjIE4oMSwxKQp4Mzwtcm5vcm0obiwyLDIpICMgTigyLDQpCng0PC1ybm9ybShuLDMsMykgIyBOKDMsOSkKYGBgCgokJFxsZWZ0LihYX3sxfS0xXHJpZ2h0KV57Mn0rXGxlZnQoXGZyYWN7WF97M30tMn17Mn1ccmlnaHQpXnsyfStcbGVmdChcZnJhY3tYX3s0fS0zfXszfVxyaWdodCleezJ9XHNpbSAgXGNoaV97KDMpfV57Mn0kJAoKYGBge3J9CiMgMSkgKCh4MS0xKV4yKSsoKCh4Mi0yKS8yKV4yKSsoKCh4My0zKS8zKV4yKSAoamkgY3VhZHJhZGEgKDMpKQpqaV8zID0gKCh4MS0xKV4yKSArICgoKHgzLTIpLzIpXjIpICsgKCgoeDQtMykvMyleMikKcjwtYXMuZGF0YS5mcmFtZShqaV8zKQpnZ3Bsb3QoZGF0YT1yLGFlcyh4PWppXzMpKSsKICBnZW9tX2hpc3RvZ3JhbShhZXMoeT0uLmRlbnNpdHkuLiksYmlud2lkdGggPSAxLCBjb2xvcj0gImJsYWNrIiwKICAgICAgICAgICAgICAgICBmaWxsPSJ2aW9sZXQiKSsKICBzdGF0X2Z1bmN0aW9uKGZ1biA9IGRjaGlzcSwgYXJncyA9IGxpc3QoZGYgPSAzKSxjb2w9InJlZCIsbHdkPTEpKwogIGdndGl0bGUoIkhpc3RvZ3JhbWEgZGUgamlfMyIpKwogIGxhYnMoeD0iamlfMyIpCgpgYGAKCiQkXGZyYWN7XGxlZnQoWF97LTF9LTFccmlnaHQpXnsyfX17XGZyYWN7XGxlZnQoWF97Mn0tMVxyaWdodCleezJ9K1xsZWZ0KFxmcmFje1hfezN9LTJ9ezJ9XHJpZ2h0KV57Mn19ezJ9fVxzaW0gXG1hdGhiYntGfSgxLDIpJCQKCmBgYHtyfQpGXzFfMiA9ICgoeDEtMSleMikgLyAoKCgoeDItMSleMikrKCgoeDMtMikvMileMikpLzIpCnIxPC1hcy5kYXRhLmZyYW1lKEZfMV8yKQpoaXN0KEZfMV8yLGZyZXE9Rixjb2w9InllbGxvdyIsbWFpbj1jKCJIaXN0b2dyYW1hIGRlIEYoMSwyKSIpKQpjdXJ2ZShkZih4LGRmMT0xLGRmMj0yLG5jcD0wLGxvZz1GQUxTRSksYWRkPVQsY29sPSJyZWQiLGx3ZD0yKQpgYGAKCgojICoqVGFyZWl0YSAyKioKCkFqdXN0YSB1bmEgUGFyZXRvIGEgbG9zIHNpZ3VpZW50ZXMgZGF0b3MKCmBgYHtyfQojIHVzYW1vcyBsYXMgc2lndWllbnRlcyBsaWJyZXJpYXMKbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KGFjdHVhcikKZGF0b3M9YygxMCwgMTEsIDE1LCAyMiwgMjgsIDMwLCAzMiwgMzYsIDM4LCA0OCwKICAgICAgICA1NSwgNTYsIDY4LCA2OCwgODUsIDg3LCA5NCwgMTAzLCAxMDQsIDEwNSwKICAgICAgICAxMDksIDExOSwgMTIxLCAxMzcsIDE3OCwgMTgxLCAyMjYsIDI4NywgMzEwLCAxMDYsCiAgICAgICAgMzkzLCA0MzgsIDU5MSwgMTA0NSwgMTIxMCwgMTIxMiwgMjQyMywgMzIxLCAzNTQsIDUxKQpkYXRvcz1hcy5kYXRhLmZyYW1lKGRhdG9zKQpzdW1tYXJ5KGRhdG9zKQpgYGAKCiMjIyBSZWNvbm9jaW1pZW50byBkZSBsYSBmYW1pbGlhLgoKRXN0byBzZSByZWFsaXphIG1lZGlhbnRlIGVzdGFkw61zdGljYSBkZXNjcmlwdGl2YTogY8OhbGN1bG8gZGUgbWVkaWRhcyBkZXNjcmlwdGl2YXMgeSBncsOhZmljb3MgZXN0YWTDrXN0aWNvcwoKYGBge3J9CiMgSGlzdG9ncmFtYSBjb24gZGVuc2lkYWQKZ2dwbG90KGRhdG9zLCBhZXMoeD1kYXRvcykpICsgCiAgZ2VvbV9oaXN0b2dyYW0oYWVzKHkgPSAuLmRlbnNpdHkuLiksCiAgICAgICAgICAgICAgICAgY29sb3VyID0gMSwgZmlsbCA9ICJibHVlIikgKwogIGdlb21fZGVuc2l0eSgpIApgYGAKCgpgYGB7cn0KZ2dwbG90KGRhdG9zLCBhZXMoeD1kYXRvcykpICsKICBnZW9tX2JveHBsb3QoKSArCiAgbGFicyh0aXRsZT0iZGF0b3MiLAogICAgICAgeD0iY2FudGlkYWQiLAogICAgICAgeT0iZGlzdHJpYnVjaW9uIikgKwogIHRoZW1lX2dyZXkoKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uPSJub25lIikKYGBgCgpUZW5lbW9zIDMgcGljb3MsIGRvcyBkYXRvcyBhdGlwaWNvcyAxMjEwLCAxMjEyLCAyNDIzLApEYXRvcyBzZXNnYWRvcyBhIGxhIGRlcmVjaGEKCiMjIyBNZWRpZGFzIGRlIHRlbmRlbmNpYSBjZW50cmFsZXMKYGBge3J9CnN1bW1hcnkuZGF0YS5mcmFtZShkYXRvcykKbWVhbihkYXRvcyRkYXRvcykKbWVkaWFuKGRhdG9zJGRhdG9zKSAKdmFyKGRhdG9zJGRhdG9zKQpgYGAKVGVuZW1vcyBpbmRpY2lvcyBkZSBhc2ltZXRyw61hCgojIyMgTWVkaWRhcyBkZSBkaXNwZXJzacOzbgoKYGBge3J9CnZhcihkYXRvcyRkYXRvcykKc2QoZGF0b3MkZGF0b3MpCnJhbmdlKGRhdG9zJGRhdG9zKQpJUVIoZGF0b3MkZGF0b3MpCnJhbmdlKGRhdG9zJGRhdG9zKQpkaWZmKHJhbmdlKGRhdG9zJGRhdG9zKSkKYGBgCiMjIyBNZWRpZGFzIGRlIGZvcm1hcwoKVXNhbW9zIGxpYnJlcmlhIG1vbWVudHMsIHBhcmEgZWwgc2VzZ28geSBrdXJ0b3NpcwoKYGBge3J9CmxpYnJhcnkobW9tZW50cykKc2VzZ289c2tld25lc3MoZGF0b3MpCnNlc2dvCmBgYApjb21vIGVsICoqc2VzZ28gPiAwKio6IExhIGN1cnZhIGVzIGFzaW3DqXRyaWNhbWVudGUgcG9zaXRpdmEgcG9yIGxvIHF1ZSBsb3MgdmFsb3JlcyBzZSB0aWVuZGVuIGEgcmV1bmlyIG3DoXMgZW4gbGEgcGFydGUgaXpxdWllcmRhIHF1ZSBlbiBsYSBkZXJlY2hhIGRlIGxhIG1lZGlhCgpgYGB7cn0Ka3VydG9zaXNfMT1rdXJ0b3NpcyhkYXRvcykKa3VydG9zaXNfMQpgYGAKY29tbyAqKmt1cnRvc2lzXzEgPiAzKiogbGEgZGlzdHJpYnVjacOzbiBlcyBMZXB0b2PDunJ0aWNhCgojIyBFc3RpbWFjacOzbiBkZSBsb3MgcGFyw6FtZXRyb3MgZGUgbGEgZGVuc2lkYWQuCgpQb2RlbW9zIGVzdGltYXIgbG9zIHBhcsOhbWV0cm9zIG1lZGlhbnRlIE1MRSwgTW9tZW50b3MsIGVyYy4KVXNhbW9zIGxhIHNpZ3VpZW50ZSBsaWJyZXJpYQoKYGBge3J9CiMgbGxhbWFtb3MgbGEgc2lndWllbnRlIGxpYnJlcmlhCmxpYnJhcnkoZml0ZGlzdHJwbHVzKQpsaWJyYXJ5KE1BU1MpCmxpYnJhcnkoc3Vydml2YWwpCiMgR3JhZmljYW1vcyBlbCBzZXNnbyB2cyBjdXJ0b3NpcwpkZXNjZGlzdChkYXRvcyRkYXRvcyxib290ID0gODAwKQpgYGAKCkVsIGdyw6FmaWNvIHNlw7FhbGEgcXVlIGxhIGRpc3RyaWJ1Y2nDs24gZGUgbG9zIGRhdG9zIGV4cGVyaW1lbnRhbGVzIHNpZ3VlbiBsYSBkaXN0cmlidWNpw7NuIGdhbW1hLCB1bmEgd2VpYnVsbCwgbG9nbm9ybWFsLHBhcmV0byAgcHVlc3RvIHF1ZSBlbCBjb25qdW50byBkZSBkYXRvcyBzZSBlbmN1ZW50cmFuIGNlcmNhIGEgbGFzIGZvcm1hcyBxdWUgaW5kaWNhbiBkaWNoYXMgZGlzdHJpYnVjaW9uZXMuCgoKIyMjIEFqdXN0YSBkaXN0cmlidWNpb25lcyB1bml2YXJpYWRhcwoKYGBge3J9CmYxIDwtIGZpdGRpc3QoZGF0b3MkZGF0b3MsInBhcmV0byIpCnBsb3QoZjEpCmYxCmBgYApBcGFyZW50ZW1lbnRlIGVsIGFqdXN0ZSBlcyBidWVubyBwYXJhIHVuYSBQYXJldG8gKDEuODMsIDI0Ny42MCkKCiMjIFZlcmlmaWNhY2nDs24gZGVsIGFqdXN0ZQpSZWFsaXphZG8gYSBsb3MgZGF0b3MgTWVkaWFudGUgcHJ1ZWJhcyBkZSBoaXDDs3Rlc2lzLCBxcXBsb3RzLCBjdXJ2YXMgZGUgZGVuc2lkYWQsIGV0Yy4KCiMjIyBQcnVlYmFzIGRlIEhpcG90ZXNpcwokSF8wJDpQZXJ0ZW5lY2VuIGEgbGEgbWlzbWEgZGlzdHJpYnVjacOzbiBjb250aW51YSBQYXJldG8gKHAgdmFsdWUgPiBhbGZhPS4wNSkpCiRIX2EkOk5vIFBlcnRlbmVjZW4gYSBsYSBtaXNtYSBkaXN0cmlidWNpw7NuIGNvbnRpbnVhIFBhcmV0byAocCB2YWx1ZSA8IGFsZmE9LjA1KQoKIyMjIyBLb2xtb2dvcm92LVNtaXJub3YKCnRlc3QgZGUga29sbW9nb3JvZiBzbWlybm92CgpgYGB7cn0Ka3MudGVzdChkYXRvcyRkYXRvcyxwcGFyZXRvLGYxJGVzdGltYXRlWzFdLGYxJGVzdGltYXRlWzJdKQpgYGAKY29tbyBwLXZhbHVlID0gMC43NDU0ID4gYWxmYT0uMDUKQWNlcHRhbW9zICRIXzAkCgojIyMjIEFuZGVyc29uIERhcmxpbmcKCmBgYHtyfQpBREdvZlRlc3Q6OmFkLnRlc3QoZGF0b3MkZGF0b3MscHBhcmV0byxmMSRlc3RpbWF0ZVsxXSxmMSRlc3RpbWF0ZVsyXSkKYGBgCkNvbW8gcC12YWx1ZSA9IDAuNzg1NSA+IGFsZmE9LjA1CkFjZXB0YW1vcyAkSF8wJAoKIyMgQWp1c3RhbW9zIGxhIGN1cnZhIGRlIHVuYSBQYXJldG8KCmBgYHtyfQpsaWJyYXJ5KGFjdHVhcikKZ2dwbG90KGRhdG9zLCBhZXMoeD1kYXRvcykpICsgCiAgZ2VvbV9oaXN0b2dyYW0oYWVzKHkgPSAuLmRlbnNpdHkuLiksY29sb3VyID0gMSwgZmlsbCA9ICJibHVlIikgKwogIAogIHN0YXRfZnVuY3Rpb24oZnVuID1kcGFyZXRvLCBhcmdzID0gbGlzdChzaGFwZT1mMSRlc3RpbWF0ZVsxXSxzY2FsZSA9ZjEkZXN0aW1hdGVbMl0pLGNvbG91ciA9Im9yYW5nZSIpCmBgYAoKIyAqKlRhcmVpdGEgMyoqCgoqKkNhbGN1bGEgbGEgZGVuc2lkYWQsIGRpc3RyaWJ1Y2nDs24geSBlc3BlcmFuemEgcGFyYSBsYXMgdmFyaWFibGVzICRZX1AkIHkgJFlfTCQgc2kgc2UgYWdyZWdhIHVuIGRlZHVjaWJsZSAkZD01MDAwJCoqCgokJEYoWCk9MeKIkjAuM2Vee+KIki4wMDAwMXh9LCBccXVhZCB44omlIDAkJAoKJCQKXGJlZ2lue2FsaWduZWR9CiZcdGV4dCB7UGFyYSBzaW1wbGlmaWNhciBoYWNlbW9zfSBccXVhZCBcbGFtYmRhPTAuMDAwMDE9MSBcY2RvdCAxMF57LTV9XFwKJlxtYXRoYmJ7Rn1fe3h9KHgpPTEtMC4zIGVeey1cbGFtYmRhIHh9IFxxdWFkIHggXGdlcXNsYW50IDBcXAomXG1hdGhiYntTfV97eH0oeCk9MC4zIGVeey1cbGFtYmRhIHh9IFxxdWFkIHggXGdlcSAwXFwKJmZfe3h9KHgpPSBcYmVnaW57Y2FzZXN9IDAuMyBcbGFtYmRhIGVeey1cbGFtYmRhIHh9ICYgeD4wIFxcIDAuNyAmIHg9MCBcZW5ke2Nhc2VzfVxcCiYgXFwKJlx0ZXh0IHtDYWxjdWxhbW9zfSAgXHF1YWQgWV57TH0gWV57cH0gXHF1YWQgZD01LDAwMFxcCiZcbWF0aGJie0Z9X3t4fShkKT0xLTAuMyBlXnstXGxhbWJkYSBkfT0wLjcxNDYzMVxcCiZmX3t4fSh5K2QpPTAuMyBcbGFtYmRhIGVeey1cbGFtYmRhKHkrZCl9PTAuMyBlXnstXGxhbWJkYSBkfSBcY2RvdCBcbGFtYmRhIGVeey1cbGFtYmRhIGR9PVxcCiYgXFwKJntmfV97WV57TH19PVxiZWdpbntjYXNlc31cbWF0aGJie0Z9X3t4fShkKT0wLjcxNDQgJiAsIHk9MCBcXCBmX3tYfSh5K2QpPSgwLjI4NTM2KVxsZWZ0KDEwXnstNX1ccmlnaHQpIGVeey1cbGVmdCgxMF57LTV9IFxjZG90IDUwMDBccmlnaHQpfSAmICwgeT4wXGVuZHtjYXNlc31cXAomIGFcXApcZW5ke2FsaWduZWR9CiQkCiQkClxiZWdpbnthbGlnbmVkfQomU197WV57TH19KHkpPVNfe3h9KHkrZCk9MC4zIGVeey1cbGFtYmRhKHkrZCl9XHF1YWQgXG1hdGhiYntGfV97WV57TH19PTEtMC4zIGVeey1cbGFtYmRhKHkrZCl9XFwKJiBcXAomIFxtYXRoYmJ7RX17W1lee0x9XX09XGludF97ZH1ee1xpbmZ0eX0gU197eH0oeClkeD1caW50X3tkfV57XGluZnR5fTAuM2Veey1cbGFtYmRhIHh9ZHg9XFwKJlxmcmFjezAuM317XGxhbWJkYX0gXGludF97ZH1ee1xpbmZ0eX0gXGxhbWJkYSBlXnstXGxhbWJkYSB4fSBkeD1cZnJhY3swLjN9e1xsYW1iZGF9IFxpbnRfe2R9XntcaW5mdHl9IGZfe3V9KHUpIGQgdT1cZnJhY3swLjN9e1xsYW1iZGF9IFxjZG90IFNfe3V9KGQpXFwKJj1cZnJhY3swLjN9e1xsYW1iZGF9IFxjZG90IGVeey1cbGFtYmRhIGR9PVxmcmFjezAuM317MTBeey01fX0gZV57LTEwXnstNX0oNSwwMDApfVxcCiY9MjgsNTM2Ljg4Mjc0XFwKJiBcXAomXHRoZXJlZm9yZSBcbWF0aGJie0V9XGxlZnRbWV57TH1ccmlnaHRdPTI4LDUzNi44ODI3NFxcCiYgXFwKJlx0ZXh0e0NhbGN1bGFtb3N9IFlee1B9XFwKJmZfWV57cH0oeSk9XGZyYWN7Zl97eH0oeStkKX17U197eH0oZCl9PVxmcmFjezAuMyBcbGFtYmRhIGVeey1cbGFtYmRhKHkrZCl9fXswLDMgZV57LVxsYW1iZGEgZH19PVxsYW1iZGEgZV57LVxsYW1iZGEgXGJhcnt5fX0sIHkgXGdlcXNsYW50IDBcXAomXHRoZXJlZm9yZSBZXntQfSBcc2ltIFxleHAgXGxlZnQoXGxhbWJkYT0xMF57LTV9ID0gMC4wMDAwMVxyaWdodClcXAomIFxcCiZcbWF0aGJie0Z9X3tZXntQfX0oeSk9XGJlZ2lue2Nhc2VzfTEtZV57LVxsYW1iZGEgeH0mIFxxdWFkLCB4XGdlcXNsYW50IDAgXFwgMFxxdWFkXHF1YWRccXVhZCwgZS5vLmMgXGVuZHtjYXNlc31cXAomXG1hdGhiYntTfV97WV57UH19KHkpPVxiZWdpbntjYXNlc31lXnstXGxhbWJkYSB4fSYgLCB4XGdlcXNsYW50IDAgXFwgMFxxdWFkXHF1YWRccXVhZCwgZS5vLmMgXGVuZHtjYXNlc31cXAomXG1hdGhiYntFfVtZXntwfV09KFxmcmFjezF9e1xsYW1iZGF9KT1cZnJhY3sxfXsxMF57LTV9fT0xMF57NX09MTAwLDAwMApcZW5ke2FsaWduZWR9CiQkCgoqKlNlYSB1bmEgdmFyaWFibGUgYWxlYXRvcmlhIE4gZGlzY3JldGEgcXVlIHBlcnRlbmVjZSBhIGxhIGNsYXNlIChhLCBiLCAwKS4gU2Ugc2FiZSBsbyBzaWd1aWVudGU6KioKCiQkClxiZWdpbnthbGlnbmVkfQomXG1hdGhiYntQfShOPTApPVxtYXRoYmJ7UH0oTj0xKT0wLjI1IFxcCiZcbWF0aGJie1B9W049Ml09MC4xODc1IFxcCiZcdGV4dCB7Q2FsY3VsYXJ9IFxxdWFkIFxtYXRoYmJ7UH1bTj0zXSBcXApcZW5ke2FsaWduZWR9CiQkCgokJApcYmVnaW57YWxpZ25lZH0KJlx0ZXh0e04gZGUgbGEgZm9ybWF9XHF1YWQgKGEsYiwwKSBccXVhZCBQX3trfT1cbWF0aGJie1B9W049a10gXFwKJlBfezB9PVBfezB9IFxcCiZQX3tLfT1cbGVmdChhK1xmcmFje2J9e2t9XHJpZ2h0KVxjZG90IFBfe2stMX0gXHF1YWQgaz0xLDIsMywgXGxkb3RzXFwKJiBcXAomXHRleHR7U3VzdGl0dXllbmRvfSBcXAomMC4yNT1QX3swfSBcY2RvdHMgXGNkb3RzXGNkb3RzXGNkb3RzIFxjZG90cyBcY2RvdHMgXGNkb3RzIFxjZG90cyBcdGV4dCB7ICgwKSB9IFxcCiYwLjI1PVBfezF9KGErYikgXGNkb3QgMC4yNSBccXVhZCBcY2RvdHMgXGNkb3RzIFxjZG90cyBcdGV4dCB7ICgxKSB9IFxcCiYwLjE4NzU9UF97Mn09XGxlZnQoYStcZnJhY3tifXsyfVxyaWdodCkgXGNkb3QgMC4yNSBcY2RvdHMgXHRleHQgeygyKX0gXFwKJiBcXAomXHRleHQge0RlICgxKSB0ZW5lbW9zfVxcCiYwLjI1PShhK2IpIDAuMjVcXAomMT1hK2IgXHF1YWQgXGxkb3RzKDEpXFwKJiBcXAomXHRleHQge0RlICgyKSB0ZW5lbW9zfVxcCiYgMC4xODc1PVxsZWZ0KGErXGZyYWN7Yn17Mn1ccmlnaHQpIDAuMjUgXFwKJjEuNT1cbGVmdChcZnJhY3swLjE4Ny01fXswLjI1fVxyaWdodCkoMik9MiBhK2IgXGNkb3RzKDIpXFwKXGVuZHthbGlnbmVkfQokJAoKCgokJApcdGV4dCB7UmVzdGFuZG8gKDEpIGEgKDIpfVxcClxiZWdpbnthbGlnbmVkfQomMS41ICY9MiBhK2IgXFwKJjEgJj1hK2IgXFwKJlxobGluZSAwLjUgJj1hClxlbmR7YWxpZ25lZH0KJCQKCiQkClxiZWdpbnthbGlnbmVkfQomXHRleHQge1BvciAoMSl9IFxxdWFkIGI9MS1hPTEtMC41PTAuNVxcCiZcdGV4dCB7Q2FsY3VsYW1vc30gXHF1YWQgUFtOPTNdPVBfezN9XFwKJlBfezN9PVxsZWZ0KGErXGZyYWN7Yn17M31ccmlnaHQpIFBfezJ9IFxcCiY9XGxlZnQoXGZyYWN7MX17Mn0rXGZyYWN7MSAvIDJ9ezN9XHJpZ2h0KSgwLjE4NzUpIFxcCiY9XGZyYWN7MX17OH09MC4xMjUxXFwKXGVuZHthbGlnbmVkfQokJAoKCiMgKipUYXJlaXRhIDQqKgoKU2VhICRYXHNpbVxleHAoXHRoZXRhPTkwMCkkIHkgdW4gZGV1Y2libGUgJGQ9NTAwJCBlbCBhc2VncmFkb3IgcXVpZXJlIG9idGVuY2VyIGxhIHRhc2EgZGUgZWxpbWluYWNpw7NuIGRlIHBlcmRpZGEsIHF1ZSBzZSB0aWVuZSBhY3R1b2xtZW50ZS4gRGV0ZXJtaW5hIGVsIG51ZXZvIGRlZHVjaWJsZS4KJCQKXGJlZ2lue2FsaWduZWR9CmZfe3h9KHgpPVxmcmFjezF9e1x0aGV0YX1lXnstXGZyYWN7eH17XHRoZXRhfX0KJlxxdWFkIFxtYXRoYmJ7RX1beF09XHRoZXRhIFxcClxtYXRoYmJ7Rn1fe3h9KHgpPTEtZV57LVxmcmFje3h9e1x0aGV0YX19CiZccXVhZCBcbWF0aGJie1Zhcn1beF09XHRoZXRhXnsyfVxcClxlbmR7YWxpZ25lZH0KJCQKCiQkXGZyYWN7XG1hdGhiYntFfVxsZWZ0W1hee1x3ZWRnZX0gZFxyaWdodF19e1xtYXRoYmJ7RX1bWF19JCQKCnRhc2EgZGUgZWxpbWluYWNpw7NuIGRlIHBlcmRpZGEuCgokJApcbWF0aGJie0V9XGxlZnRbWF57XHdlZGdlfSBkXHJpZ2h0XT1caW50X3swfV57ZH0gZV57LVxmcmFje3h9e1x0aGV0YX19IGQgeD1cdGhldGEgXGludF97MH1ee2R9IFxmcmFjezF9e1x0aGV0YX0gZV57LVxmcmFje3h9e1x0aGV0YX19IGQgeD1cdGhldGEgXG1hdGhiYntGfShkKQokJAoKQ2FsY3VsYW1vcyBsYSB0YXNhIGRlIGVsaW1pbmFjacOzbiBwYXJhIGFsZ3VuYSAkZCQKCiQkXGZyYWN7XG1hdGhiYntFfVxsZWZ0W1hee1x3ZWRnZX0gZFxyaWdodF19e1xtYXRoYmJ7RX1bWF19PVxmcmFje1x0aGV0YSBcbWF0aGJie0Z9KGQpfXtcdGhldGF9PVxtYXRoYmJ7Rn0oZCkkJAoKCkJ1c2NhbW9zIHVuICRkXzIkIHRhbCBxdWUgbGEgdGFzYSBkZSBlbGltaW5jacOzbiBzZWEgZWwgZG9ibGUsIHF1ZSBjb24gJGRfezF9PTUwMCAsIFx0aGV0YT05MDAkCgokJApcYmVnaW57YWxpZ25lZH0KMlxsZWZ0W1xmcmFje1xtYXRoYmJ7RX1cbGVmdFtYXntcd2VkZ2V9ZF97MX1ccmlnaHRdfXtcbWF0aGJie0V9W1hdfVxyaWdodF0mPVxmcmFje1xtYXRoYmJ7RX1cbGVmdFtYXntcd2VkZ2V9ZF97Mn1ccmlnaHRdfXtcbWF0aGJie0V9W1hdfQpcXAoyIFxtYXRoYmJ7Rn1cbGVmdChkX3sxfVxyaWdodCkgJj1cbWF0aGJie0Z9XGxlZnQoZF97Mn1ccmlnaHQpIFxcCjIgXG1hdGhiYntGfVxsZWZ0KGRfezF9XHJpZ2h0KSAmPTEtZV57LVxmcmFje2RfezJ9fXtcdGhldGF9fQpcXAplXnstXGZyYWN7ZF97Mn19e1x0aGV0YX19Jj0xLTIgXG1hdGhiYntGfVxsZWZ0KGRfezF9XHJpZ2h0KQpcXApcZnJhY3stZF97Mn19e1x0aGV0YX0gJj1cbG4gXGxlZnQoMS0yIFxtYXRoYmJ7Rn1cbGVmdChkX3sxfVxyaWdodClccmlnaHQpClxcCmRfezJ9ICY9LVx0aGV0YVxsbiBcbGVmdCgxLTJcbGVmdCgxLWVee1xmcmFje2RfezF9fXtcdGhldGF9fVxyaWdodClccmlnaHQpClxcCiY9LTkwMCBcY2RvdCBcbG4gXGxlZnQoMS0yXGxlZnQoMS1lXnstXGZyYWN7NX17OX19XHJpZ2h0KVxyaWdodCkgXFwKJj0xNzIyLjQ5MjY0OSBcXAomIFxhcHByb3ggMTE3MjIuNDkKXGVuZHthbGlnbmVkfQokJAoKJFx0aGVyZWZvcmUkIEVsIGRlZHVjaWJsZSBxdWUgZHVwbGljYSBsYSB0YXNhIGRlIGVsaW1pbmFjacOzbiBlcywgJGRfezJ9PTE3MjIuNDkk