Teoría

La información del clima se obtiene del ASOS (Automated Surface Observing System) ubicados en los aeropuertos de todas las ciudades del mundo.

Instalar paquetes y llamar librerias

#install.packages("riem") #Accesar al ASOS(Sistema del clima) para obtener datos climáticos
library(riem)
#install.packages("tidyverse") #Manipulación de datos
library("tidyverse")
## Warning: package 'tidyverse' was built under R version 4.3.3
## Warning: package 'lubridate' was built under R version 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
#install.packages("ggplot2") #Gráficas con mejor diseño que plot
library(ggplot2)
#install.packages("plotly") #Gráficas con mejor calidad")
library(plotly)
## 
## Attaching package: 'plotly'
## 
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## 
## The following object is masked from 'package:stats':
## 
##     filter
## 
## The following object is masked from 'package:graphics':
## 
##     layout

Paso 1. Buscar la red del país(México) y copiar CODE

#view(riem_networks())
#MX__ASOS

Paso 2. Buscar la estación o ciudad(Monterrey) y copiar ID

#view(riem_stations("MX__ASOS"))
#MMMY

Paso 3. Obtener datos del clima

clima_mty <- riem_measures("MMMY")

Ejericio 1. Obtener datos del clima de MTY de Febrero 2024

clima_mty_feb <- subset(clima_mty, valid>=as.POSIXct("2024-02-01 00:00")& valid <= as.POSIXct("2024-02-29 23:59"))

Ejericio 2. Graficar la humedad relativa en MTY durante Febrero 2024

plot(clima_mty_feb$valid, clima_mty_feb$relh, type="l", main="Humedad relativa en Monterrey durante Febrero 2024", xlab="Fecha", ylab="Humedad Relativa (%)")

# Promediar humedad relativa diaria
clima_mty_feb$date <- as.Date(clima_mty_feb$valid)
cmfd <- aggregate(clima_mty_feb, by=list(date=clima_mty_feb$date), FUN=mean)
## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA
# Graficar la humedad relativa promedio por día
plot(cmfd$valid, cmfd$relh, type="l", main="Promedio Diario de Humedad Relativa en Mty durante Febrero 2024", xlab ="Fecha", ylab= "Humedad Relativa(%)")

#Ejercicio 3- Graficar temperatura promedio de Quito # Paso 1. Buscar la red del país(Ecuador) y copiar CODE

#view(riem_networks())
#EC__ASOS

Paso 2. Buscar la estación o ciudad(Quito) y copiar ID

#view(riem_stations("EC__ASOS"))
#SEQM

Paso 3. Obtener datos del clima

clima_uio <- riem_measures("SEQM")

Ejericio 1. Obtener datos del clima de MTY de Febrero 2024

clima_uio_feb <- subset(clima_uio, valid>=as.POSIXct("2024-02-01 00:00")& valid <= as.POSIXct("2024-02-29 23:59"))

Ejericio 3. Graficar la temperatura promedio diaria en Celsius en Quito durante Febrero 2024

clima_uio_feb <- clima_uio_feb %>% mutate(tmpf=(tmpf-32)*5/9)

clima_uio_feb$date <- as.Date(clima_uio_feb$valid)

cmfd <- aggregate(clima_uio_feb, by=list(date=clima_uio_feb$date), FUN=mean)
## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA

## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA
plot(cmfd$date, cmfd$tmpf, type="l", main="Temperatura promedio diaria en ºC en Quito durante Febrero 2024", xlab="Fecha", ylab="Temperatura promedio (ºC)")

Conclusión

En conclusión, usando “riem networks” y librerías como tidyverse, ggplot2 y plotly pude observar en la red del país que la humedad relativa en Monterrey varió mucho durante el mes de Febrero, estando en un rango de 20% a 90%, por lo que considero que es muy difícil saber sin hacer una predicción histórica cuál será la humedad específica de un determinado día en esta ciudad. Debido, a que el rango de humedad en Monterrey es muy amplio, es fácil que la humedad media se sitúe en él, siendo esta un 65%.

