TEMA 4. T STUDENT

## 8-70

Drive-a-Lemon, renta automóviles en buenas condiciones mecánicas, pero más antiguos que aquellos que rentan las grandes cadenas nacionales de renta de coches. Como resultado, anuncia que sus tarifas son considerablemente más bajas que las de sus grandes competidores. Una encuesta en la industria estableció que el cargo total promedio por renta en una de las mayores compañías es de $77.38 dólares. Una muestra aleatoria de 18 transacciones realizadas por Drive-a- Lemon mostró un cargo total promedio de $87.61, con una desviación estándar de la muestra de $19.48. Verifique que, con un nivel de significancia de 0.025, el cargo total promedio de Drive-a- Lemon es más alto que el de las grandes compañías. ¿Indica este resultado que las tarifas de Drive- a-Lemon, no son más bajas que las de las grandes cadenas nacionales? Justifique su respuesta.

RESPUESTA

PASO 1: plantear hipotesis

H0: μ = xbar H1: μ > xbar

PASO 2. Nivel de confianza y grados de libertad

α = 0.025 GL = 17

PASO 3. Zona de aceptacion/ rechazo

t de tabla = 2.110

PASO 4. Formula

t <- (87.61 - 77.38)/(19.48/sqrt(18))

PASO 5.

Se rechaza H0

RESPUESTA del libro <- t = 2.228 (x = 87.61), tU = 2.110 (xbar = 87.07), de modo que se rechaza la hipótesis nula. Sin embargo, si Drive-a-Lemon no tiene la misma presencia a nivel nacional que las principales cadenas del país, entonces una comparación de sus tasas promedio con el promedio nacional de las grandes cadenas puede conducir a una conclusión errónea.

TEMA 5. ANOVA

Ejercico 1

library(stats)
resistencia <- read.csv("C:\\TEC\\Semestre 6\\Diagnostico para las lineas de accion\\Workshops\\Resistencia.csv")
resistencia$Caja <- as.factor(resistencia$Caja)
qf(.95, df1=3, df2=20)
## [1] 3.098391
# value critico
#nivel de confiabilidad, grados de libertad
anova1 <- aov(Resistencia ~ Caja, data = resistencia)
summary(anova1)
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## Caja         3 127375   42458   25.09 5.53e-07 ***
## Residuals   20  33839    1692                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Ejercico 2

manchado <- read.csv("C:\\TEC\\Semestre 6\\Diagnostico para las lineas de accion\\Workshops\\Grado.csv")
manchado$Mezcla <- as.factor(manchado$Mezcla)
qf(.99,df1 = 2, df2 = 12)
## [1] 6.926608
anova2 <- aov(Grado.de.manchado ~ Mezcla, data = manchado)
summary(anova2)
##             Df Sum Sq Mean Sq F value Pr(>F)
## Mezcla       2 0.0609 0.03043   0.987  0.401
## Residuals   12 0.3701 0.03084

TEMA 6. REGRESION LINEAR

Ejercio 1

x <- c(0.2,0.5,1,2,3)
y <- c(8,10,18,35,60)

regresion <- lm(y~x)
summary(regresion)
## 
## Call:
## lm(formula = y ~ x)
## 
## 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   
## x             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(x,y, pch = 16, cex = 1.3, col = 'blue', main = "Ejercicio 1")
abline(lm(y ~ x))

plot(regresion)

Ejercio 2

a <- c(-6,-3,0,3,6,9,12,15,20,25)
b <- c(2,2.8,3.9,4.2,5.8,6.2,7.5,8.2,9.3,10.9)

regresion2 <- lm(b~a)
summary(regresion2)
## 
## Call:
## lm(formula = b ~ a)
## 
## 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 ***
## a           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(a,b, pch = 16, cex = 1.3, col = 'pink', main = "Ejercicio 2")
abline(lm(b ~ a))

plot(regresion2)

EJERCIOS DEL MUNDO REAL

11-26

En un estudio se compararon los efectos de cuatro promociones mensuales sobre las ventas. A continuación, presentamos las ventas unitarias de 5 tiendas que utilizaron las 4 promociones en meses diferentes:

Al nivel de significancia de 0.01 ¿las promociones producen diferentes efectos sobre las ventas?

library(dplyr)
## Warning: package 'dplyr' was built under R version 4.2.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
promo <- read.csv("C:\\TEC\\Semestre 6\\Diagnostico para las lineas de accion\\Workshops\\promo.csv")

promo <- select(promo, -X, -X.1, -X.2)

promo$Promocion <- as.factor(promo$Promocion)
promo$Tienda <- as.factor(promo$Tienda)

qf(.99, df1 = 3, df2 = 16)
## [1] 5.292214
anova3 <- aov( Venta ~ Promocion + Tienda, data = promo)
summary(anova3)
##             Df Sum Sq Mean Sq F value Pr(>F)   
## Promocion    3  612.1  204.05   9.524 0.0017 **
## Tienda       4   79.7   19.93   0.930 0.4788   
## Residuals   12  257.1   21.43                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Se rechaza H0, las promociones tienen efecto diferente, con una confiabilidad del 99%

Al nivel de significancia de 0.01 ¿las promociones producen diferentes efectos sobre las ventas?

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 de departamentos similares. Los datos son los siguientes:

  1. Desarrolle la ecuación de estimación que mejor describa estos datos.
  2. Calcule el coeficiente de determinación.
  3. Pronostique la renta para un departamento de dos recámaras.
# a) 
 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)

regresion4 <- lm(renta ~ recamaras)
summary(regresion4)
## 
## 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.00 + 115.90*recamaras

# b)
# r2 = 0.5762

