Descargar librerias

#installed.packages("stats")
library(stats)

Pruebas de hipótesis (t student)

Ejercicio 1

Pagos = c(107,92,97,95,105,101,91,99,95,104)
u = 100
sig= .10

xbar = mean(Pagos)
xbar = mean(Pagos)
xbar
## [1] 98.6
#Desviación estandar muestral (2 pasos)
vari = var(Pagos)
S = sqrt(vari)
S
## [1] 5.541761
#Desviación estandar muestral (1 paso)
St = sqrt(var(Pagos))
St
## [1] 5.541761
#t estadistico 
t = (xbar - u)/(S/sqrt(10))
t
## [1] -0.7988776
#t tabla
tt = 1.83
tt
## [1] 1.83

No se rechaza la hipótesis nula (H0)

Formula t.test

t_estadistico = t.test(Pagos, y = NULL, alternative = "two.sided", mu = 100, paired = FALSE, var.equal = FALSE, conf.level=0.90)
t_estadistico
## 
##  One Sample t-test
## 
## data:  Pagos
## t = -0.79888, df = 9, p-value = 0.4449
## alternative hypothesis: true mean is not equal to 100
## 90 percent confidence interval:
##   95.38755 101.81245
## sample estimates:
## mean of x 
##      98.6

si p-valor es mayor al grado de significancia, no se rechaza la hipotesis nula (H0)

Ejercicio 2

#Variables
n=18
mu = 77.38
xb = 87.61
sd= 19.48
a= 0.025

# T estadistica 
testa = (xb - mu)/(sd/sqrt(n))
testa
## [1] 2.22804

T de tabla es igual +- 2.11
Se rechaza la H0, las rentas de Drive a Lemon son mayores a las grandes cadenas nacionales

ANOVA

Ejercicio 1

resistencia = read.csv("C:\\Users\\Silva\\Documents\\ANOVA Mezclas.csv")
resistencia$Mezcla = as.factor(resistencia$Mezcla)
qf(.95,df1=3,df=20)
## [1] 3.098391
anova1 = aov(Valor ~ Mezcla, data = resistencia)
summary(anova1)
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## Mezcla       3 127375   42458   25.09 5.53e-07 ***
## Residuals   20  33839    1692                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Ejercicio 2

meazcla = read.csv("C:\\Users\\Silva\\Documents\\ANOVA Grado.csv")
meazcla$Manchado = as.factor(meazcla$Manchado)
qf(.99,df1=2,df=12)
## [1] 6.926608
anova2 =aov(Valor ~ Manchado, data = meazcla)
summary(anova2)
##             Df Sum Sq Mean Sq F value Pr(>F)
## Manchado     2 0.0609 0.03043   0.987  0.401
## Residuals   12 0.3701 0.03084

Regresión lineal

Ejercicio 1

a = c(0.2,0.5,1,2,3)
b = c(8,10,18,35,60)
regresion_1 = lm(b~a)
summary(regresion_1)
## 
## Call:
## lm(formula = b ~ a)
## 
## Residuals:
##       1       2       3       4       5 
##  3.0591 -0.5354 -1.8596 -3.5079  2.8437 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)    1.211      2.451   0.494  0.65510   
## a             18.648      1.450  12.863  0.00101 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.341 on 3 degrees of freedom
## Multiple R-squared:  0.9822, Adjusted R-squared:  0.9763 
## F-statistic: 165.5 on 1 and 3 DF,  p-value: 0.001014
plot(a,b,pch =16 ,cex = 1.3, col = "blue",main ="Ejercicio 1")
abline(lm(b~a))

plot(regresion_1)

Ejercicio 2

x = c(-6,-3,0,3,6,9,12,15,20,25)
y = c(2,2.8,3.9,4.2,5.8,6.2,7.5,8.2,9.3,10.9)
regresion_2 = lm(y ~ x)
summary(regresion_2)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.41088 -0.12507 -0.03329  0.14807  0.32493 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 3.746694   0.101162   37.04 3.10e-10 ***
## x           0.288062   0.008087   35.62 4.22e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2438 on 8 degrees of freedom
## Multiple R-squared:  0.9937, Adjusted R-squared:  0.993 
## F-statistic:  1269 on 1 and 8 DF,  p-value: 4.223e-10
plot(x,y,pch =16 ,cex = 1.3, col = "blue",main ="Ejercicio 2")
abline(lm(y~x))

plot(regresion_2)

Ejercicios del mundo real

