Caso Turismo Sostenible por Equipo 2

library(readxl)
library(MASS)
library(stats)
#file.choose()
Base_caso_turismo <- read_excel("/Users/marianaguevara/Downloads/Base Caso Turismo .xlsx")
## New names:
## • `` -> `...54`
Turismo_Mexico <- read_excel("/Users/marianaguevara/Downloads/Mexico.xlsx")
Turismo_España <- read_excel("/Users/marianaguevara/Downloads/Turismo_España.xlsx")
## New names:
## • `` -> `...60`
View(Base_caso_turismo)

PRUEBAS DE HIPÓTESIS

Hipótesis 1

Q9 <- Base_caso_turismo$Q9

Q9 <- as.numeric(Turismo_España$Q9)

P1 <- sum(Q9 == 1) / length(Q9)

PHp1 <- 0.866

Hipotesis1 <- t.test(Q9, alternative = "two.sided", conf.level = 0.95, mu = PHp1)
Hipotesis1
## 
##  One Sample t-test
## 
## data:  Q9
## t = 22.807, df = 390, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0.866
## 95 percent confidence interval:
##  1.773705 1.944965
## sample estimates:
## mean of x 
##  1.859335
cat("P-value:", Hipotesis1$p.value)
## P-value: 9.039902e-74
if (Hipotesis1$p.value < 0.05) {
  cat("Conclusión: se rechaza la hipotesis")
} else {
  cat("Conclusión: no se rechaza la hipotesis")
}
## Conclusión: se rechaza la hipotesis

Hipótesis 2

PH para una proporción. Casi la mitad de los viajeros en México eligen un destino con la intención de contribuir en la economía de una comunidad local

Hipótesis nula: la proporción de turistas mexicanos que fomento el desarrollo local del destino consumiendo productos y servicios locales es mayor o igual al 50%.

Hipótesis alterna: la proporción de turistas mexicanos que fomento el desarrollo local del destino consumiendo productos y servicios locales es menor al 50%

Q6_4 <- as.numeric(Turismo_Mexico$Q6_4)

P2 <- mean(Q6_4)

PHp2 <- 0.50

Hipotesis2 <- t.test(Q6_4, alternative = "two.sided", conf.level = 0.95, mu = PHp2)
Hipotesis2
## 
##  One Sample t-test
## 
## data:  Q6_4
## t = 61.873, df = 531, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0.5
## 95 percent confidence interval:
##  4.789787 5.071116
## sample estimates:
## mean of x 
##  4.930451
cat("P-value:", Hipotesis2$p.value)
## P-value: 6.528705e-245
if (Hipotesis2$p.value < 0.5) {
  cat("Conclusión: se rechaza la hipotesis")
} else {
  cat("Conclusión: no se rechaza la hipotesis")
}
## Conclusión: se rechaza la hipotesis

Hipótesis 3

PHp para una proporción. El 55% de los encuestados españoles afirman que, si tuvieran la posibilidad, compensarían la huella de carbono en su alojamiento vacacional.

Hipótesis nula: la proporción de turistas españoles que afirman que compensarían la huella de carbono en su alojamiento vacacional es igual al 55%.

Hipótesis alterna: la proporción de turistas españoles que afirman que compensarían la huella de carbono en su alojamiento vacacional es diferente al 55%.

Q6_11 <- as.numeric(Turismo_España$Q6_11)

P3 <- mean(Q6_11)

PHp3 <- 0.55

Hipotesis3 <- t.test(Q6_11, alternative = "two.sided", conf.level = 0.95, mu = PHp3)
Hipotesis3
## 
##  One Sample t-test
## 
## data:  Q6_11
## t = 21.395, df = 400, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0.55
## 95 percent confidence interval:
##  2.346865 2.710492
## sample estimates:
## mean of x 
##  2.528678
cat("P-value:", Hipotesis3$p.value)
## P-value: 2.993515e-68
if (Hipotesis3$p.value < 0.05) {
  cat("Conclusión: se rechaza la hipotesis")
} else {
  cat("Conclusión: no se rechaza la hipotesis")
}
## Conclusión: se rechaza la hipotesis

