
Instalar paquetes y llamar librerias
#install.packages ("gtrendsR")
library (tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6 ✔ purrr 0.3.4
## ✔ tibble 3.1.8 ✔ dplyr 1.0.10
## ✔ tidyr 1.2.1 ✔ stringr 1.4.1
## ✔ readr 2.1.2 ✔ forcats 0.5.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
library(gtrendsR)
#Para resolver errores al graficar
#devtools::install_github("PMassicotte/gtrendsR)
#1
Herramienta el generador de valor de
datos
Paso 1. Definir el area del negocio que buscamos impactar o
mejorar y su KPI
El departamento de marketing de Marvel en el indicador de
streaming
Paso 2. Seleccionar plantilla (-s) para crear valor a partir
de los datos de los clientes
Visión / Segmentación / Personalización /
Contextualización
Paso 3. Generar ideas o conceptos especificos
Elaborar graficas de tendencias sobre el entretenimiento de
Marvel
Paso 4. Reunir los datos requeridos
Elaborar una gráfica de tendencia con las búsquedas a través del
tiempo de Marvel y su contenido
Paso 5. Plan de ejecucion
Marketing elaborará un plan de reposicionamiento del contenido de
streaming de Marvel
Sistemas asegurará la captura del markdown en las bases de datos
Marvel
Paso 1. Definir el término a buscar
termino <- c("marvel")
Paso 2. Definir la locación (ISO 2 country code)
ubicacion <- c("MX")
Paso 3. Definir el canal: web, news, images, youtube
canal <- "web"
Paso 4. Definir la ventana de tiempo
periodo <- ("2010-01-01 2022-09-01")
Paso 5. Función
tendencia <- gtrends(termino, ubicacion, canal, time = periodo)
plot(tendencia)

Spiderman
Paso 1. Definir el término a buscar
termino2 <- c("spiderman")
Paso 2. Definir la locación (ISO 2 country code)
ubicacion2 <- c("MX")
Paso 3. Definir el canal: web, news, images, youtube
canal2 <- "web"
Paso 4. Definir la ventana de tiempo
periodo2 <- ("2010-01-01 2022-09-01")
Paso 5. Función
tendencia2 <- gtrends(termino2, ubicacion2, canal2, time = periodo2)
plot(tendencia2)

Ironman
Paso 1. Definir el término a buscar
termino3 <- c("ironman")
Paso 2. Definir la locación (ISO 2 country code)
ubicacion3 <- c("MX")
Paso 3. Definir el canal: web, news, images, youtube
canal3 <- "web"
Paso 4. Definir la ventana de tiempo
periodo3 <- ("2010-01-01 2022-09-01")
Paso 5. Función
tendencia3 <- gtrends(termino3, ubicacion3, canal3, time = periodo3)
plot(tendencia3)

Conclusiones
A través de esta herramienta, creamos gráficas de búsqueda sobre el
tiempo, con ayuda de las librerias de Google Trends en la nube, en donde
optimizamos terminos que tuvieran relevancia diferente durante el
periodo de tiempo determinado.
En este caso, gracias al programa R, se evalúo a la casa de
entrenimiento Marvel y su contenido como los principales personajes
(Spiderman, Ironman) para evaluar el impacto que han
tenido como peliculas y/o contenido de entretenimiento a través del
tiempo, demostrando que, en el caso de Spiderman tuvó un repunte en 2021
debido a la tercer película de la saga donde aparecen todos los actores
que han intepretado al personaje a lo largo de la historia; mientras que
en el caso de Ironman, tuvo su lanzamiento en 2010, pero ha disminuido
su busqueda con el tiempo.
El departamento de marketing deberá evaluar dichos resultados para
comenzar el plan de reposicionamiento del contenido de
streaming y validar sobre la interacción de los personajes.
John Deere

Herramienta el generador de valor de
datos
Paso 1. Definir el area del negocio que buscamos impactar o
mejorar y su KPI
El departamento de marketing de John Deere en el indicador de
awareness
Paso 2. Seleccionar plantilla (-s) para crear valor a partir
de los datos de los clientes
Visión / Segmentación / Personalización /
Contextualización
Paso 3. Generar ideas o conceptos especificos
Elaborar graficas de tendencias sobre la busqueda de John Deere y
productos
Paso 4. Reunir los datos requeridos
Elaborar una gráfica de tendencia con las búsquedas a través del
tiempo de John Deere y sus productos
Paso 5. Plan de ejecucion
Marketing elaborará un plan de awareness de los productos de John
Deere
Sistemas asegurará la captura del markdown en las bases de datos
Graficos
John Deere
Paso 1. Definir el término a buscar
termino4 <- c("John Deere")
Paso 2. Definir la locación (ISO 2 country code)
ubicacion4 <- c("MX")
Paso 3. Definir el canal: web, news, images, youtube
canal4 <- "web"
Paso 4. Definir la ventana de tiempo
periodo4 <- ("2010-01-01 2022-09-01")
Paso 5. Función
tendencia4 <- gtrends(termino4, ubicacion4, canal4, time = periodo4)
plot(tendencia4)

Tractores
Paso 1. Definir el término a buscar
termino5 <- c("tractores")
Paso 2. Definir la locación (ISO 2 country code)
ubicacion5 <- c("MX")
Paso 3. Definir el canal: web, news, images, youtube
canal5 <- "web"
Paso 4. Definir la ventana de tiempo
periodo5 <- ("2010-01-01 2022-09-01")
Paso 5. Función
tendencia5 <- gtrends (termino5, ubicacion5, canal5, time = periodo5)
plot(tendencia5)

Agricultura
Paso 1. Definir el término a buscar
termino6 <- c("agricultura")
Paso 2. Definir la locación (ISO 2 country code)
ubicacion6 <- c("MX")
Paso 3. Definir el canal: web, news, images, youtube
canal6 <- "web"
Paso 4. Definir la ventana de tiempo
periodo6 <- ("2010-01-01 2022-09-01")
Paso 5. Función
tendencia6 <- gtrends (termino6, ubicacion6, canal6, time = periodo6)
plot(tendencia6)

Conclusiones
En este caso, gracias al programa R, se evalúo a la empresa
especializada en maquinas de traccion John Deere y sus
principales activos, como productos Tractores y el
enfoque de su industria Agricultura, para evaluar el
awareness que ha tenido a lo largo del tiempo, demostrando que, el
termino de tractores ha perdidio relevancia con el tiempo, sin embargo.
la empresa de John Deere ha ganado menciones en la web, mientras que
agricultura se ha mantenido en una constante estabilidad.
De esta forma, el departamento de marketing deberá evaluar dichos
resultados para mantener el plan de awareness y
consolidar el engagement de la empresa con sus clientes potenciales.
Oxxo

Herramienta el generador de valor de
datos
Paso 1. Definir el area del negocio que buscamos impactar o
mejorar y su KPI
El departamento de marketing de Oxxo Premia en el indicador de
awareness
Paso 2. Seleccionar plantilla (-s) para crear valor a partir
de los datos de los clientes
Visión / Segmentación / Personalización /
Contextualización
Paso 3. Generar ideas o conceptos especificos
Elaborar graficas de tendencias sobre la busqueda de Oxxo y sus
aplicaciones
Paso 4. Reunir los datos requeridos
Elaborar una gráfica de tendencia con las búsquedas a través del
tiempo de Oxxo y sus aplicaciones
Paso 5. Plan de ejecucion
Marketing elaborará un plan de awareness de la aplicacion Oxxo
Premia
Sistemas asegurará la captura del markdown en las bases de datos
Oxxo
Paso 1. Definir el término a buscar
termino7 <- c("Oxxo")
Paso 2. Definir la locación (ISO 2 country code)
ubicacion7 <- c("MX")
Paso 3. Definir el canal: web, news, images, youtube
canal7 <- "web"
Paso 4. Definir la ventana de tiempo
periodo7 <- ("2010-01-01 2022-09-01")
Paso 5. Función
tendencia7 <- gtrends(termino7, ubicacion7, canal7, time = periodo7)
plot(tendencia7)

Conveniencia
Paso 1. Definir el término a buscar
termino8 <- c("conveniencia")
Paso 2. Definir la locación (ISO 2 country code)
ubicacion8 <- c("MX")
Paso 3. Definir el canal: web, news, images, youtube
canal8 <- "web"
Paso 4. Definir la ventana de tiempo
periodo8 <- ("2010-01-01 2022-09-01")
Paso 5. Función
tendencia8 <- gtrends(termino8, ubicacion8, canal8, time = periodo8)
plot(tendencia8)

Premios
Paso 1. Definir el término a buscar
termino9 <- c("Premios")
Paso 2. Definir la locación (ISO 2 country code)
ubicacion9 <- c("MX")
Paso 3. Definir el canal: web, news, images, youtube
canal9 <- "web"
Paso 4. Definir la ventana de tiempo
periodo9 <- ("2010-01-01 2022-09-01")
Paso 5. Función
tendencia9 <- gtrends(termino9, ubicacion9, canal9, time = periodo9)
plot(tendencia9)

Conclusiones
En este caso, gracias al programa R, se evalúo a la empresa
especializada en tiendas de conveniencia Oxxo y sus
principales activos, como productos de abarrotes, para evaluar el
awareness que ha tenido en su reciente aplicacion de Oxxo Premia,
demostrando que, el termino de oxxo ha ganado mayor relevancia con el
tiempo. De esta forma, el departamento de marketing deberá evaluar
dichos resultados para mantener el plan de awareness y
consolidar el engagement de la empresa con sus clientes potenciales.
LS0tCnRpdGxlOiA8c3BhbiBzdHlsZT0iQ29sb3I6cmVkIj4gR2xvYmFsIFRyZW5kcwphdXRob3I6ICJLYXJlbiBOZXJpIC0gQTAxNjU3OTc0IgpkYXRlOiAiMjAyMi0wOS0wNyIKb3V0cHV0OiAKIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IHRydWUKICAgIHRvY19mbG9hdDogdHJ1ZQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQotLS0KIVtdKGh0dHBzOi8vcGhhbnRvbS1tYXJjYS51bmlkYWRlZGl0b3JpYWwuZXMvMzQxYmJlYWRlZDA5OTZlZWViNjU3OGFlMjRhMTE4MGQvcmVzaXplLzEzMjAvZi9qcGcvYXNzZXRzL211bHRpbWVkaWEvaW1hZ2VuZXMvMjAyMi8wMy8xMy8xNjQ3MTYzNzE1OTk2My5qcGcpe3dpZHRoPSc2MDBweCd9CgojIyA8c3BhbiBzdHlsZT0iQ29sb3I6cmVkIj4gSW5zdGFsYXIgcGFxdWV0ZXMgeSBsbGFtYXIgbGlicmVyaWFzCmBgYHtyfQojaW5zdGFsbC5wYWNrYWdlcyAoImd0cmVuZHNSIikKbGlicmFyeSAodGlkeXZlcnNlKQpsaWJyYXJ5KGd0cmVuZHNSKQoKI1BhcmEgcmVzb2x2ZXIgZXJyb3JlcyBhbCBncmFmaWNhcgojZGV2dG9vbHM6Omluc3RhbGxfZ2l0aHViKCJQTWFzc2ljb3R0ZS9ndHJlbmRzUikKIzEKYGBgCgojIyA8c3BhbiBzdHlsZT0iQ29sb3I6cmVkIj4gSGVycmFtaWVudGEgZWwgZ2VuZXJhZG9yIGRlIHZhbG9yIGRlIGRhdG9zIAoKKipQYXNvIDEuIERlZmluaXIgZWwgYXJlYSBkZWwgbmVnb2NpbyBxdWUgYnVzY2Ftb3MgaW1wYWN0YXIgbyBtZWpvcmFyIHkgc3UgS1BJKioKCkVsIGRlcGFydGFtZW50byBkZSBtYXJrZXRpbmcgZGUgTWFydmVsIGVuIGVsIGluZGljYWRvciBkZSBzdHJlYW1pbmcKCioqUGFzbyAyLiBTZWxlY2Npb25hciBwbGFudGlsbGEgKC1zKSBwYXJhIGNyZWFyIHZhbG9yIGEgcGFydGlyIGRlIGxvcyBkYXRvcyBkZSBsb3MgY2xpZW50ZXMqKgoKVmlzacOzbiAvIFNlZ21lbnRhY2nDs24gLyBQZXJzb25hbGl6YWNpw7NuIC8gKipDb250ZXh0dWFsaXphY2nDs24qKiAKCioqUGFzbyAzLiBHZW5lcmFyIGlkZWFzIG8gY29uY2VwdG9zIGVzcGVjaWZpY29zKioKCkVsYWJvcmFyIGdyYWZpY2FzIGRlIHRlbmRlbmNpYXMgc29icmUgZWwgZW50cmV0ZW5pbWllbnRvIGRlIE1hcnZlbCAKCioqUGFzbyA0LiBSZXVuaXIgbG9zIGRhdG9zIHJlcXVlcmlkb3MgKioKCkVsYWJvcmFyIHVuYSBncsOhZmljYSBkZSB0ZW5kZW5jaWEgY29uIGxhcyBiw7pzcXVlZGFzIGEgdHJhdsOpcyBkZWwgdGllbXBvIGRlIE1hcnZlbCB5IHN1IGNvbnRlbmlkbwoKKipQYXNvIDUuIFBsYW4gZGUgZWplY3VjaW9uICoqCgpNYXJrZXRpbmcgZWxhYm9yYXLDoSB1biBwbGFuIGRlIHJlcG9zaWNpb25hbWllbnRvIGRlbCBjb250ZW5pZG8gZGUgc3RyZWFtaW5nIGRlIE1hcnZlbCAKClNpc3RlbWFzIGFzZWd1cmFyw6EgbGEgY2FwdHVyYSBkZWwgbWFya2Rvd24gZW4gbGFzIGJhc2VzIGRlIGRhdG9zIAoKCiMjIDxzcGFuIHN0eWxlPSJDb2xvcjpyZWQiPiBNYXJ2ZWwKIyMjIFBhc28gMS4gRGVmaW5pciBlbCB0w6lybWlubyBhIGJ1c2NhciAKYGBge3J9CnRlcm1pbm8gPC0gYygibWFydmVsIikKYGBgCgojIyMgUGFzbyAyLiBEZWZpbmlyIGxhIGxvY2FjacOzbiAoSVNPIDIgY291bnRyeSBjb2RlKQpgYGB7cn0KdWJpY2FjaW9uIDwtIGMoIk1YIikKYGBgCgojIyMgUGFzbyAzLiBEZWZpbmlyIGVsIGNhbmFsOiB3ZWIsIG5ld3MsIGltYWdlcywgeW91dHViZSAKYGBge3J9CmNhbmFsIDwtICJ3ZWIiCmBgYAoKIyMjIFBhc28gNC4gRGVmaW5pciBsYSB2ZW50YW5hIGRlIHRpZW1wbyAKYGBge3J9CnBlcmlvZG8gPC0gKCIyMDEwLTAxLTAxIDIwMjItMDktMDEiKQpgYGAKCiMjIyBQYXNvIDUuIEZ1bmNpw7NuIApgYGB7cn0KdGVuZGVuY2lhIDwtIGd0cmVuZHModGVybWlubywgdWJpY2FjaW9uLCBjYW5hbCwgdGltZSA9IHBlcmlvZG8pCnBsb3QodGVuZGVuY2lhKQpgYGAKCiMjIDxzcGFuIHN0eWxlPSJDb2xvcjpyZWQiPiBTcGlkZXJtYW4KCiMjIyBQYXNvIDEuIERlZmluaXIgZWwgdMOpcm1pbm8gYSBidXNjYXIgCmBgYHtyfQp0ZXJtaW5vMiA8LSBjKCJzcGlkZXJtYW4iKQpgYGAKCiMjIyBQYXNvIDIuIERlZmluaXIgbGEgbG9jYWNpw7NuIChJU08gMiBjb3VudHJ5IGNvZGUpCmBgYHtyfQp1YmljYWNpb24yIDwtIGMoIk1YIikKYGBgCgojIyMgUGFzbyAzLiBEZWZpbmlyIGVsIGNhbmFsOiB3ZWIsIG5ld3MsIGltYWdlcywgeW91dHViZSAKYGBge3J9CmNhbmFsMiA8LSAid2ViIgpgYGAKCiMjIyBQYXNvIDQuIERlZmluaXIgbGEgdmVudGFuYSBkZSB0aWVtcG8gCmBgYHtyfQpwZXJpb2RvMiA8LSAoIjIwMTAtMDEtMDEgMjAyMi0wOS0wMSIpCmBgYAoKIyMjIFBhc28gNS4gRnVuY2nDs24gCmBgYHtyfQp0ZW5kZW5jaWEyIDwtIGd0cmVuZHModGVybWlubzIsIHViaWNhY2lvbjIsIGNhbmFsMiwgdGltZSA9IHBlcmlvZG8yKQpwbG90KHRlbmRlbmNpYTIpCmBgYAoKIyMgPHNwYW4gc3R5bGU9IkNvbG9yOnJlZCI+IElyb25tYW4KCiMjIyBQYXNvIDEuIERlZmluaXIgZWwgdMOpcm1pbm8gYSBidXNjYXIgCmBgYHtyfQp0ZXJtaW5vMyA8LSBjKCJpcm9ubWFuIikKYGBgCgojIyMgUGFzbyAyLiBEZWZpbmlyIGxhIGxvY2FjacOzbiAoSVNPIDIgY291bnRyeSBjb2RlKQpgYGB7cn0KdWJpY2FjaW9uMyA8LSBjKCJNWCIpCmBgYAoKIyMjIFBhc28gMy4gRGVmaW5pciBlbCBjYW5hbDogd2ViLCBuZXdzLCBpbWFnZXMsIHlvdXR1YmUgCmBgYHtyfQpjYW5hbDMgPC0gIndlYiIKYGBgCgojIyMgUGFzbyA0LiBEZWZpbmlyIGxhIHZlbnRhbmEgZGUgdGllbXBvIApgYGB7cn0KcGVyaW9kbzMgPC0gKCIyMDEwLTAxLTAxIDIwMjItMDktMDEiKQpgYGAKCiMjIyBQYXNvIDUuIEZ1bmNpw7NuIApgYGB7cn0KdGVuZGVuY2lhMyA8LSBndHJlbmRzKHRlcm1pbm8zLCB1YmljYWNpb24zLCBjYW5hbDMsIHRpbWUgPSBwZXJpb2RvMykKcGxvdCh0ZW5kZW5jaWEzKQpgYGAKCiMjIDxzcGFuIHN0eWxlPSJDb2xvcjpyZWQiPiBDb25jbHVzaW9uZXMKQSB0cmF2w6lzIGRlIGVzdGEgaGVycmFtaWVudGEsIGNyZWFtb3MgZ3LDoWZpY2FzIGRlIGLDunNxdWVkYSBzb2JyZSBlbCB0aWVtcG8sIGNvbiBheXVkYSBkZSBsYXMgbGlicmVyaWFzIGRlIEdvb2dsZSBUcmVuZHMgZW4gbGEgbnViZSwgZW4gZG9uZGUgb3B0aW1pemFtb3MgdGVybWlub3MgcXVlIHR1dmllcmFuIHJlbGV2YW5jaWEgZGlmZXJlbnRlIGR1cmFudGUgZWwgcGVyaW9kbyBkZSB0aWVtcG8gZGV0ZXJtaW5hZG8uIAoKRW4gZXN0ZSBjYXNvLCBncmFjaWFzIGFsIHByb2dyYW1hIFIsIHNlIGV2YWzDum8gYSBsYSBjYXNhIGRlIGVudHJlbmltaWVudG8gTWFydmVsIHkgc3UgY29udGVuaWRvIGNvbW8gbG9zIHByaW5jaXBhbGVzIHBlcnNvbmFqZXMgKiooU3BpZGVybWFuLCBJcm9ubWFuKSoqIHBhcmEgZXZhbHVhciBlbCBpbXBhY3RvIHF1ZSBoYW4gdGVuaWRvIGNvbW8gcGVsaWN1bGFzIHkvbyBjb250ZW5pZG8gZGUgZW50cmV0ZW5pbWllbnRvIGEgdHJhdsOpcyBkZWwgdGllbXBvLCBkZW1vc3RyYW5kbyBxdWUsIGVuIGVsIGNhc28gZGUgU3BpZGVybWFuIHR1dsOzIHVuIHJlcHVudGUgZW4gMjAyMSBkZWJpZG8gYSBsYSB0ZXJjZXIgcGVsw61jdWxhIGRlIGxhIHNhZ2EgZG9uZGUgYXBhcmVjZW4gdG9kb3MgbG9zIGFjdG9yZXMgcXVlIGhhbiBpbnRlcHJldGFkbyBhbCBwZXJzb25hamUgYSBsbyBsYXJnbyBkZSBsYSBoaXN0b3JpYTsgbWllbnRyYXMgcXVlIGVuIGVsIGNhc28gZGUgSXJvbm1hbiwgdHV2byBzdSBsYW56YW1pZW50byBlbiAyMDEwLCBwZXJvIGhhIGRpc21pbnVpZG8gc3UgYnVzcXVlZGEgY29uIGVsIHRpZW1wby4gCgpFbCBkZXBhcnRhbWVudG8gZGUgbWFya2V0aW5nIGRlYmVyw6EgZXZhbHVhciBkaWNob3MgcmVzdWx0YWRvcyBwYXJhIGNvbWVuemFyIGVsICoqcGxhbiBkZSByZXBvc2ljaW9uYW1pZW50byBkZWwgY29udGVuaWRvIGRlIHN0cmVhbWluZyoqIHkgdmFsaWRhciBzb2JyZSBsYSBpbnRlcmFjY2nDs24gZGUgbG9zIHBlcnNvbmFqZXMuICAKCgojIyA8c3BhbiBzdHlsZT0iQ29sb3I6Z3JlZW4iPiBKb2huIERlZXJlCiFbXShodHRwczovL3d3dy5kZWVyZS5lcy9hc3NldHMvaW1hZ2VzL3JlZ2lvbi0yL3RyYWN0b3JzL2xhcmdlLzlyLXNlcmllcy9yNGcwODAwMjQtbGFyZ2UuanBnKXt3aWR0aD0nNjAwcHgnfQoKIyMgPHNwYW4gc3R5bGU9IkNvbG9yOmdyZWVuIj4gSGVycmFtaWVudGEgZWwgZ2VuZXJhZG9yIGRlIHZhbG9yIGRlIGRhdG9zIAoKKipQYXNvIDEuIERlZmluaXIgZWwgYXJlYSBkZWwgbmVnb2NpbyBxdWUgYnVzY2Ftb3MgaW1wYWN0YXIgbyBtZWpvcmFyIHkgc3UgS1BJKioKCkVsIGRlcGFydGFtZW50byBkZSBtYXJrZXRpbmcgZGUgSm9obiBEZWVyZSBlbiBlbCBpbmRpY2Fkb3IgZGUgYXdhcmVuZXNzCgoqKlBhc28gMi4gU2VsZWNjaW9uYXIgcGxhbnRpbGxhICgtcykgcGFyYSBjcmVhciB2YWxvciBhIHBhcnRpciBkZSBsb3MgZGF0b3MgZGUgbG9zIGNsaWVudGVzKioKClZpc2nDs24gLyBTZWdtZW50YWNpw7NuIC8gUGVyc29uYWxpemFjacOzbiAvICoqQ29udGV4dHVhbGl6YWNpw7NuKiogCgoqKlBhc28gMy4gR2VuZXJhciBpZGVhcyBvIGNvbmNlcHRvcyBlc3BlY2lmaWNvcyoqCgpFbGFib3JhciBncmFmaWNhcyBkZSB0ZW5kZW5jaWFzIHNvYnJlIGxhIGJ1c3F1ZWRhIGRlIEpvaG4gRGVlcmUgeSBwcm9kdWN0b3MKCioqUGFzbyA0LiBSZXVuaXIgbG9zIGRhdG9zIHJlcXVlcmlkb3MgKioKCkVsYWJvcmFyIHVuYSBncsOhZmljYSBkZSB0ZW5kZW5jaWEgY29uIGxhcyBiw7pzcXVlZGFzIGEgdHJhdsOpcyBkZWwgdGllbXBvIGRlIEpvaG4gRGVlcmUgeSBzdXMgcHJvZHVjdG9zIAoKKipQYXNvIDUuIFBsYW4gZGUgZWplY3VjaW9uICoqCgpNYXJrZXRpbmcgZWxhYm9yYXLDoSB1biBwbGFuIGRlIGF3YXJlbmVzcyBkZSBsb3MgcHJvZHVjdG9zIGRlIEpvaG4gRGVlcmUKClNpc3RlbWFzIGFzZWd1cmFyw6EgbGEgY2FwdHVyYSBkZWwgbWFya2Rvd24gZW4gbGFzIGJhc2VzIGRlIGRhdG9zIAoKIyMgPHNwYW4gc3R5bGU9IkNvbG9yOmdyZWVuIj4gR3JhZmljb3MgCgojIyMgSm9obiBEZWVyZQojIyMgUGFzbyAxLiBEZWZpbmlyIGVsIHTDqXJtaW5vIGEgYnVzY2FyIApgYGB7cn0KdGVybWlubzQgPC0gYygiSm9obiBEZWVyZSIpCmBgYAoKIyMjIFBhc28gMi4gRGVmaW5pciBsYSBsb2NhY2nDs24gKElTTyAyIGNvdW50cnkgY29kZSkKYGBge3J9CnViaWNhY2lvbjQgPC0gYygiTVgiKQpgYGAKCiMjIyBQYXNvIDMuIERlZmluaXIgZWwgY2FuYWw6IHdlYiwgbmV3cywgaW1hZ2VzLCB5b3V0dWJlIApgYGB7cn0KY2FuYWw0IDwtICJ3ZWIiCmBgYAoKIyMjIFBhc28gNC4gRGVmaW5pciBsYSB2ZW50YW5hIGRlIHRpZW1wbyAKYGBge3J9CnBlcmlvZG80IDwtICgiMjAxMC0wMS0wMSAyMDIyLTA5LTAxIikKYGBgCgojIyMgUGFzbyA1LiBGdW5jacOzbiAKYGBge3J9CnRlbmRlbmNpYTQgPC0gZ3RyZW5kcyh0ZXJtaW5vNCwgdWJpY2FjaW9uNCwgY2FuYWw0LCB0aW1lID0gcGVyaW9kbzQpCnBsb3QodGVuZGVuY2lhNCkKYGBgCgojIyMgVHJhY3RvcmVzCiMjIyBQYXNvIDEuIERlZmluaXIgZWwgdMOpcm1pbm8gYSBidXNjYXIgCmBgYHtyfQp0ZXJtaW5vNSA8LSBjKCJ0cmFjdG9yZXMiKQpgYGAKCiMjIyBQYXNvIDIuIERlZmluaXIgbGEgbG9jYWNpw7NuIChJU08gMiBjb3VudHJ5IGNvZGUpCmBgYHtyfQp1YmljYWNpb241IDwtIGMoIk1YIikKYGBgCgojIyMgUGFzbyAzLiBEZWZpbmlyIGVsIGNhbmFsOiB3ZWIsIG5ld3MsIGltYWdlcywgeW91dHViZSAKYGBge3J9CmNhbmFsNSA8LSAid2ViIgpgYGAKCiMjIyBQYXNvIDQuIERlZmluaXIgbGEgdmVudGFuYSBkZSB0aWVtcG8gCmBgYHtyfQpwZXJpb2RvNSA8LSAoIjIwMTAtMDEtMDEgMjAyMi0wOS0wMSIpCmBgYAoKIyMjIFBhc28gNS4gRnVuY2nDs24gCmBgYHtyfQp0ZW5kZW5jaWE1IDwtIGd0cmVuZHMgKHRlcm1pbm81LCB1YmljYWNpb241LCBjYW5hbDUsIHRpbWUgPSBwZXJpb2RvNSkKcGxvdCh0ZW5kZW5jaWE1KQpgYGAKCiMjIyBBZ3JpY3VsdHVyYQojIyMgUGFzbyAxLiBEZWZpbmlyIGVsIHTDqXJtaW5vIGEgYnVzY2FyIApgYGB7cn0KdGVybWlubzYgPC0gYygiYWdyaWN1bHR1cmEiKQpgYGAKCiMjIyBQYXNvIDIuIERlZmluaXIgbGEgbG9jYWNpw7NuIChJU08gMiBjb3VudHJ5IGNvZGUpCmBgYHtyfQp1YmljYWNpb242IDwtIGMoIk1YIikKYGBgCgojIyMgUGFzbyAzLiBEZWZpbmlyIGVsIGNhbmFsOiB3ZWIsIG5ld3MsIGltYWdlcywgeW91dHViZSAKYGBge3J9CmNhbmFsNiA8LSAid2ViIgpgYGAKCiMjIyBQYXNvIDQuIERlZmluaXIgbGEgdmVudGFuYSBkZSB0aWVtcG8gCmBgYHtyfQpwZXJpb2RvNiA8LSAoIjIwMTAtMDEtMDEgMjAyMi0wOS0wMSIpCmBgYAoKIyMjIFBhc28gNS4gRnVuY2nDs24gCmBgYHtyfQp0ZW5kZW5jaWE2IDwtIGd0cmVuZHMgKHRlcm1pbm82LCB1YmljYWNpb242LCBjYW5hbDYsIHRpbWUgPSBwZXJpb2RvNikKcGxvdCh0ZW5kZW5jaWE2KQpgYGAKCgojIyA8c3BhbiBzdHlsZT0iQ29sb3I6Z3JlZW4iPiBDb25jbHVzaW9uZXMKRW4gZXN0ZSBjYXNvLCBncmFjaWFzIGFsIHByb2dyYW1hIFIsIHNlIGV2YWzDum8gYSBsYSBlbXByZXNhIGVzcGVjaWFsaXphZGEgZW4gbWFxdWluYXMgZGUgdHJhY2Npb24gKipKb2huIERlZXJlKiogeSBzdXMgcHJpbmNpcGFsZXMgYWN0aXZvcywgY29tbyBwcm9kdWN0b3MgKipUcmFjdG9yZXMqKiB5IGVsIGVuZm9xdWUgZGUgc3UgaW5kdXN0cmlhICoqQWdyaWN1bHR1cmEqKiwgcGFyYSBldmFsdWFyIGVsIGF3YXJlbmVzcyBxdWUgaGEgdGVuaWRvIGEgbG8gbGFyZ28gZGVsIHRpZW1wbywgZGVtb3N0cmFuZG8gcXVlLCBlbCB0ZXJtaW5vIGRlIHRyYWN0b3JlcyBoYSBwZXJkaWRpbyByZWxldmFuY2lhIGNvbiBlbCB0aWVtcG8sIHNpbiBlbWJhcmdvLiBsYSBlbXByZXNhIGRlIEpvaG4gRGVlcmUgaGEgZ2FuYWRvIG1lbmNpb25lcyBlbiBsYSB3ZWIsIG1pZW50cmFzIHF1ZSBhZ3JpY3VsdHVyYSBzZSBoYSBtYW50ZW5pZG8gZW4gdW5hIGNvbnN0YW50ZSBlc3RhYmlsaWRhZC4KCkRlIGVzdGEgZm9ybWEsIGVsIGRlcGFydGFtZW50byBkZSBtYXJrZXRpbmcgZGViZXLDoSBldmFsdWFyIGRpY2hvcyByZXN1bHRhZG9zIHBhcmEgbWFudGVuZXIgZWwgKipwbGFuIGRlIGF3YXJlbmVzcyAqKiB5IGNvbnNvbGlkYXIgZWwgZW5nYWdlbWVudCBkZSBsYSBlbXByZXNhIGNvbiBzdXMgY2xpZW50ZXMgcG90ZW5jaWFsZXMuIAoKCiMjIDxzcGFuIHN0eWxlPSJDb2xvcjpyZWQiPiBPeHhvCiFbXShodHRwczovL3BsYXllcnNvZmxpZmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy9veHhvLWRlamEtYXNvY2lhY2lvbi1kZS10aWVuZGFkLWF1dG9zZXJ2aWNpby5qcGcpe3dpZHRoPSc2MDBweCd9CgoKIyMgPHNwYW4gc3R5bGU9IkNvbG9yOnJlZCI+IEhlcnJhbWllbnRhIGVsIGdlbmVyYWRvciBkZSB2YWxvciBkZSBkYXRvcyAKCioqUGFzbyAxLiBEZWZpbmlyIGVsIGFyZWEgZGVsIG5lZ29jaW8gcXVlIGJ1c2NhbW9zIGltcGFjdGFyIG8gbWVqb3JhciB5IHN1IEtQSSoqCgpFbCBkZXBhcnRhbWVudG8gZGUgbWFya2V0aW5nIGRlIE94eG8gUHJlbWlhIGVuIGVsIGluZGljYWRvciBkZSBhd2FyZW5lc3MgCgoqKlBhc28gMi4gU2VsZWNjaW9uYXIgcGxhbnRpbGxhICgtcykgcGFyYSBjcmVhciB2YWxvciBhIHBhcnRpciBkZSBsb3MgZGF0b3MgZGUgbG9zIGNsaWVudGVzKioKClZpc2nDs24gLyBTZWdtZW50YWNpw7NuIC8gUGVyc29uYWxpemFjacOzbiAvICoqQ29udGV4dHVhbGl6YWNpw7NuKiogCgoqKlBhc28gMy4gR2VuZXJhciBpZGVhcyBvIGNvbmNlcHRvcyBlc3BlY2lmaWNvcyoqCgpFbGFib3JhciBncmFmaWNhcyBkZSB0ZW5kZW5jaWFzIHNvYnJlIGxhIGJ1c3F1ZWRhIGRlIE94eG8geSBzdXMgYXBsaWNhY2lvbmVzCgoqKlBhc28gNC4gUmV1bmlyIGxvcyBkYXRvcyByZXF1ZXJpZG9zICoqCgpFbGFib3JhciB1bmEgZ3LDoWZpY2EgZGUgdGVuZGVuY2lhIGNvbiBsYXMgYsO6c3F1ZWRhcyBhIHRyYXbDqXMgZGVsIHRpZW1wbyBkZSBPeHhvIHkgc3VzIGFwbGljYWNpb25lcwoKKipQYXNvIDUuIFBsYW4gZGUgZWplY3VjaW9uICoqCgpNYXJrZXRpbmcgZWxhYm9yYXLDoSB1biBwbGFuIGRlIGF3YXJlbmVzcyBkZSBsYSBhcGxpY2FjaW9uIE94eG8gUHJlbWlhCgpTaXN0ZW1hcyBhc2VndXJhcsOhIGxhIGNhcHR1cmEgZGVsIG1hcmtkb3duIGVuIGxhcyBiYXNlcyBkZSBkYXRvcyAKCgojIyBPeHhvCiMjIyBQYXNvIDEuIERlZmluaXIgZWwgdMOpcm1pbm8gYSBidXNjYXIgCmBgYHtyfQp0ZXJtaW5vNyA8LSBjKCJPeHhvIikKYGBgCgojIyMgUGFzbyAyLiBEZWZpbmlyIGxhIGxvY2FjacOzbiAoSVNPIDIgY291bnRyeSBjb2RlKQpgYGB7cn0KdWJpY2FjaW9uNyA8LSBjKCJNWCIpCmBgYAoKIyMjIFBhc28gMy4gRGVmaW5pciBlbCBjYW5hbDogd2ViLCBuZXdzLCBpbWFnZXMsIHlvdXR1YmUgCmBgYHtyfQpjYW5hbDcgPC0gIndlYiIKYGBgCgojIyMgUGFzbyA0LiBEZWZpbmlyIGxhIHZlbnRhbmEgZGUgdGllbXBvIApgYGB7cn0KcGVyaW9kbzcgPC0gKCIyMDEwLTAxLTAxIDIwMjItMDktMDEiKQpgYGAKCiMjIyBQYXNvIDUuIEZ1bmNpw7NuIApgYGB7cn0KdGVuZGVuY2lhNyA8LSBndHJlbmRzKHRlcm1pbm83LCB1YmljYWNpb243LCBjYW5hbDcsIHRpbWUgPSBwZXJpb2RvNykKcGxvdCh0ZW5kZW5jaWE3KQpgYGAKCgojIyBDb252ZW5pZW5jaWEKIyMjIFBhc28gMS4gRGVmaW5pciBlbCB0w6lybWlubyBhIGJ1c2NhciAKYGBge3J9CnRlcm1pbm84IDwtIGMoImNvbnZlbmllbmNpYSIpCmBgYAoKIyMjIFBhc28gMi4gRGVmaW5pciBsYSBsb2NhY2nDs24gKElTTyAyIGNvdW50cnkgY29kZSkKYGBge3J9CnViaWNhY2lvbjggPC0gYygiTVgiKQpgYGAKCiMjIyBQYXNvIDMuIERlZmluaXIgZWwgY2FuYWw6IHdlYiwgbmV3cywgaW1hZ2VzLCB5b3V0dWJlIApgYGB7cn0KY2FuYWw4IDwtICJ3ZWIiCmBgYAoKIyMjIFBhc28gNC4gRGVmaW5pciBsYSB2ZW50YW5hIGRlIHRpZW1wbyAKYGBge3J9CnBlcmlvZG84IDwtICgiMjAxMC0wMS0wMSAyMDIyLTA5LTAxIikKYGBgCgojIyMgUGFzbyA1LiBGdW5jacOzbiAKYGBge3J9CnRlbmRlbmNpYTggPC0gZ3RyZW5kcyh0ZXJtaW5vOCwgdWJpY2FjaW9uOCwgY2FuYWw4LCB0aW1lID0gcGVyaW9kbzgpCnBsb3QodGVuZGVuY2lhOCkKYGBgCgoKIyMgUHJlbWlvcwojIyMgUGFzbyAxLiBEZWZpbmlyIGVsIHTDqXJtaW5vIGEgYnVzY2FyIApgYGB7cn0KdGVybWlubzkgPC0gYygiUHJlbWlvcyIpCmBgYAoKIyMjIFBhc28gMi4gRGVmaW5pciBsYSBsb2NhY2nDs24gKElTTyAyIGNvdW50cnkgY29kZSkKYGBge3J9CnViaWNhY2lvbjkgPC0gYygiTVgiKQpgYGAKCiMjIyBQYXNvIDMuIERlZmluaXIgZWwgY2FuYWw6IHdlYiwgbmV3cywgaW1hZ2VzLCB5b3V0dWJlIApgYGB7cn0KY2FuYWw5IDwtICJ3ZWIiCmBgYAoKIyMjIFBhc28gNC4gRGVmaW5pciBsYSB2ZW50YW5hIGRlIHRpZW1wbyAKYGBge3J9CnBlcmlvZG85IDwtICgiMjAxMC0wMS0wMSAyMDIyLTA5LTAxIikKYGBgCgojIyMgUGFzbyA1LiBGdW5jacOzbiAKYGBge3J9CnRlbmRlbmNpYTkgPC0gZ3RyZW5kcyh0ZXJtaW5vOSwgdWJpY2FjaW9uOSwgY2FuYWw5LCB0aW1lID0gcGVyaW9kbzkpCnBsb3QodGVuZGVuY2lhOSkKYGBgCgojIyA8c3BhbiBzdHlsZT0iQ29sb3I6cmVkIj4gQ29uY2x1c2lvbmVzCkVuIGVzdGUgY2FzbywgZ3JhY2lhcyBhbCBwcm9ncmFtYSBSLCBzZSBldmFsw7pvIGEgbGEgZW1wcmVzYSBlc3BlY2lhbGl6YWRhIGVuIHRpZW5kYXMgZGUgY29udmVuaWVuY2lhICoqT3h4byoqIHkgc3VzIHByaW5jaXBhbGVzIGFjdGl2b3MsIGNvbW8gcHJvZHVjdG9zIGRlIGFiYXJyb3RlcywgcGFyYSBldmFsdWFyIGVsIGF3YXJlbmVzcyBxdWUgaGEgdGVuaWRvIGVuIHN1IHJlY2llbnRlIGFwbGljYWNpb24gZGUgT3h4byBQcmVtaWEsIGRlbW9zdHJhbmRvIHF1ZSwgZWwgdGVybWlubyBkZSBveHhvIGhhIGdhbmFkbyBtYXlvciByZWxldmFuY2lhIGNvbiBlbCB0aWVtcG8uIERlIGVzdGEgZm9ybWEsIGVsIGRlcGFydGFtZW50byBkZSBtYXJrZXRpbmcgZGViZXLDoSBldmFsdWFyIGRpY2hvcyByZXN1bHRhZG9zIHBhcmEgbWFudGVuZXIgZWwgKipwbGFuIGRlIGF3YXJlbmVzcyAqKiB5IGNvbnNvbGlkYXIgZWwgZW5nYWdlbWVudCBkZSBsYSBlbXByZXNhIGNvbiBzdXMgY2xpZW50ZXMgcG90ZW5jaWFsZXMuIA==