Por otro lado, pude observar, que en Quito, que es la capital de Ecuador, país de dónde provengo, la temperatura en grados Celsius varió en Febrero de 14 a 19, lo cuál suena lógico, ya que durante el día normalmente está fresco y durante la noche baja un poco la temperatura, estando un poco más frío. Finalmente, según los registros históricos de El Servicio Meteorológico Nacional,la temperatura media anual en Quito es 16 ºC,por lo que el análisis previamente hecho suena lógico, siendo esta una ciudad con clima templado.

Este código demuestra cómo podemos usar la tecnología o lenguajes de programación en distintas aspectos de nuestra vida, desde evaluar patrones o características del clima en un determinado lugar, con el fin de tomar decisiones acertadas de interés público.

LS0tDQp0aXRsZTogIkNsaW1hIg0KYXV0aG9yOiAiUmFmYWVsbGEgUMOpcmV6IEZsb3JlcyINCmRhdGU6ICIyMDI0LTAyLTI5Ig0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogVFJVRQ0KICAgIHRvY19mbG9hdDogVFJVRQ0KICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUNCiAgICB0aGVtZTogZGFyaw0KLS0tDQohW10oQzpcXFVzZXJzXFxqbXBvMlxcRG93bmxvYWRzXFx3ZWF0aGVyLW1lbWVzLTEwOS02NGE1MTAwMjcxMDM2X183MDAuanBnKQ0KDQojIDxzcGFuIHN0eWxlID0gImNvbG9yOiB5ZWxsb3c7IiA+IFRlb3LDrWE8L3NwYW4+DQpMYSBpbmZvcm1hY2nDs24gZGVsIGNsaW1hIHNlIG9idGllbmUgZGVsICoqQVNPUyoqICgqQXV0b21hdGVkIFN1cmZhY2UgT2JzZXJ2aW5nIFN5c3RlbSopIHViaWNhZG9zIGVuIGxvcyBhZXJvcHVlcnRvcyBkZSB0b2RhcyBsYXMgY2l1ZGFkZXMgZGVsIG11bmRvLiANCg0KIyA8c3BhbiBzdHlsZSA9ICJjb2xvcjogeWVsbG93OyIgPiBJbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hciBsaWJyZXJpYXM8L3NwYW4+DQpgYGB7cn0NCiNpbnN0YWxsLnBhY2thZ2VzKCJyaWVtIikgI0FjY2VzYXIgYWwgQVNPUyhTaXN0ZW1hIGRlbCBjbGltYSkgcGFyYSBvYnRlbmVyIGRhdG9zIGNsaW3DoXRpY29zDQpsaWJyYXJ5KHJpZW0pDQojaW5zdGFsbC5wYWNrYWdlcygidGlkeXZlcnNlIikgI01hbmlwdWxhY2nDs24gZGUgZGF0b3MNCmxpYnJhcnkoInRpZHl2ZXJzZSIpDQojaW5zdGFsbC5wYWNrYWdlcygiZ2dwbG90MiIpICNHcsOhZmljYXMgY29uIG1lam9yIGRpc2XDsW8gcXVlIHBsb3QNCmxpYnJhcnkoZ2dwbG90MikNCiNpbnN0YWxsLnBhY2thZ2VzKCJwbG90bHkiKSAjR3LDoWZpY2FzIGNvbiBtZWpvciBjYWxpZGFkIikNCmxpYnJhcnkocGxvdGx5KQ0KYGBgDQojIDxzcGFuIHN0eWxlID0gImNvbG9yOiB5ZWxsb3c7IiA+IFBhc28gMS4gQnVzY2FyIGxhIHJlZCBkZWwgcGHDrXMoTcOpeGljbykgeSBjb3BpYXIgQ09ERSA8L3NwYW4+DQpgYGB7cn0NCiN2aWV3KHJpZW1fbmV0d29ya3MoKSkNCiNNWF9fQVNPUw0KYGBgDQojIDxzcGFuIHN0eWxlID0gImNvbG9yOiB5ZWxsb3c7IiA+IFBhc28gMi4gQnVzY2FyIGxhIGVzdGFjacOzbiBvIGNpdWRhZChNb250ZXJyZXkpIHkgY29waWFyIElEPC9zcGFuPg0KYGBge3J9DQojdmlldyhyaWVtX3N0YXRpb25zKCJNWF9fQVNPUyIpKQ0KI01NTVkNCmBgYA0KIyA8c3BhbiBzdHlsZSA9ICJjb2xvcjogeWVsbG93OyIgPiBQYXNvIDMuIE9idGVuZXIgZGF0b3MgZGVsIGNsaW1hPC9zcGFuPg0KYGBge3J9DQpjbGltYV9tdHkgPC0gcmllbV9tZWFzdXJlcygiTU1NWSIpDQpgYGANCg0KIyA8c3BhbiBzdHlsZSA9ICJjb2xvcjogeWVsbG93OyIgPiBFamVyaWNpbyAxLiBPYnRlbmVyIGRhdG9zIGRlbCBjbGltYSBkZSBNVFkgZGUgRmVicmVybyAyMDI0PC9zcGFuPg0KYGBge3J9DQpjbGltYV9tdHlfZmViIDwtIHN1YnNldChjbGltYV9tdHksIHZhbGlkPj1hcy5QT1NJWGN0KCIyMDI0LTAyLTAxIDAwOjAwIikmIHZhbGlkIDw9IGFzLlBPU0lYY3QoIjIwMjQtMDItMjkgMjM6NTkiKSkNCmBgYA0KIyA8c3BhbiBzdHlsZSA9ICJjb2xvcjogeWVsbG93OyIgPiBFamVyaWNpbyAyLiBHcmFmaWNhciBsYSBodW1lZGFkIHJlbGF0aXZhIGVuIE1UWSBkdXJhbnRlIEZlYnJlcm8gMjAyNDwvc3Bhbj4NCmBgYHtyfQ0KcGxvdChjbGltYV9tdHlfZmViJHZhbGlkLCBjbGltYV9tdHlfZmViJHJlbGgsIHR5cGU9ImwiLCBtYWluPSJIdW1lZGFkIHJlbGF0aXZhIGVuIE1vbnRlcnJleSBkdXJhbnRlIEZlYnJlcm8gMjAyNCIsIHhsYWI9IkZlY2hhIiwgeWxhYj0iSHVtZWRhZCBSZWxhdGl2YSAoJSkiKQ0KDQojIFByb21lZGlhciBodW1lZGFkIHJlbGF0aXZhIGRpYXJpYQ0KY2xpbWFfbXR5X2ZlYiRkYXRlIDwtIGFzLkRhdGUoY2xpbWFfbXR5X2ZlYiR2YWxpZCkNCmNtZmQgPC0gYWdncmVnYXRlKGNsaW1hX210eV9mZWIsIGJ5PWxpc3QoZGF0ZT1jbGltYV9tdHlfZmViJGRhdGUpLCBGVU49bWVhbikNCg0KIyBHcmFmaWNhciBsYSBodW1lZGFkIHJlbGF0aXZhIHByb21lZGlvIHBvciBkw61hDQpwbG90KGNtZmQkdmFsaWQsIGNtZmQkcmVsaCwgdHlwZT0ibCIsIG1haW49IlByb21lZGlvIERpYXJpbyBkZSBIdW1lZGFkIFJlbGF0aXZhIGVuIE10eSBkdXJhbnRlIEZlYnJlcm8gMjAyNCIsIHhsYWIgPSJGZWNoYSIsIHlsYWI9ICJIdW1lZGFkIFJlbGF0aXZhKCUpIikNCmBgYA0KI0VqZXJjaWNpbyAzLSBHcmFmaWNhciB0ZW1wZXJhdHVyYSBwcm9tZWRpbyBkZSBRdWl0bw0KIyA8c3BhbiBzdHlsZSA9ICJjb2xvcjogeWVsbG93OyIgPiBQYXNvIDEuIEJ1c2NhciBsYSByZWQgZGVsIHBhw61zKEVjdWFkb3IpIHkgY29waWFyIENPREUgPC9zcGFuPg0KYGBge3J9DQojdmlldyhyaWVtX25ldHdvcmtzKCkpDQojRUNfX0FTT1MNCmBgYA0KIyA8c3BhbiBzdHlsZSA9ICJjb2xvcjogeWVsbG93OyIgPiBQYXNvIDIuIEJ1c2NhciBsYSBlc3RhY2nDs24gbyBjaXVkYWQoUXVpdG8pIHkgY29waWFyIElEPC9zcGFuPg0KYGBge3J9DQojdmlldyhyaWVtX3N0YXRpb25zKCJFQ19fQVNPUyIpKQ0KI1NFUU0NCmBgYA0KIyA8c3BhbiBzdHlsZSA9ICJjb2xvcjogeWVsbG93OyIgPiBQYXNvIDMuIE9idGVuZXIgZGF0b3MgZGVsIGNsaW1hPC9zcGFuPg0KYGBge3J9DQpjbGltYV91aW8gPC0gcmllbV9tZWFzdXJlcygiU0VRTSIpDQpgYGANCg0KIyA8c3BhbiBzdHlsZSA9ICJjb2xvcjogeWVsbG93OyIgPiBFamVyaWNpbyAxLiBPYnRlbmVyIGRhdG9zIGRlbCBjbGltYSBkZSBNVFkgZGUgRmVicmVybyAyMDI0PC9zcGFuPg0KYGBge3J9DQpjbGltYV91aW9fZmViIDwtIHN1YnNldChjbGltYV91aW8sIHZhbGlkPj1hcy5QT1NJWGN0KCIyMDI0LTAyLTAxIDAwOjAwIikmIHZhbGlkIDw9IGFzLlBPU0lYY3QoIjIwMjQtMDItMjkgMjM6NTkiKSkNCmBgYA0KIyA8c3BhbiBzdHlsZSA9ICJjb2xvcjogeWVsbG93OyIgPiBFamVyaWNpbyAzLiBHcmFmaWNhciBsYSB0ZW1wZXJhdHVyYSBwcm9tZWRpbyBkaWFyaWEgZW4gQ2Vsc2l1cyBlbiBRdWl0byBkdXJhbnRlIEZlYnJlcm8gMjAyNDwvc3Bhbj4NCmBgYHtyfQ0KY2xpbWFfdWlvX2ZlYiA8LSBjbGltYV91aW9fZmViICU+JSBtdXRhdGUodG1wZj0odG1wZi0zMikqNS85KQ0KDQpjbGltYV91aW9fZmViJGRhdGUgPC0gYXMuRGF0ZShjbGltYV91aW9fZmViJHZhbGlkKQ0KDQpjbWZkIDwtIGFnZ3JlZ2F0ZShjbGltYV91aW9fZmViLCBieT1saXN0KGRhdGU9Y2xpbWFfdWlvX2ZlYiRkYXRlKSwgRlVOPW1lYW4pDQoNCnBsb3QoY21mZCRkYXRlLCBjbWZkJHRtcGYsIHR5cGU9ImwiLCBtYWluPSJUZW1wZXJhdHVyYSBwcm9tZWRpbyBkaWFyaWEgZW4gwrpDIGVuIFF1aXRvIGR1cmFudGUgRmVicmVybyAyMDI0IiwgeGxhYj0iRmVjaGEiLCB5bGFiPSJUZW1wZXJhdHVyYSBwcm9tZWRpbyAowrpDKSIpDQpgYGANCg0KIyA8c3BhbiBzdHlsZSA9ICJjb2xvcjogeWVsbG93OyIgPiBDb25jbHVzacOzbiA8L3NwYW4+DQoNCkVuIGNvbmNsdXNpw7NuLCB1c2FuZG8gInJpZW0gbmV0d29ya3MiIHkgbGlicmVyw61hcyBjb21vIHRpZHl2ZXJzZSwgZ2dwbG90MiB5IHBsb3RseSBwdWRlIG9ic2VydmFyIGVuIGxhIHJlZCBkZWwgcGHDrXMgcXVlIGxhIGh1bWVkYWQgcmVsYXRpdmEgZW4gTW9udGVycmV5IHZhcmnDsyBtdWNobyBkdXJhbnRlIGVsIG1lcyBkZSBGZWJyZXJvLCBlc3RhbmRvIGVuIHVuIHJhbmdvIGRlIDIwJSBhIDkwJSwgcG9yIGxvIHF1ZSBjb25zaWRlcm8gcXVlIGVzIG11eSBkaWbDrWNpbCBzYWJlciBzaW4gaGFjZXIgdW5hIHByZWRpY2Npw7NuIGhpc3TDs3JpY2EgY3XDoWwgc2Vyw6EgbGEgaHVtZWRhZCBlc3BlY8OtZmljYSBkZSB1biBkZXRlcm1pbmFkbyBkw61hIGVuIGVzdGEgY2l1ZGFkLiBEZWJpZG8sIGEgcXVlIGVsIHJhbmdvIGRlIGh1bWVkYWQgZW4gTW9udGVycmV5IGVzIG11eSBhbXBsaW8sIGVzIGbDoWNpbCBxdWUgbGEgaHVtZWRhZCBtZWRpYSBzZSBzaXTDumUgZW4gw6lsLCBzaWVuZG8gZXN0YSB1biA2NSUuIA0KDQpQb3Igb3RybyBsYWRvLCBwdWRlIG9ic2VydmFyLCBxdWUgZW4gUXVpdG8sIHF1ZSBlcyBsYSBjYXBpdGFsIGRlIEVjdWFkb3IsIHBhw61zIGRlIGTDs25kZSBwcm92ZW5nbywgbGEgdGVtcGVyYXR1cmEgZW4gZ3JhZG9zIENlbHNpdXMgdmFyacOzIGVuIEZlYnJlcm8gZGUgMTQgYSAxOSwgbG8gY3XDoWwgc3VlbmEgbMOzZ2ljbywgeWEgcXVlIGR1cmFudGUgZWwgZMOtYSBub3JtYWxtZW50ZSBlc3TDoSBmcmVzY28geSBkdXJhbnRlIGxhIG5vY2hlIGJhamEgdW4gcG9jbyBsYSB0ZW1wZXJhdHVyYSwgZXN0YW5kbyB1biBwb2NvIG3DoXMgZnLDrW8uIEZpbmFsbWVudGUsIHNlZ8O6biBsb3MgcmVnaXN0cm9zIGhpc3TDs3JpY29zIGRlIEVsIFNlcnZpY2lvIE1ldGVvcm9sw7NnaWNvIE5hY2lvbmFsLGxhIHRlbXBlcmF0dXJhIG1lZGlhIGFudWFsIGVuIFF1aXRvIGVzIDE2IMK6Qyxwb3IgbG8gcXVlIGVsIGFuw6FsaXNpcyBwcmV2aWFtZW50ZSBoZWNobyBzdWVuYSBsw7NnaWNvLCBzaWVuZG8gZXN0YSB1bmEgY2l1ZGFkIGNvbiBjbGltYSB0ZW1wbGFkby4gDQoNCkVzdGUgY8OzZGlnbyBkZW11ZXN0cmEgY8OzbW8gcG9kZW1vcyB1c2FyIGxhIHRlY25vbG9nw61hIG8gbGVuZ3VhamVzIGRlIHByb2dyYW1hY2nDs24gZW4gZGlzdGludGFzIGFzcGVjdG9zIGRlIG51ZXN0cmEgdmlkYSwgZGVzZGUgZXZhbHVhciBwYXRyb25lcyBvIGNhcmFjdGVyw61zdGljYXMgZGVsIGNsaW1hIGVuIHVuIGRldGVybWluYWRvIGx1Z2FyLCBjb24gZWwgZmluIGRlIHRvbWFyIGRlY2lzaW9uZXMgYWNlcnRhZGFzIGRlIGludGVyw6lzIHDDumJsaWNvLiA=