Hipótesis 4

PHp para las medias de dos poblaciones normales e independientes. Los mexicanos se desplazan principalmente una vez cada seis meses, es decir, realizan dos viajes al año. Para los españoles la media anual es de 3 viajes

Hipótesis nula: la cantidad promedio de viajes que realizan los mexicanos es igual a la cantidad de viajes que realizan los españoles.

Hipótesis alterna: la cantidad promedio de viajes que realizan los mexicanos es diferente a la cantidad de viajes que realizan los españoles.

mex <- Turismo_España$Q7
esp <- Turismo_Mexico$Q7

Hipotesis4 <- t.test(mex, esp)
Hipotesis4
## 
##  Welch Two Sample t-test
## 
## data:  mex and esp
## t = -0.623, df = 690.26, p-value = 0.5335
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.7475747  0.3874304
## sample estimates:
## mean of x mean of y 
##  3.623737  3.803810
P4 <- Hipotesis4$p.value

if (P4 < 0.05) {
  Conclusion4 = "Conclusión: se rechaza la hipotesis"
} else {
  Conclusion4 = "Conclusión: no se rechaza la hipotesis"
}

print(Conclusion4)
## [1] "Conclusión: no se rechaza la hipotesis"

Hipótesis 5

PHp para una media. El rango de edad en el que se encuentran los turistas mexicanos está entre 25 y 34 años.

Hipótesis nula: El rango de edad en el que se encuentran los turistas mexicanos está entre 25 y 34 años.

Hipótesis alterna: El rango de edad en el que se encuentran los turistas mexicanos no está entre 25 y 34 años.

edad <- as.numeric(Turismo_Mexico$Q12)
edad <- edad[!is.na(edad)]

PHp5 <- c(25, 34)
Hipotesis5 <- t.test(edad, mu = mean(PHp5), conf.level = 0.95)
Hipotesis5
## 
##  One Sample t-test
## 
## data:  edad
## t = 13.963, df = 530, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 29.5
## 95 percent confidence interval:
##  39.65389 42.97888
## sample estimates:
## mean of x 
##  41.31638
cat("P-value:", Hipotesis5$p.value)
## P-value: 5.938113e-38
if (Hipotesis5$p.value < 0.5) {
  cat("Conclusión: se rechaza la hipótesis")
} else {
  cat("Conclusión: no se rechaza la hipótesis")
}
## Conclusión: se rechaza la hipótesis

Hipótesis 6

PHp para una media. El rango de edad en el que se encuentran los turistas vascos está entre 15 y 29 años.

Hipótesis nula: El rango de edad en el que se encuentran los turistas vascos está entre 15 y 29 años.

Hipótesis alterna: El rango de edad en el que se encuentran los turistas vascos no está entre 15 y 29 años.

edad <- as.numeric(Turismo_España$Q12)
edad <- edad[!is.na(edad)]

PHp6 <- c(15, 29)
Hipotesis6<- t.test(edad, mu = mean(PHp6), conf.level = 0.95)
Hipotesis6
## 
##  One Sample t-test
## 
## data:  edad
## t = 17.561, df = 399, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 22
## 95 percent confidence interval:
##  35.36519 38.73481
## sample estimates:
## mean of x 
##     37.05
cat("P-value:", Hipotesis6$p.value)
## P-value: 1.467397e-51
if (Hipotesis6$p.value < 0.5) {
  cat("Conclusión: se rechaza la hipótesis")
} else {
  cat("Conclusión: no se rechaza la hipótesis")
}
## Conclusión: se rechaza la hipótesis

Conclusiones