11-26
Un estudio compara el número de horas de alivio que proporcionan cinco marcas de antiácidos administrados a 25 personas diferentes, cada una con acidez estomacal considerada fuerte. Los resultados son los siguientes:

A B C D E
4.4 5.8 4.8 2.9 4.6
4.6 5.2 5.9 2.7 4.3
4.5 4.9 4.9 2.9 3.8
4.1 4.7 4.6 3.9 5.2
3.8 4.6 4.3 4.3 4.4
#a)  Calcule el cociente F. Para un nivel de significancia de 0.05, ¿las marcas producen cantidades significativamente diferentes de alivio a las personas con acidez estomacal fuerte?
antiacidos = read.csv("C:\\Users\\Silva\\Documents\\antiacidos.csv")
antiacidos$marca = as.factor(antiacidos$marca)
qf(.95,df1 = 4,df2=20)
## [1] 2.866081
anova3 = aov(horas ~ marca, data= antiacidos)
summary(anova3)
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## marca        4  9.006  2.2514   7.653 0.000655 ***
## Residuals   20  5.884  0.2942                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Rechazamos H0, el alivio de los antiacidos varia significativamente

11-38 En la ciudad de Villagrande, una cadena de comida rápida está adquiriendo una mala reputación debido a que tardan mucho en servirle a los clientes. Como la cadena tiene 4 restaurantes en esta ciudad, se tiene la preocupación si los 4 restaurantes tienen el mismo tiempo promedio de servicio. Uno de los dueños de la cadena ha decidido visitar cada uno de los locales y registrar el tiempo de servicio para 5 clientes escogidos al azar. En sus 4 visitas vespertinas registró los siguientes tiempos de servicio en minutos:

Restaurante 1 Restaurante 2 Restaurante 3 Restaurante 4
3 3 2 3
4 3.5 3.5 4
5.5 4.5 5 5.5
3.5 4 6.5 2.5
4 5.5 6 3
# a)
restaurante = read.csv("C:\\Users\\Silva\\Documents\\restaurante.csv")
restaurante$restaurante = as.factor(restaurante$restaurante)
qf(.95,df1 = 3,df2=16)
## [1] 3.238872
anova4 = aov(tiempo ~ restaurante, data= restaurante)
summary(anova4)
##             Df Sum Sq Mean Sq F value Pr(>F)
## restaurante  3  2.538  0.8458   0.509  0.682
## Residuals   16 26.600  1.6625
#No rechazamos H0, los tiempos medios de servicio no son significativamente diferentes

# b) 
# Debido a que ningún restaurante es peor que los otros, cualquier recomendación tendría que hacerse a todos los administradores.

12-64
Un arrendador está interesado en ver si las rentas de sus departamentos son las típicas. Para esto tomó una muestra aleatoria de 11 rentas y tamaños de departamentos en complejos dec departamentos similares. Los datos son los siguientes:

Renta No. de Recámaras
230 2
190 1
450 3
310 2
218 2
185 2
340 2
245 1
125 1
350 2
280 2
renta = c(230, 190, 450, 310, 218, 185, 340, 245, 125, 350, 280)
recamaras = c(2, 1, 3, 2, 2, 2, 2, 1, 1, 2, 2)
regresion_3 = lm(renta ~ recamaras)
summary(regresion_3)
## 
## Call:
## lm(formula = renta ~ recamaras)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -101.80  -51.35   19.10   50.25   74.10 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)    55.00      63.19   0.870  0.40667   
## recamaras     115.90      33.13   3.498  0.00675 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 63.19 on 9 degrees of freedom
## Multiple R-squared:  0.5762, Adjusted R-squared:  0.5291 
## F-statistic: 12.23 on 1 and 9 DF,  p-value: 0.006746
# Renta = 55 + 115.90 * No. Recámaras
# b) r2 = 0.5762
# c) 
recamarasN =2
renta1= 55 + 115.90* recamarasN
renta1
## [1] 286.8
LS0tDQp0aXRsZTogIldvcmtzaG9wIE0yLjEiDQphdXRob3I6ICJKb3PDqSBBcnR1cm8gU2lsdmEgRmxvcmVzIEEwMTE5ODA0OSINCmRhdGU6ICIyMDIzLTA1LTE2Ig0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICB0b2NfZmxvYXQ6IHRydWUNCiAgICBjb2RlX2Rvd25sb2FkIDogdHJ1ZQ0KICAgIGNvZGVfZm9sZGluZzogaGlkZQ0KICAgIHRoZW1lOiB1bml0ZWQNCiAgICBoaWdobGlnaHQ6IHRhbmdvDQogICAgDQotLS0NCg0KIyMjIERlc2NhcmdhciBsaWJyZXJpYXMgDQpgYGB7cn0NCiNpbnN0YWxsZWQucGFja2FnZXMoInN0YXRzIikNCmxpYnJhcnkoc3RhdHMpDQpgYGANCg0KIyMjIDxzcGFuIHN0eWxlID0gImNvbG9yOiByZWQ7Ij4gUHJ1ZWJhcyBkZSBoaXDDs3Rlc2lzICh0IHN0dWRlbnQpIDwvc3Bhbj4NCiFbXShDOlxcVXNlcnNcXFNpbHZhXFxEb2N1bWVudHNcXGN6bi5naWYpDQoNCiMjIyMgRWplcmNpY2lvIDENCg0KYGBge3J9DQpQYWdvcyA9IGMoMTA3LDkyLDk3LDk1LDEwNSwxMDEsOTEsOTksOTUsMTA0KQ0KdSA9IDEwMA0Kc2lnPSAuMTANCg0KeGJhciA9IG1lYW4oUGFnb3MpDQp4YmFyID0gbWVhbihQYWdvcykNCnhiYXINCg0KI0Rlc3ZpYWNpw7NuIGVzdGFuZGFyIG11ZXN0cmFsICgyIHBhc29zKQ0KdmFyaSA9IHZhcihQYWdvcykNClMgPSBzcXJ0KHZhcmkpDQpTDQoNCiNEZXN2aWFjacOzbiBlc3RhbmRhciBtdWVzdHJhbCAoMSBwYXNvKQ0KU3QgPSBzcXJ0KHZhcihQYWdvcykpDQpTdA0KDQojdCBlc3RhZGlzdGljbyANCnQgPSAoeGJhciAtIHUpLyhTL3NxcnQoMTApKQ0KdA0KDQojdCB0YWJsYQ0KdHQgPSAxLjgzDQp0dA0KDQpgYGANCg0KKl9fTm8gc2UgcmVjaGF6YSBsYSBoaXDDs3Rlc2lzIG51bGEgKEgwKV9fKg0KDQojIyMjIEZvcm11bGEgdC50ZXN0IA0KDQpgYGB7cn0NCnRfZXN0YWRpc3RpY28gPSB0LnRlc3QoUGFnb3MsIHkgPSBOVUxMLCBhbHRlcm5hdGl2ZSA9ICJ0d28uc2lkZWQiLCBtdSA9IDEwMCwgcGFpcmVkID0gRkFMU0UsIHZhci5lcXVhbCA9IEZBTFNFLCBjb25mLmxldmVsPTAuOTApDQp0X2VzdGFkaXN0aWNvDQpgYGANCg0KKl9fc2kgcC12YWxvciBlcyBtYXlvciBhbCBncmFkbyBkZSBzaWduaWZpY2FuY2lhLCBubyBzZSByZWNoYXphIGxhIGhpcG90ZXNpcyBudWxhIChIMClfXyoNCg0KIyMjIyBFamVyY2ljaW8gMg0KYGBge3J9DQojVmFyaWFibGVzDQpuPTE4DQptdSA9IDc3LjM4DQp4YiA9IDg3LjYxDQpzZD0gMTkuNDgNCmE9IDAuMDI1DQoNCiMgVCBlc3RhZGlzdGljYSANCnRlc3RhID0gKHhiIC0gbXUpLyhzZC9zcXJ0KG4pKQ0KdGVzdGENCmBgYA0KDQoqKlQgZGUgdGFibGEgZXMgaWd1YWwgKy0gMi4xMSoqICANCipfX1NlIHJlY2hhemEgbGEgSDAsIGxhcyByZW50YXMgZGUgRHJpdmUgYSBMZW1vbiBzb24gbWF5b3JlcyBhIGxhcyBncmFuZGVzIGNhZGVuYXMgbmFjaW9uYWxlc19fKg0KDQojIyMgPHNwYW4gc3R5bGUgPSAiY29sb3I6YnJvd247Ij5BTk9WQSA8L3NwYW4+DQohW10oQzpcXFVzZXJzXFxTaWx2YVxcRG9jdW1lbnRzXFx1bnBhY2tpbmctbW92aW5nLWluLmdpZikNCg0KIyMjIyBFamVyY2ljaW8gMQ0KYGBge3J9DQpyZXNpc3RlbmNpYSA9IHJlYWQuY3N2KCJDOlxcVXNlcnNcXFNpbHZhXFxEb2N1bWVudHNcXEFOT1ZBIE1lemNsYXMuY3N2IikNCnJlc2lzdGVuY2lhJE1lemNsYSA9IGFzLmZhY3RvcihyZXNpc3RlbmNpYSRNZXpjbGEpDQpxZiguOTUsZGYxPTMsZGY9MjApDQphbm92YTEgPSBhb3YoVmFsb3IgfiBNZXpjbGEsIGRhdGEgPSByZXNpc3RlbmNpYSkNCnN1bW1hcnkoYW5vdmExKQ0KYGBgDQoNCiMjIyMgRWplcmNpY2lvIDINCmBgYHtyfQ0KbWVhemNsYSA9IHJlYWQuY3N2KCJDOlxcVXNlcnNcXFNpbHZhXFxEb2N1bWVudHNcXEFOT1ZBIEdyYWRvLmNzdiIpDQptZWF6Y2xhJE1hbmNoYWRvID0gYXMuZmFjdG9yKG1lYXpjbGEkTWFuY2hhZG8pDQpxZiguOTksZGYxPTIsZGY9MTIpDQphbm92YTIgPWFvdihWYWxvciB+IE1hbmNoYWRvLCBkYXRhID0gbWVhemNsYSkNCnN1bW1hcnkoYW5vdmEyKQ0KYGBgDQoNCiMjIyA8c3BhbiBzdHlsZSA9ICJjb2xvcjogZ3JlZW47Ij5SZWdyZXNpw7NuIGxpbmVhbCA8L3NwYW4+DQohW10oQzpcXFVzZXJzXFxTaWx2YVxcRG9jdW1lbnRzXFx0aGlua2luZy1tYXRoLmdpZikgIA0KDQojIyMjIEVqZXJjaWNpbyAxDQpgYGB7cn0NCmEgPSBjKDAuMiwwLjUsMSwyLDMpDQpiID0gYyg4LDEwLDE4LDM1LDYwKQ0KcmVncmVzaW9uXzEgPSBsbShifmEpDQpzdW1tYXJ5KHJlZ3Jlc2lvbl8xKQ0KcGxvdChhLGIscGNoID0xNiAsY2V4ID0gMS4zLCBjb2wgPSAiYmx1ZSIsbWFpbiA9IkVqZXJjaWNpbyAxIikNCmFibGluZShsbShifmEpKQ0KcGxvdChyZWdyZXNpb25fMSkNCmBgYA0KDQojIyMjIEVqZXJjaWNpbyAyDQpgYGB7cn0NCnggPSBjKC02LC0zLDAsMyw2LDksMTIsMTUsMjAsMjUpDQp5ID0gYygyLDIuOCwzLjksNC4yLDUuOCw2LjIsNy41LDguMiw5LjMsMTAuOSkNCnJlZ3Jlc2lvbl8yID0gbG0oeSB+IHgpDQpzdW1tYXJ5KHJlZ3Jlc2lvbl8yKQ0KcGxvdCh4LHkscGNoID0xNiAsY2V4ID0gMS4zLCBjb2wgPSAiYmx1ZSIsbWFpbiA9IkVqZXJjaWNpbyAyIikNCmFibGluZShsbSh5fngpKQ0KcGxvdChyZWdyZXNpb25fMikNCmBgYA0KDQojIyMgPHNwYW4gc3R5bGUgPSAiY29sb3I6IGdvbGQ7Ij4gRWplcmNpY2lvcyBkZWwgbXVuZG8gcmVhbCAgPC9zcGFuPg0KIVtdKEM6XFxVc2Vyc1xcU2lsdmFcXFBpY3R1cmVzXFxTY3JlZW5zaG90c1xcQ2FwdHVyYSBkZSBwYW50YWxsYSAyMDIzLTA1LTI2IDA3MTYyOS5wbmcpICANCg0KKioxMS0yNioqICANClVuIGVzdHVkaW8gY29tcGFyYSBlbCBuw7ptZXJvIGRlIGhvcmFzIGRlIGFsaXZpbyBxdWUgcHJvcG9yY2lvbmFuIGNpbmNvIG1hcmNhcyBkZSBhbnRpw6FjaWRvcyBhZG1pbmlzdHJhZG9zIGEgMjUgcGVyc29uYXMgZGlmZXJlbnRlcywgY2FkYSB1bmEgY29uIGFjaWRleiBlc3RvbWFjYWwgY29uc2lkZXJhZGEgZnVlcnRlLiBMb3MgcmVzdWx0YWRvcyBzb24gbG9zIHNpZ3VpZW50ZXM6ICANCg0KQSB8IEIgfCBDIHwgRCB8IEUNCjotLS0tLS0tLS0tLS0tOiB8IDotLS0tLS0tLS0tLS0tOiB8IDotLS0tLS0tLS0tLS0tOiB8IDotLS0tLS0tLS0tLS0tOiB8IDotLS0tLS0tLS0tLS0tOiANCjQuNCB8IDUuOCB8IDQuOCB8IDIuOSB8IDQuNg0KNC42IHwgNS4yIHwgNS45IHwgMi43IHwgNC4zDQo0LjUgfCA0LjkgfCA0LjkgfCAyLjkgfCAzLjgNCjQuMSB8IDQuNyB8IDQuNiB8IDMuOSB8IDUuMg0KMy44IHwgNC42IHwgNC4zIHwgNC4zIHwgNC40DQoNCmBgYHtyfQ0KI2EpICBDYWxjdWxlIGVsIGNvY2llbnRlIEYuIFBhcmEgdW4gbml2ZWwgZGUgc2lnbmlmaWNhbmNpYSBkZSAwLjA1LCDCv2xhcyBtYXJjYXMgcHJvZHVjZW4gY2FudGlkYWRlcyBzaWduaWZpY2F0aXZhbWVudGUgZGlmZXJlbnRlcyBkZSBhbGl2aW8gYSBsYXMgcGVyc29uYXMgY29uIGFjaWRleiBlc3RvbWFjYWwgZnVlcnRlPw0KYW50aWFjaWRvcyA9IHJlYWQuY3N2KCJDOlxcVXNlcnNcXFNpbHZhXFxEb2N1bWVudHNcXGFudGlhY2lkb3MuY3N2IikNCmFudGlhY2lkb3MkbWFyY2EgPSBhcy5mYWN0b3IoYW50aWFjaWRvcyRtYXJjYSkNCnFmKC45NSxkZjEgPSA0LGRmMj0yMCkNCmFub3ZhMyA9IGFvdihob3JhcyB+IG1hcmNhLCBkYXRhPSBhbnRpYWNpZG9zKQ0Kc3VtbWFyeShhbm92YTMpDQojIFJlY2hhemFtb3MgSDAsIGVsIGFsaXZpbyBkZSBsb3MgYW50aWFjaWRvcyB2YXJpYSBzaWduaWZpY2F0aXZhbWVudGUNCmBgYA0KDQoqKjExLTM4KioNCkVuIGxhIGNpdWRhZCBkZSBWaWxsYWdyYW5kZSwgdW5hIGNhZGVuYSBkZSBjb21pZGEgcsOhcGlkYSBlc3TDoSBhZHF1aXJpZW5kbyB1bmEgbWFsYSByZXB1dGFjacOzbiBkZWJpZG8gYSBxdWUgdGFyZGFuIG11Y2hvIGVuIHNlcnZpcmxlIGEgbG9zIGNsaWVudGVzLiBDb21vIGxhIGNhZGVuYSB0aWVuZSA0IHJlc3RhdXJhbnRlcyBlbiBlc3RhIGNpdWRhZCwgc2UgdGllbmUgbGEgcHJlb2N1cGFjacOzbiBzaSBsb3MgNCByZXN0YXVyYW50ZXMgdGllbmVuIGVsIG1pc21vIHRpZW1wbyBwcm9tZWRpbyBkZSBzZXJ2aWNpby4gVW5vIGRlIGxvcyBkdWXDsW9zIGRlIGxhIGNhZGVuYSBoYSBkZWNpZGlkbyB2aXNpdGFyIGNhZGEgdW5vIGRlIGxvcyBsb2NhbGVzIHkgcmVnaXN0cmFyIGVsIHRpZW1wbyBkZSBzZXJ2aWNpbyBwYXJhIDUgY2xpZW50ZXMgZXNjb2dpZG9zIGFsIGF6YXIuIEVuIHN1cyA0IHZpc2l0YXMgdmVzcGVydGluYXMgcmVnaXN0csOzIGxvcyBzaWd1aWVudGVzIHRpZW1wb3MgZGUgc2VydmljaW8gZW4gbWludXRvczogIA0KDQpSZXN0YXVyYW50ZSAxIHwgUmVzdGF1cmFudGUgMiB8IFJlc3RhdXJhbnRlIDMgfCBSZXN0YXVyYW50ZSA0IA0KOi0tLS0tLS0tLS0tLS06IHwgOi0tLS0tLS0tLS0tLS06IHwgOi0tLS0tLS0tLS0tLS06IHwgOi0tLS0tLS0tLS0tLS06IA0KMyB8IDMgfCAyIHwzIA0KNCB8IDMuNSB8IDMuNSB8IDQNCjUuNSB8IDQuNSB8IDUgfCA1LjUNCjMuNSB8NCB8IDYuNSB8IDIuNQ0KNCB8IDUuNSB8IDYgfCAzIA0KDQpgYGB7cn0NCiMgYSkNCnJlc3RhdXJhbnRlID0gcmVhZC5jc3YoIkM6XFxVc2Vyc1xcU2lsdmFcXERvY3VtZW50c1xccmVzdGF1cmFudGUuY3N2IikNCnJlc3RhdXJhbnRlJHJlc3RhdXJhbnRlID0gYXMuZmFjdG9yKHJlc3RhdXJhbnRlJHJlc3RhdXJhbnRlKQ0KcWYoLjk1LGRmMSA9IDMsZGYyPTE2KQ0KYW5vdmE0ID0gYW92KHRpZW1wbyB+IHJlc3RhdXJhbnRlLCBkYXRhPSByZXN0YXVyYW50ZSkNCnN1bW1hcnkoYW5vdmE0KQ0KI05vIHJlY2hhemFtb3MgSDAsIGxvcyB0aWVtcG9zIG1lZGlvcyBkZSBzZXJ2aWNpbyBubyBzb24gc2lnbmlmaWNhdGl2YW1lbnRlIGRpZmVyZW50ZXMNCg0KIyBiKSANCiMgRGViaWRvIGEgcXVlIG5pbmfDum4gcmVzdGF1cmFudGUgZXMgcGVvciBxdWUgbG9zIG90cm9zLCBjdWFscXVpZXIgcmVjb21lbmRhY2nDs24gdGVuZHLDrWEgcXVlIGhhY2Vyc2UgYSB0b2RvcyBsb3MgYWRtaW5pc3RyYWRvcmVzLg0KYGBgDQoNCioqMTItNjQqKiAgDQpVbiBhcnJlbmRhZG9yIGVzdMOhIGludGVyZXNhZG8gZW4gdmVyIHNpIGxhcyByZW50YXMgZGUgc3VzIGRlcGFydGFtZW50b3Mgc29uIGxhcyB0w61waWNhcy4gUGFyYSBlc3RvIHRvbcOzIHVuYSBtdWVzdHJhIGFsZWF0b3JpYSBkZSAxMSByZW50YXMgeSB0YW1hw7FvcyBkZSBkZXBhcnRhbWVudG9zIGVuIGNvbXBsZWpvcyBkZWMgZGVwYXJ0YW1lbnRvcyBzaW1pbGFyZXMuIExvcyBkYXRvcyBzb24gbG9zIHNpZ3VpZW50ZXM6ICANCg0KUmVudGEgfCBOby4gZGUgUmVjw6FtYXJhcw0KOi0tLS0tLS0tLS0tLS06IHwgOi0tLS0tLS0tLS0tLS06DQoyMzAgfCAyDQoxOTAgfCAxDQo0NTAgfCAzDQozMTAgfCAyDQoyMTggfCAyDQoxODUgfCAyDQozNDAgfCAyDQoyNDUgfCAxDQoxMjUgfCAxDQozNTAgfCAyDQoyODAgfCAyIA0KDQpgYGB7cn0NCnJlbnRhID0gYygyMzAsIDE5MCwgNDUwLCAzMTAsIDIxOCwgMTg1LCAzNDAsIDI0NSwgMTI1LCAzNTAsIDI4MCkNCnJlY2FtYXJhcyA9IGMoMiwgMSwgMywgMiwgMiwgMiwgMiwgMSwgMSwgMiwgMikNCnJlZ3Jlc2lvbl8zID0gbG0ocmVudGEgfiByZWNhbWFyYXMpDQpzdW1tYXJ5KHJlZ3Jlc2lvbl8zKQ0KIyBSZW50YSA9IDU1ICsgMTE1LjkwICogTm8uIFJlY8OhbWFyYXMNCiMgYikgcjIgPSAwLjU3NjINCiMgYykgDQpyZWNhbWFyYXNOID0yDQpyZW50YTE9IDU1ICsgMTE1LjkwKiByZWNhbWFyYXNODQpyZW50YTENCmBgYA0KDQo=