# c) 
recamaras2  <- 2
renta2 <- 55.00 +115.90*recamaras2
renta2
## [1] 286.8
# $286.80
LS0tDQp0aXRsZTogIndvcmtzaG9wXzIiDQphdXRob3I6ICJTb2bDrWEgQmFkaWxsbyBQw6lyZXoiDQpkYXRlOiAiMjAyMy0wNS0yMiINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6IA0KICAgIHRvYzogVFJVRQ0KICAgIHRvY19mbG9hdDogVFJVRQ0KICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUNCi0tLQ0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPlRFTUEgNC4gVCBTVFVERU5UPC9zcGFuPg0KDQohW10oQzpcXFRFQ1xcU2VtZXN0cmUgNlxcRGlhZ25vc3RpY28gcGFyYSBsYXMgbGluZWFzIGRlIGFjY2lvblxcV29ya3Nob3BzXFxyZW50YURlQXV0b3MucG5nKQ0KIyMgKio4LTcwKioNCg0KRHJpdmUtYS1MZW1vbiwgcmVudGEgYXV0b23Ds3ZpbGVzIGVuIGJ1ZW5hcyBjb25kaWNpb25lcyBtZWPDoW5pY2FzLCBwZXJvIG3DoXMgYW50aWd1b3MgcXVlDQphcXVlbGxvcyBxdWUgcmVudGFuIGxhcyBncmFuZGVzIGNhZGVuYXMgbmFjaW9uYWxlcyBkZSByZW50YSBkZSBjb2NoZXMuIENvbW8gcmVzdWx0YWRvLCBhbnVuY2lhDQpxdWUgc3VzIHRhcmlmYXMgc29uIGNvbnNpZGVyYWJsZW1lbnRlIG3DoXMgYmFqYXMgcXVlIGxhcyBkZSBzdXMgZ3JhbmRlcyBjb21wZXRpZG9yZXMuIFVuYQ0KZW5jdWVzdGEgZW4gbGEgaW5kdXN0cmlhIGVzdGFibGVjacOzIHF1ZSBlbCBjYXJnbyB0b3RhbCBwcm9tZWRpbyBwb3IgcmVudGEgZW4gdW5hIGRlIGxhcyBtYXlvcmVzDQpjb21wYcOxw61hcyBlcyBkZSAkNzcuMzggZMOzbGFyZXMuIFVuYSBtdWVzdHJhIGFsZWF0b3JpYSBkZSAxOCB0cmFuc2FjY2lvbmVzIHJlYWxpemFkYXMgcG9yIERyaXZlLWEtDQpMZW1vbiBtb3N0csOzIHVuIGNhcmdvIHRvdGFsIHByb21lZGlvIGRlICQ4Ny42MSwgY29uIHVuYSBkZXN2aWFjacOzbiBlc3TDoW5kYXIgZGUgbGEgbXVlc3RyYSBkZQ0KJDE5LjQ4LiBWZXJpZmlxdWUgcXVlLCBjb24gdW4gbml2ZWwgZGUgc2lnbmlmaWNhbmNpYSBkZSAwLjAyNSwgZWwgY2FyZ28gdG90YWwgcHJvbWVkaW8gZGUgRHJpdmUtYS0NCkxlbW9uIGVzIG3DoXMgYWx0byBxdWUgZWwgZGUgbGFzIGdyYW5kZXMgY29tcGHDscOtYXMuIMK/SW5kaWNhIGVzdGUgcmVzdWx0YWRvIHF1ZSBsYXMgdGFyaWZhcyBkZSBEcml2ZS0NCmEtTGVtb24sIG5vIHNvbiBtw6FzIGJhamFzIHF1ZSBsYXMgZGUgbGFzIGdyYW5kZXMgY2FkZW5hcyBuYWNpb25hbGVzPyBKdXN0aWZpcXVlIHN1IHJlc3B1ZXN0YS4NCg0KUkVTUFVFU1RBDQoNCiMjIyBQQVNPIDE6IHBsYW50ZWFyIGhpcG90ZXNpcw0KSDA6IM68ID0geGJhcg0KSDE6IM68ID4geGJhciANCg0KIyMjIFBBU08gMi4gTml2ZWwgZGUgY29uZmlhbnphIHkgZ3JhZG9zIGRlIGxpYmVydGFkDQrOsSA9IDAuMDI1IA0KR0wgPSAxNyANCg0KIyMjIFBBU08gMy4gWm9uYSBkZSBhY2VwdGFjaW9uLyByZWNoYXpvIA0KdCBkZSB0YWJsYSA9IDIuMTEwDQoNCiMjIyBQQVNPIDQuIEZvcm11bGENCmBgYHtyfQ0KdCA8LSAoODcuNjEgLSA3Ny4zOCkvKDE5LjQ4L3NxcnQoMTgpKQ0KYGBgDQogDQojIyMgUEFTTyA1LiANClNlIHJlY2hhemEgSDAgDQogDQpSRVNQVUVTVEEgZGVsIGxpYnJvIDwtIHQgPSAyLjIyOCAoeCA9IDg3LjYxKSwgdFUgPSAyLjExMCAoeGJhciA9IDg3LjA3KSwgZGUgbW9kbyBxdWUgc2UgcmVjaGF6YSBsYSBoaXDDs3Rlc2lzIG51bGEuIFNpbiBlbWJhcmdvLA0Kc2kgRHJpdmUtYS1MZW1vbiBubyB0aWVuZSBsYSBtaXNtYSBwcmVzZW5jaWEgYSBuaXZlbCBuYWNpb25hbCBxdWUgbGFzIHByaW5jaXBhbGVzIGNhZGVuYXMgZGVsIHBhw61zLCBlbnRvbmNlcyB1bmEgY29tcGFyYWNpw7NuIGRlIHN1cyB0YXNhcyBwcm9tZWRpbyBjb24gZWwgcHJvbWVkaW8gbmFjaW9uYWwgZGUgbGFzIGdyYW5kZXMgY2FkZW5hcyBwdWVkZQ0KY29uZHVjaXIgYSB1bmEgY29uY2x1c2nDs24gZXJyw7NuZWEuDQoNCmBgYHtyIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9DQpwYWdvcyA8LSBjKDEwNywgOTIsIDk3LCA5NSwgMTA1LCAxMDEsIDkxLCA5OSwgOTUsIDEwNCkNCg0KIyBYLCBZKHNlZ3VuZGEgbXVlc3RyYSksIA0KdC50ZXN0KHBhZ29zLCB5PU5VTEwsYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIiwgbXU9IDEwMCwgcGFpcmVkID0gRkFMU0UsIHZhci5lcXVhbCA9IEZBTFNFLCBjb25mLmxldmVsID0gMC45MCApDQoNCiMgc2kgZXMgZGUgdW5hIGNvbGEsIGFsdGVybmF0aXZlIHB1ZWRlIHNlcjogImxlc3MiIG8gImdyZWF0ZXIiDQojIHByb21lZGlvIHBvYmxhY2lvbmFsIA0KIyBwYXJpYWRvLCBlcyBjdWFuZG8gc2UgdGllbmUgZG9zIG11ZXN0cmFzLCBwZXJvIGRlIGxvcyBtaXNtb3Mgb2JqZXRvcw0KDQojIHNpIHAgdmFsdWUgZXMgbWF5b3IgYWwgbml2ZWwgZGUgc2lnbmlmaWNhbmNpYSBubyBzZSByZWNoYXphIEhvDQoNCiMgZWwgcCB2YWx1ZSB0aWVuZSBxdWUgc2VyIG1heW9yIGFsIG5pdmVsIGRlIHNpZ25pZmljYW5jaWEgcGFyYSByZWNoYXphciBIMA0KDQojIGNvbmNsdXNpb24gbm8gc2UgcmVjaGF6YSBIMA0KIyBpbnRlcnZhbG8gZGUgY29uZmlhbnphOiBlbnRyZSA5NSB5IDEwMSBkb2xhcmVzIA0KDQpgYGANCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5URU1BIDUuIEFOT1ZBPC9zcGFuPg0KIVtdKEM6XFxURUNcXFNlbWVzdHJlIDZcXERpYWdub3N0aWNvIHBhcmEgbGFzIGxpbmVhcyBkZSBhY2Npb25cXFdvcmtzaG9wc1xcY2FqYXMtYXBpbGFkYXMtMzg5OTc0ODYuanBnKQ0KDQojIyBFamVyY2ljbyAxDQpgYGB7cn0NCmxpYnJhcnkoc3RhdHMpDQpyZXNpc3RlbmNpYSA8LSByZWFkLmNzdigiQzpcXFRFQ1xcU2VtZXN0cmUgNlxcRGlhZ25vc3RpY28gcGFyYSBsYXMgbGluZWFzIGRlIGFjY2lvblxcV29ya3Nob3BzXFxSZXNpc3RlbmNpYS5jc3YiKQ0KcmVzaXN0ZW5jaWEkQ2FqYSA8LSBhcy5mYWN0b3IocmVzaXN0ZW5jaWEkQ2FqYSkNCnFmKC45NSwgZGYxPTMsIGRmMj0yMCkNCiMgdmFsdWUgY3JpdGljbw0KI25pdmVsIGRlIGNvbmZpYWJpbGlkYWQsIGdyYWRvcyBkZSBsaWJlcnRhZA0KYW5vdmExIDwtIGFvdihSZXNpc3RlbmNpYSB+IENhamEsIGRhdGEgPSByZXNpc3RlbmNpYSkNCnN1bW1hcnkoYW5vdmExKQ0KYGBgDQoNCiMjIEVqZXJjaWNvIDINCmBgYHtyfQ0KbWFuY2hhZG8gPC0gcmVhZC5jc3YoIkM6XFxURUNcXFNlbWVzdHJlIDZcXERpYWdub3N0aWNvIHBhcmEgbGFzIGxpbmVhcyBkZSBhY2Npb25cXFdvcmtzaG9wc1xcR3JhZG8uY3N2IikNCm1hbmNoYWRvJE1lemNsYSA8LSBhcy5mYWN0b3IobWFuY2hhZG8kTWV6Y2xhKQ0KcWYoLjk5LGRmMSA9IDIsIGRmMiA9IDEyKQ0KYW5vdmEyIDwtIGFvdihHcmFkby5kZS5tYW5jaGFkbyB+IE1lemNsYSwgZGF0YSA9IG1hbmNoYWRvKQ0Kc3VtbWFyeShhbm92YTIpDQpgYGANCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5URU1BIDYuIFJFR1JFU0lPTiBMSU5FQVI8L3NwYW4+DQoNCiFbXShDOlxcVEVDXFxTZW1lc3RyZSA2XFxEaWFnbm9zdGljbyBwYXJhIGxhcyBsaW5lYXMgZGUgYWNjaW9uXFxXb3Jrc2hvcHNcXERJTk9TQVVSSU8uanBlZykNCg0KIyMgRWplcmNpbyAxDQpgYGB7cn0NCnggPC0gYygwLjIsMC41LDEsMiwzKQ0KeSA8LSBjKDgsMTAsMTgsMzUsNjApDQoNCnJlZ3Jlc2lvbiA8LSBsbSh5fngpDQpzdW1tYXJ5KHJlZ3Jlc2lvbikNCg0KcGxvdCh4LHksIHBjaCA9IDE2LCBjZXggPSAxLjMsIGNvbCA9ICdibHVlJywgbWFpbiA9ICJFamVyY2ljaW8gMSIpDQphYmxpbmUobG0oeSB+IHgpKQ0KcGxvdChyZWdyZXNpb24pDQpgYGANCg0KIyMgRWplcmNpbyAyDQpgYGB7cn0NCmEgPC0gYygtNiwtMywwLDMsNiw5LDEyLDE1LDIwLDI1KQ0KYiA8LSBjKDIsMi44LDMuOSw0LjIsNS44LDYuMiw3LjUsOC4yLDkuMywxMC45KQ0KDQpyZWdyZXNpb24yIDwtIGxtKGJ+YSkNCnN1bW1hcnkocmVncmVzaW9uMikNCnBsb3QoYSxiLCBwY2ggPSAxNiwgY2V4ID0gMS4zLCBjb2wgPSAncGluaycsIG1haW4gPSAiRWplcmNpY2lvIDIiKQ0KYWJsaW5lKGxtKGIgfiBhKSkNCnBsb3QocmVncmVzaW9uMikNCmBgYA0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPkVKRVJDSU9TIERFTCBNVU5ETyBSRUFMPC9zcGFuPg0KIyMgMTEtMjYNCkVuIHVuIGVzdHVkaW8gc2UgY29tcGFyYXJvbiBsb3MgZWZlY3RvcyBkZSBjdWF0cm8gcHJvbW9jaW9uZXMgbWVuc3VhbGVzIHNvYnJlIGxhcyB2ZW50YXMuIEEgY29udGludWFjacOzbiwgcHJlc2VudGFtb3MgbGFzIHZlbnRhcyB1bml0YXJpYXMgZGUgNSB0aWVuZGFzIHF1ZSB1dGlsaXphcm9uIGxhcyA0IHByb21vY2lvbmVzIGVuIG1lc2VzIGRpZmVyZW50ZXM6DQoNCg0KIVtdKEM6XFxURUNcXFNlbWVzdHJlIDZcXERpYWdub3N0aWNvIHBhcmEgbGFzIGxpbmVhcyBkZSBhY2Npb25cXFdvcmtzaG9wc1xcQ2FwdHVyYSBkZSBwYW50YWxsYSAyMDIzLTA1LTI0IDEzMTU0NS5wbmcpIA0KDQpBbCBuaXZlbCBkZSBzaWduaWZpY2FuY2lhIGRlIDAuMDEgwr9sYXMgcHJvbW9jaW9uZXMgcHJvZHVjZW4gZGlmZXJlbnRlcyBlZmVjdG9zIHNvYnJlIGxhcyB2ZW50YXM/DQoNCmBgYHtyfQ0KbGlicmFyeShkcGx5cikNCnByb21vIDwtIHJlYWQuY3N2KCJDOlxcVEVDXFxTZW1lc3RyZSA2XFxEaWFnbm9zdGljbyBwYXJhIGxhcyBsaW5lYXMgZGUgYWNjaW9uXFxXb3Jrc2hvcHNcXHByb21vLmNzdiIpDQoNCnByb21vIDwtIHNlbGVjdChwcm9tbywgLVgsIC1YLjEsIC1YLjIpDQoNCnByb21vJFByb21vY2lvbiA8LSBhcy5mYWN0b3IocHJvbW8kUHJvbW9jaW9uKQ0KcHJvbW8kVGllbmRhIDwtIGFzLmZhY3Rvcihwcm9tbyRUaWVuZGEpDQoNCnFmKC45OSwgZGYxID0gMywgZGYyID0gMTYpDQphbm92YTMgPC0gYW92KCBWZW50YSB+IFByb21vY2lvbiArIFRpZW5kYSwgZGF0YSA9IHByb21vKQ0Kc3VtbWFyeShhbm92YTMpDQpgYGANClNlIHJlY2hhemEgSDAsIGxhcyBwcm9tb2Npb25lcyB0aWVuZW4gZWZlY3RvIGRpZmVyZW50ZSwgY29uIHVuYSBjb25maWFiaWxpZGFkIGRlbCA5OSUNCg0KQWwgbml2ZWwgZGUgc2lnbmlmaWNhbmNpYSBkZSAwLjAxIMK/bGFzIHByb21vY2lvbmVzIHByb2R1Y2VuIGRpZmVyZW50ZXMgZWZlY3RvcyBzb2JyZSBsYXMgdmVudGFzPw0KDQojIyAxMi02NA0KVW4gYXJyZW5kYWRvciBlc3TDoSBpbnRlcmVzYWRvIGVuIHZlciBzaSBsYXMgcmVudGFzIGRlIHN1cyBkZXBhcnRhbWVudG9zIHNvbiBsYXMgdMOtcGljYXMuIFBhcmEgZXN0byB0b23DsyB1bmEgbXVlc3RyYSBhbGVhdG9yaWEgZGUgMTEgcmVudGFzIHkgdGFtYcOxb3MgZGUgZGVwYXJ0YW1lbnRvcyBlbiBjb21wbGVqb3MgZGUgZGVwYXJ0YW1lbnRvcyBzaW1pbGFyZXMuIExvcyBkYXRvcyBzb24gbG9zIHNpZ3VpZW50ZXM6DQoNCiFbXShDOlxURUNcU2VtZXN0cmUgNlxEaWFnbm9zdGljbyBwYXJhIGxhcyBsaW5lYXMgZGUgYWNjaW9uXFdvcmtzaG9wc1xlamVyY2ljaW8xMl82NC5wbmcpDQoNCmEpIERlc2Fycm9sbGUgbGEgZWN1YWNpw7NuIGRlIGVzdGltYWNpw7NuIHF1ZSBtZWpvciBkZXNjcmliYSBlc3RvcyBkYXRvcy4NCmIpIENhbGN1bGUgZWwgY29lZmljaWVudGUgZGUgZGV0ZXJtaW5hY2nDs24uDQpjKSBQcm9ub3N0aXF1ZSBsYSByZW50YSBwYXJhIHVuIGRlcGFydGFtZW50byBkZSBkb3MgcmVjw6FtYXJhcy4NCmBgYHtyfQ0KIyBhKSANCiByZW50YSA8LSBjKDIzMCwxOTAsIDQ1MCwgMzEwLCAyMTgsIDE4NSwgMzQwLCAyNDUsIDEyNSwgMzUwLCAyODApDQpyZWNhbWFyYXMgPC0gYygyLDEsMywyLDIsMiwyLDEsMSwyLDIpDQoNCnJlZ3Jlc2lvbjQgPC0gbG0ocmVudGEgfiByZWNhbWFyYXMpDQpzdW1tYXJ5KHJlZ3Jlc2lvbjQpDQoNCiMgcmVudGEgPSA1NS4wMCArIDExNS45MCpyZWNhbWFyYXMNCg0KIyBiKQ0KIyByMiA9IDAuNTc2Mg0KDQojIGMpIA0KcmVjYW1hcmFzMiAgPC0gMg0KcmVudGEyIDwtIDU1LjAwICsxMTUuOTAqcmVjYW1hcmFzMg0KcmVudGEyDQojICQyODYuODANCmBgYA0KDQo=