En base a los datos analizados y las hipótesis planteadas y comprobadas, consideramos que sería una buena estrategia de turismo responsable el que las aerolíneas creen paquetes de viajes con todo el transporte incluído y con el menor número de desplazamientos posibles para llegar al destino. Esto debido a que en la encuesta se nota que los turistas uno de los factores más importantes para organizar sus viajes, es el número de desplazamientos. Esto puede comenzar teniendo como destino lugares turísticos no tan comunes como Cancun o Los Cabos, porque son lugares con muchos extranjeros y mejor se podrían enfocar en playas más pequeñas del país o pueblos mágicos para incrementar el consumo local y apoyo a los negocios nacionales. Estos paquetes de transporte incluido podría incluir los vuelos, renta de auto o transporte por autobus, lo que el viajero elija y además se incluiría un itinerario sugerido de todas las actividades y lugares imprescindibles de visitar para adentrarse en la cultura y sentirse como local.

LS0tCnRpdGxlOiAiSGlwb3Rlc2lzIEVRMiIKYXV0aG9yOiAiRXF1aXBvIDIiCmRhdGU6ICIyMDIzLTA5LTAxIgpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogVFJVRQogICAgdG9jX2Zsb2F0OiBUUlVFCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFCi0tLQoKIyA8c3BhbiBzdHlsZSA9ICJjb2xvcjogcHVycGxlOyI+IENhc28gVHVyaXNtbyBTb3N0ZW5pYmxlIHBvciBFcXVpcG8gMjwvc3Bhbj4gCgpgYGB7cn0KbGlicmFyeShyZWFkeGwpCmxpYnJhcnkoTUFTUykKbGlicmFyeShzdGF0cykKI2ZpbGUuY2hvb3NlKCkKQmFzZV9jYXNvX3R1cmlzbW8gPC0gcmVhZF9leGNlbCgiL1VzZXJzL21hcmlhbmFndWV2YXJhL0Rvd25sb2Fkcy9CYXNlIENhc28gVHVyaXNtbyAueGxzeCIpClR1cmlzbW9fTWV4aWNvIDwtIHJlYWRfZXhjZWwoIi9Vc2Vycy9tYXJpYW5hZ3VldmFyYS9Eb3dubG9hZHMvTWV4aWNvLnhsc3giKQpUdXJpc21vX0VzcGHDsWEgPC0gcmVhZF9leGNlbCgiL1VzZXJzL21hcmlhbmFndWV2YXJhL0Rvd25sb2Fkcy9UdXJpc21vX0VzcGFuzINhLnhsc3giKQoKVmlldyhCYXNlX2Nhc29fdHVyaXNtbykKCmBgYAoKCgojIFBSVUVCQVMgREUgSElQw5NURVNJUwoKIyMjIEhpcMOzdGVzaXMgIDEKCmBgYHtyfQpROSA8LSBCYXNlX2Nhc29fdHVyaXNtbyRROQoKUTkgPC0gYXMubnVtZXJpYyhUdXJpc21vX0VzcGHDsWEkUTkpCgpQMSA8LSBzdW0oUTkgPT0gMSkgLyBsZW5ndGgoUTkpCgpQSHAxIDwtIDAuODY2CgpIaXBvdGVzaXMxIDwtIHQudGVzdChROSwgYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIiwgY29uZi5sZXZlbCA9IDAuOTUsIG11ID0gUEhwMSkKSGlwb3Rlc2lzMQpgYGAKCmBgYHtyfQpjYXQoIlAtdmFsdWU6IiwgSGlwb3Rlc2lzMSRwLnZhbHVlKQpgYGAKCmBgYHtyfQppZiAoSGlwb3Rlc2lzMSRwLnZhbHVlIDwgMC4wNSkgewogIGNhdCgiQ29uY2x1c2nDs246IHNlIHJlY2hhemEgbGEgaGlwb3Rlc2lzIikKfSBlbHNlIHsKICBjYXQoIkNvbmNsdXNpw7NuOiBubyBzZSByZWNoYXphIGxhIGhpcG90ZXNpcyIpCn0KYGBgCgoKIyMjIEhpcMOzdGVzaXMgMgojIyMgUEggcGFyYSB1bmEgcHJvcG9yY2nDs24uIENhc2kgbGEgbWl0YWQgZGUgbG9zIHZpYWplcm9zIGVuIE3DqXhpY28gZWxpZ2VuIHVuIGRlc3Rpbm8gY29uIGxhIGludGVuY2nDs24gZGUgY29udHJpYnVpciBlbiBsYSBlY29ub23DrWEgZGUgdW5hIGNvbXVuaWRhZCBsb2NhbAojIyMgSGlww7N0ZXNpcyBudWxhOiBsYSBwcm9wb3JjacOzbiBkZSB0dXJpc3RhcyBtZXhpY2Fub3MgcXVlIGZvbWVudG8gZWwgZGVzYXJyb2xsbyBsb2NhbCBkZWwgZGVzdGlubyBjb25zdW1pZW5kbyBwcm9kdWN0b3MgeSBzZXJ2aWNpb3MgbG9jYWxlcyBlcyBtYXlvciBvIGlndWFsIGFsIDUwJS4KIyMjIEhpcMOzdGVzaXMgYWx0ZXJuYTogbGEgcHJvcG9yY2nDs24gZGUgdHVyaXN0YXMgbWV4aWNhbm9zIHF1ZSBmb21lbnRvIGVsIGRlc2Fycm9sbG8gbG9jYWwgZGVsIGRlc3Rpbm8gY29uc3VtaWVuZG8gcHJvZHVjdG9zIHkgc2VydmljaW9zIGxvY2FsZXMgZXMgbWVub3IgYWwgNTAlCmBgYHtyfQpRNl80IDwtIGFzLm51bWVyaWMoVHVyaXNtb19NZXhpY28kUTZfNCkKClAyIDwtIG1lYW4oUTZfNCkKClBIcDIgPC0gMC41MAoKSGlwb3Rlc2lzMiA8LSB0LnRlc3QoUTZfNCwgYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIiwgY29uZi5sZXZlbCA9IDAuOTUsIG11ID0gUEhwMikKSGlwb3Rlc2lzMgpgYGAKCmBgYHtyfQpjYXQoIlAtdmFsdWU6IiwgSGlwb3Rlc2lzMiRwLnZhbHVlKQpgYGAKCmBgYHtyfQppZiAoSGlwb3Rlc2lzMiRwLnZhbHVlIDwgMC41KSB7CiAgY2F0KCJDb25jbHVzacOzbjogc2UgcmVjaGF6YSBsYSBoaXBvdGVzaXMiKQp9IGVsc2UgewogIGNhdCgiQ29uY2x1c2nDs246IG5vIHNlIHJlY2hhemEgbGEgaGlwb3Rlc2lzIikKfQpgYGAKCgojIyMgSGlww7N0ZXNpcyAzCiMjIyBQSHAgcGFyYSB1bmEgcHJvcG9yY2nDs24uIEVsIDU1JSBkZSBsb3MgZW5jdWVzdGFkb3MgZXNwYcOxb2xlcyBhZmlybWFuIHF1ZSwgc2kgdHV2aWVyYW4gbGEgcG9zaWJpbGlkYWQsIGNvbXBlbnNhcsOtYW4gbGEgaHVlbGxhIGRlIGNhcmJvbm8gZW4gc3UgYWxvamFtaWVudG8gdmFjYWNpb25hbC4KIyMjIEhpcMOzdGVzaXMgbnVsYTogbGEgcHJvcG9yY2nDs24gZGUgdHVyaXN0YXMgZXNwYcOxb2xlcyBxdWUgYWZpcm1hbiBxdWUgY29tcGVuc2Fyw61hbiBsYSBodWVsbGEgZGUgY2FyYm9ubyBlbiBzdSBhbG9qYW1pZW50byB2YWNhY2lvbmFsIGVzIGlndWFsIGFsIDU1JS4KIyMjIEhpcMOzdGVzaXMgYWx0ZXJuYTogbGEgcHJvcG9yY2nDs24gZGUgdHVyaXN0YXMgZXNwYcOxb2xlcyBxdWUgYWZpcm1hbiBxdWUgY29tcGVuc2Fyw61hbiBsYSBodWVsbGEgZGUgY2FyYm9ubyBlbiBzdSBhbG9qYW1pZW50byB2YWNhY2lvbmFsIGVzIGRpZmVyZW50ZSBhbCA1NSUuCgpgYGB7cn0KUTZfMTEgPC0gYXMubnVtZXJpYyhUdXJpc21vX0VzcGHDsWEkUTZfMTEpCgpQMyA8LSBtZWFuKFE2XzExKQoKUEhwMyA8LSAwLjU1CgpIaXBvdGVzaXMzIDwtIHQudGVzdChRNl8xMSwgYWx0ZXJuYXRpdmUgPSAidHdvLnNpZGVkIiwgY29uZi5sZXZlbCA9IDAuOTUsIG11ID0gUEhwMykKSGlwb3Rlc2lzMwpgYGAKCmBgYHtyfQpjYXQoIlAtdmFsdWU6IiwgSGlwb3Rlc2lzMyRwLnZhbHVlKQpgYGAKCmBgYHtyfQppZiAoSGlwb3Rlc2lzMyRwLnZhbHVlIDwgMC4wNSkgewogIGNhdCgiQ29uY2x1c2nDs246IHNlIHJlY2hhemEgbGEgaGlwb3Rlc2lzIikKfSBlbHNlIHsKICBjYXQoIkNvbmNsdXNpw7NuOiBubyBzZSByZWNoYXphIGxhIGhpcG90ZXNpcyIpCn0KYGBgCgoKIyMjIEhpcMOzdGVzaXMgNAojIyMgUEhwIHBhcmEgbGFzIG1lZGlhcyBkZSBkb3MgcG9ibGFjaW9uZXMgbm9ybWFsZXMgZSBpbmRlcGVuZGllbnRlcy4gTG9zIG1leGljYW5vcyBzZSBkZXNwbGF6YW4gcHJpbmNpcGFsbWVudGUgdW5hIHZleiBjYWRhIHNlaXMgbWVzZXMsIGVzIGRlY2lyLCByZWFsaXphbiBkb3MgdmlhamVzIGFsIGHDsW8uIFBhcmEgbG9zIGVzcGHDsW9sZXMgbGEgbWVkaWEgYW51YWwgZXMgZGUgMyB2aWFqZXMKIyMjIEhpcMOzdGVzaXMgbnVsYTogbGEgY2FudGlkYWQgcHJvbWVkaW8gZGUgdmlhamVzIHF1ZSByZWFsaXphbiBsb3MgbWV4aWNhbm9zIGVzIGlndWFsIGEgbGEgY2FudGlkYWQgZGUgdmlhamVzIHF1ZSByZWFsaXphbiBsb3MgZXNwYcOxb2xlcy4KIyMjIEhpcMOzdGVzaXMgYWx0ZXJuYTogbGEgY2FudGlkYWQgcHJvbWVkaW8gZGUgdmlhamVzIHF1ZSByZWFsaXphbiBsb3MgbWV4aWNhbm9zIGVzIGRpZmVyZW50ZSBhIGxhIGNhbnRpZGFkIGRlIHZpYWplcyBxdWUgcmVhbGl6YW4gbG9zIGVzcGHDsW9sZXMuCgpgYGB7cn0KbWV4IDwtIFR1cmlzbW9fRXNwYcOxYSRRNwplc3AgPC0gVHVyaXNtb19NZXhpY28kUTcKCkhpcG90ZXNpczQgPC0gdC50ZXN0KG1leCwgZXNwKQpIaXBvdGVzaXM0CmBgYAoKYGBge3J9ClA0IDwtIEhpcG90ZXNpczQkcC52YWx1ZQoKaWYgKFA0IDwgMC4wNSkgewogIENvbmNsdXNpb240ID0gIkNvbmNsdXNpw7NuOiBzZSByZWNoYXphIGxhIGhpcG90ZXNpcyIKfSBlbHNlIHsKICBDb25jbHVzaW9uNCA9ICJDb25jbHVzacOzbjogbm8gc2UgcmVjaGF6YSBsYSBoaXBvdGVzaXMiCn0KCnByaW50KENvbmNsdXNpb240KQpgYGAKCgojIyMgSGlww7N0ZXNpcyA1CiMjIyBQSHAgcGFyYSB1bmEgbWVkaWEuIEVsIHJhbmdvIGRlIGVkYWQgZW4gZWwgcXVlIHNlIGVuY3VlbnRyYW4gbG9zIHR1cmlzdGFzIG1leGljYW5vcyBlc3TDoSBlbnRyZSAyNSB5IDM0IGHDsW9zLgojIyMgSGlww7N0ZXNpcyBudWxhOiBFbCByYW5nbyBkZSBlZGFkIGVuIGVsIHF1ZSBzZSBlbmN1ZW50cmFuIGxvcyB0dXJpc3RhcyBtZXhpY2Fub3MgZXN0w6EgZW50cmUgMjUgeSAzNCBhw7Fvcy4KIyMjIEhpcMOzdGVzaXMgYWx0ZXJuYTogRWwgcmFuZ28gZGUgZWRhZCBlbiBlbCBxdWUgc2UgZW5jdWVudHJhbiBsb3MgdHVyaXN0YXMgbWV4aWNhbm9zIG5vIGVzdMOhIGVudHJlIDI1IHkgMzQgYcOxb3MuCgpgYGB7cn0KZWRhZCA8LSBhcy5udW1lcmljKFR1cmlzbW9fTWV4aWNvJFExMikKZWRhZCA8LSBlZGFkWyFpcy5uYShlZGFkKV0KClBIcDUgPC0gYygyNSwgMzQpCkhpcG90ZXNpczUgPC0gdC50ZXN0KGVkYWQsIG11ID0gbWVhbihQSHA1KSwgY29uZi5sZXZlbCA9IDAuOTUpCkhpcG90ZXNpczUKYGBgCgpgYGB7cn0KY2F0KCJQLXZhbHVlOiIsIEhpcG90ZXNpczUkcC52YWx1ZSkKYGBgCgpgYGB7cn0KaWYgKEhpcG90ZXNpczUkcC52YWx1ZSA8IDAuNSkgewogIGNhdCgiQ29uY2x1c2nDs246IHNlIHJlY2hhemEgbGEgaGlww7N0ZXNpcyIpCn0gZWxzZSB7CiAgY2F0KCJDb25jbHVzacOzbjogbm8gc2UgcmVjaGF6YSBsYSBoaXDDs3Rlc2lzIikKfQpgYGAKCgojIyMgSGlww7N0ZXNpcyA2CgojIyMgUEhwIHBhcmEgdW5hIG1lZGlhLiBFbCByYW5nbyBkZSBlZGFkIGVuIGVsIHF1ZSBzZSBlbmN1ZW50cmFuIGxvcyB0dXJpc3RhcyB2YXNjb3MgZXN0w6EgZW50cmUgMTUgeSAyOSBhw7Fvcy4KIyMjIEhpcMOzdGVzaXMgbnVsYTogRWwgcmFuZ28gZGUgZWRhZCBlbiBlbCBxdWUgc2UgZW5jdWVudHJhbiBsb3MgdHVyaXN0YXMgdmFzY29zIGVzdMOhIGVudHJlIDE1IHkgMjkgYcOxb3MuCiMjIyBIaXDDs3Rlc2lzIGFsdGVybmE6IEVsIHJhbmdvIGRlIGVkYWQgZW4gZWwgcXVlIHNlIGVuY3VlbnRyYW4gbG9zIHR1cmlzdGFzIHZhc2NvcyBubyBlc3TDoSBlbnRyZSAxNSB5IDI5IGHDsW9zLgoKYGBge3J9CmVkYWQgPC0gYXMubnVtZXJpYyhUdXJpc21vX0VzcGHDsWEkUTEyKQplZGFkIDwtIGVkYWRbIWlzLm5hKGVkYWQpXQoKUEhwNiA8LSBjKDE1LCAyOSkKSGlwb3Rlc2lzNjwtIHQudGVzdChlZGFkLCBtdSA9IG1lYW4oUEhwNiksIGNvbmYubGV2ZWwgPSAwLjk1KQpIaXBvdGVzaXM2CmBgYAoKYGBge3J9CmNhdCgiUC12YWx1ZToiLCBIaXBvdGVzaXM2JHAudmFsdWUpCmBgYAoKYGBge3J9CmlmIChIaXBvdGVzaXM2JHAudmFsdWUgPCAwLjUpIHsKICBjYXQoIkNvbmNsdXNpw7NuOiBzZSByZWNoYXphIGxhIGhpcMOzdGVzaXMiKQp9IGVsc2UgewogIGNhdCgiQ29uY2x1c2nDs246IG5vIHNlIHJlY2hhemEgbGEgaGlww7N0ZXNpcyIpCn0KYGBgCgoKIyBDb25jbHVzaW9uZXMKIyMjIEVuIGJhc2UgYSBsb3MgZGF0b3MgYW5hbGl6YWRvcyB5IGxhcyBoaXDDs3Rlc2lzIHBsYW50ZWFkYXMgeSBjb21wcm9iYWRhcywgY29uc2lkZXJhbW9zIHF1ZSBzZXLDrWEgdW5hIGJ1ZW5hIGVzdHJhdGVnaWEgZGUgdHVyaXNtbyByZXNwb25zYWJsZSBlbCBxdWUgbGFzIGFlcm9sw61uZWFzIGNyZWVuIHBhcXVldGVzIGRlIHZpYWplcyBjb24gdG9kbyBlbCB0cmFuc3BvcnRlIGluY2x1w61kbyB5IGNvbiBlbCBtZW5vciBuw7ptZXJvIGRlIGRlc3BsYXphbWllbnRvcyBwb3NpYmxlcyBwYXJhIGxsZWdhciBhbCBkZXN0aW5vLiBFc3RvIGRlYmlkbyBhIHF1ZSBlbiBsYSBlbmN1ZXN0YSBzZSBub3RhIHF1ZSBsb3MgdHVyaXN0YXMgdW5vIGRlIGxvcyBmYWN0b3JlcyBtw6FzIGltcG9ydGFudGVzIHBhcmEgb3JnYW5pemFyIHN1cyB2aWFqZXMsIGVzIGVsIG7Dum1lcm8gZGUgZGVzcGxhemFtaWVudG9zLiBFc3RvIHB1ZWRlIGNvbWVuemFyIHRlbmllbmRvIGNvbW8gZGVzdGlubyBsdWdhcmVzIHR1csOtc3RpY29zIG5vIHRhbiBjb211bmVzIGNvbW8gQ2FuY3VuIG8gTG9zIENhYm9zLCBwb3JxdWUgc29uIGx1Z2FyZXMgY29uIG11Y2hvcyBleHRyYW5qZXJvcyB5IG1lam9yIHNlIHBvZHLDrWFuIGVuZm9jYXIgZW4gcGxheWFzIG3DoXMgcGVxdWXDsWFzIGRlbCBwYcOtcyBvIHB1ZWJsb3MgbcOhZ2ljb3MgcGFyYSBpbmNyZW1lbnRhciBlbCBjb25zdW1vIGxvY2FsIHkgYXBveW8gYSBsb3MgbmVnb2Npb3MgbmFjaW9uYWxlcy4gRXN0b3MgcGFxdWV0ZXMgZGUgdHJhbnNwb3J0ZSBpbmNsdWlkbyBwb2Ryw61hIGluY2x1aXIgbG9zIHZ1ZWxvcywgcmVudGEgZGUgYXV0byBvIHRyYW5zcG9ydGUgcG9yIGF1dG9idXMsIGxvIHF1ZSBlbCB2aWFqZXJvIGVsaWphIHkgYWRlbcOhcyBzZSBpbmNsdWlyw61hIHVuIGl0aW5lcmFyaW8gc3VnZXJpZG8gZGUgdG9kYXMgbGFzIGFjdGl2aWRhZGVzIHkgbHVnYXJlcyBpbXByZXNjaW5kaWJsZXMgZGUgdmlzaXRhciBwYXJhIGFkZW50cmFyc2UgZW4gbGEgY3VsdHVyYSB5IHNlbnRpcnNlIGNvbW8gbG9jYWwuIAoKCgoK