Producción

Análisis de las variables relevantes

Importar las bases de datos

# file.choose()
produccion<- read.csv("/Users/mayracampoyramos/Desktop/Analisis de Datos Concentracion/Reto/Produccion de FORM sept.csv")

¿Cuántas variables y cuantos registros tiene la base de datos?

# Instalar librerias

# install.packages("dplyr")
library(dplyr)
## 
## 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
# install.packages("psych")
library(psych)

#Sacar número de variables:
describeData(produccion,head=1,tail=1)
## n.obs =  1614 of which  1   are complete cases.   Number of variables =  15  of which all are numeric  FALSE  
##                      variable # n.obs type
## CLIENTE*                      1  1613    3
## ID.FORM*                      2  1613    3
## PRODUCTO*                     3  1614    3
## PIEZAS.PROG.*                 4  1614    3
## TMO..MIN.                     5  1129    1
## HR..FIN*                      6  1614    3
## ESTACION.ARRANQUE*            7  1614    3
## Laminas.procesadas.*          8  1614    3
## INICIO.SEP.UP*                9  1614    3
## fin.de.set.up*               10  1614    3
## INICIO.de.PROCESO*           11  1614    3
## FIN.de.PROCESO*              12  1614    3
## TIEMPO.CALIDAD*              13  1614    3
## TIEMPO.MATERIALES.           14   161    1
## X                            15     7    1
##                                                                                              H1
## CLIENTE*                                                                                  DENSO
## ID.FORM*                                                                                       
## PRODUCTO*            TOYOTA. MCV. Insterto D 2R. CORTE. 1 Golpe = 12 piezas. ( 9 Pza. / Celda).
## PIEZAS.PROG.*                                                                               240
## TMO..MIN.                                                                                    10
## HR..FIN*                                                                                   9:10
## ESTACION.ARRANQUE*                                                                           C1
## Laminas.procesadas.*                                                                         48
## INICIO.SEP.UP*                                                                             9:30
## fin.de.set.up*                                                                             9:32
## INICIO.de.PROCESO*                                                                        9:;32
## FIN.de.PROCESO*                                                                            9:57
## TIEMPO.CALIDAD*                                                                               1
## TIEMPO.MATERIALES.                                                                         <NA>
## X                                                                                          <NA>
##                                                                      T1
## CLIENTE*                                                     STABILUS 3
## ID.FORM*                                                   ST-047-14234
## PRODUCTO*            AUDI Q5. DIVISOR. ST0254. 6 Pza/GOLP. 1 Pza/CELDA.
## PIEZAS.PROG.*                                                       400
## TMO..MIN.                                                            15
## HR..FIN*                                                           5:45
## ESTACION.ARRANQUE*                                              TROQUEL
## Laminas.procesadas.*                                                   
## INICIO.SEP.UP*                                                         
## fin.de.set.up*                                                         
## INICIO.de.PROCESO*                                                     
## FIN.de.PROCESO*                                                        
## TIEMPO.CALIDAD*                                                        
## TIEMPO.MATERIALES.                                                 <NA>
## X                                                                  <NA>
#R: Existen 15 variables y 1614 registros en la base de datos.

Aplica al menos 2 técnicas de limpieza de bases de datos y explícalas brevemente, ¿por qué realizaste esas técnicas?

Entender la base de datos

summary(produccion)
##    CLIENTE            ID.FORM            PRODUCTO         PIEZAS.PROG.      
##  Length:1614        Length:1614        Length:1614        Length:1614       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##    TMO..MIN.        HR..FIN          ESTACION.ARRANQUE  Laminas.procesadas.
##  Min.   : 10.00   Length:1614        Length:1614        Length:1614        
##  1st Qu.: 15.00   Class :character   Class :character   Class :character   
##  Median : 20.00   Mode  :character   Mode  :character   Mode  :character   
##  Mean   : 22.92                                                            
##  3rd Qu.: 25.00                                                            
##  Max.   :120.00                                                            
##  NA's   :485                                                               
##  INICIO.SEP.UP      fin.de.set.up      INICIO.de.PROCESO  FIN.de.PROCESO    
##  Length:1614        Length:1614        Length:1614        Length:1614       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##  TIEMPO.CALIDAD     TIEMPO.MATERIALES.       X        
##  Length:1614        Min.   : 0.000     Min.   :1.000  
##  Class :character   1st Qu.: 0.000     1st Qu.:1.000  
##  Mode  :character   Median : 0.000     Median :3.000  
##                     Mean   : 5.733     Mean   :2.714  
##                     3rd Qu.:10.000     3rd Qu.:4.000  
##                     Max.   :51.000     Max.   :5.000  
##                     NA's   :1453       NA's   :1607

Observaciones

Hay muchos NA´s
Se cuentan con variables inecesarias

Técnica 1: Eliminar NA

produccion1 <- produccion 
produccion1 [is.na(produccion1)]<-0 

summary (produccion1)
##    CLIENTE            ID.FORM            PRODUCTO         PIEZAS.PROG.      
##  Length:1614        Length:1614        Length:1614        Length:1614       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##    TMO..MIN.        HR..FIN          ESTACION.ARRANQUE  Laminas.procesadas.
##  Min.   :  0.00   Length:1614        Length:1614        Length:1614        
##  1st Qu.:  0.00   Class :character   Class :character   Class :character   
##  Median : 15.00   Mode  :character   Mode  :character   Mode  :character   
##  Mean   : 16.03                                                            
##  3rd Qu.: 25.00                                                            
##  Max.   :120.00                                                            
##  INICIO.SEP.UP      fin.de.set.up      INICIO.de.PROCESO  FIN.de.PROCESO    
##  Length:1614        Length:1614        Length:1614        Length:1614       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##  TIEMPO.CALIDAD     TIEMPO.MATERIALES.       X          
##  Length:1614        Min.   : 0.0000    Min.   :0.00000  
##  Class :character   1st Qu.: 0.0000    1st Qu.:0.00000  
##  Mode  :character   Median : 0.0000    Median :0.00000  
##                     Mean   : 0.5719    Mean   :0.01177  
##                     3rd Qu.: 0.0000    3rd Qu.:0.00000  
##                     Max.   :51.0000    Max.   :5.00000

Técnica 2: Eliminar columnas.

produccion1 <- subset(produccion1, select = -c (ID.FORM, PRODUCTO, HR..FIN , ESTACION.ARRANQUE, INICIO.SEP.UP, fin.de.set.up, INICIO.de.PROCESO, FIN.de.PROCESO, X))
produccion1 <- subset(produccion1, select = -c (TIEMPO.MATERIALES.))

Clasifica cada variable en cualitativa, cuantitativa discreta o cuantitativa continua

Elige la escala de medición de cada variable.

Variable<-c("CLIENTE", "PIEZAS.PROG.", "TMO..MIN.", "Laminas.procesadas.", "TIEMPO.CALIDAD")
Type<-c("cualitativa", "cuantitativa discreta", "cuantitativa continua ", "cuantitativa discreta", "cuantitativa continua ")
Measurement <-c("NA", "unidades", "minutos", "unidades", "hora")
table<-data.frame(Variable,Type, Measurement)
knitr::kable(table)
Variable Type Measurement
CLIENTE cualitativa NA
PIEZAS.PROG. cuantitativa discreta unidades
TMO..MIN. cuantitativa continua minutos
Laminas.procesadas. cuantitativa discreta unidades
TIEMPO.CALIDAD cuantitativa continua hora

Análisis Estadístico

Gráfico cuantitativo:

# install.packages("ggplot2")
library(ggplot2)
## 
## Attaching package: 'ggplot2'
## The following objects are masked from 'package:psych':
## 
##     %+%, alpha
ggplot(produccion1, aes(x=CLIENTE, y=TIEMPO.CALIDAD)) +
  geom_bar(stat="identity", fill="orange") + scale_fill_grey() + # Add bars to the plot
  labs(title = "Relación de Cliente y Tiempo de calidad", # Add a title
       subtitle = "RH empresa FORM", # Add a subtitle
       caption = "Relación", # Add a caption
       x = "Cliente")

Gráfico de dispersión

plot(produccion1$PIEZAS.PROG. ~ produccion1$Laminas.procesadas, horizontal = TRUE)
## Warning in xy.coords(x, y, xlabel, ylabel, log): NAs introduced by coercion

## Warning in xy.coords(x, y, xlabel, ylabel, log): NAs introduced by coercion
## Warning in plot.window(...): "horizontal" is not a graphical parameter
## Warning in plot.xy(xy, type, ...): "horizontal" is not a graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "horizontal" is not
## a graphical parameter

## Warning in axis(side = side, at = at, labels = labels, ...): "horizontal" is not
## a graphical parameter
## Warning in box(...): "horizontal" is not a graphical parameter
## Warning in title(...): "horizontal" is not a graphical parameter

Propuestas:

Lo primero que se propone hacer, aunque se aplicaron 2 términos de limpiezas de bases de datos, es corregir o innovar la manera de cómo se recopilan los datos. Esto es muy importante ya que, es una manera de tener un control más organizado y poder empezar a realmente a utilizar los análisis de datos.

La segunda propuesta sería enfocada en el tiempo de calidad. Observando la gráfica que se utilizaron la relación de las variables de tiempo de calidad y los clientes, se observa como no está distribuido en una manera proporcional. Se puede ver claramente una forma de “favoritismo” y esto pudiera afectar a la retroalimentación de los demás clientes. Distribución para retener a los clientes y generar también atraer a los demás.

Scrap

Análisis de las variables relevantes

Importar las bases de datos

# file.choose()
scrap<- read.csv("/Users/mayracampoyramos/Desktop/Analisis de Datos Concentracion/Reto/FORM - Scrap.csv")

¿Cuántas variables y cuantos registros tiene la base de datos?

# Instalar librerias

# install.packages("dplyr")
library(dplyr)
# install.packages("psych")
library(psych)

#Sacar número de variables:
describeData(scrap,head=1,tail=1)
## n.obs =  251 of which  251   are complete cases.   Number of variables =  9  of which all are numeric  FALSE  
##                       variable # n.obs type                H1
## Referencia*                    1   251    3 agosto 2022 (250)
## Fecha*                         2   251    3                  
## Producto*                      3   251    3                  
## Cantidad                       4   251    1          1674.002
## Unidad.de.medida*              5   251    3                  
## Ubicación.de.origen*           6   251    3                  
## Ubicación.de.desecho*          7   251    3                  
## Estado*                        8   251    3                  
## Hora*                          9   251    3                  
##                                                           T1
## Referencia*                                         SP/08479
## Fecha*                                              01/08/22
## Producto*             [N61506747 TAPA] N61506747. Kit. Tapa.
## Cantidad                                                   1
## Unidad.de.medida*                                 Unidad(es)
## Ubicación.de.origen*               SAB/Calidad/Entrega de PT
## Ubicación.de.desecho*             Virtual Locations/Scrapped
## Estado*                                                Hecho
## Hora*                                               13:59:47
#R: Existen 19 variables y 251 registros en la base de datos.

Aplica al menos 2 técnicas de limpieza de bases de datos y explícalas brevemente, ¿por qué realizaste esas técnicas?

Entender la base de datos

summary(scrap)
##   Referencia           Fecha             Producto            Cantidad      
##  Length:251         Length:251         Length:251         Min.   :   0.00  
##  Class :character   Class :character   Class :character   1st Qu.:   1.00  
##  Mode  :character   Mode  :character   Mode  :character   Median :   2.00  
##                                                           Mean   :  13.34  
##                                                           3rd Qu.:   7.00  
##                                                           Max.   :1674.00  
##  Unidad.de.medida   Ubicación.de.origen Ubicación.de.desecho    Estado         
##  Length:251         Length:251          Length:251           Length:251        
##  Class :character   Class :character    Class :character     Class :character  
##  Mode  :character   Mode  :character    Mode  :character     Mode  :character  
##                                                                                
##                                                                                
##                                                                                
##      Hora          
##  Length:251        
##  Class :character  
##  Mode  :character  
##                    
##                    
## 

Observaciones

Se cuenta con una fila al inecesaria
Se cuentan con variables inecesarias

Técnica 1: Eliminar columna.

scrap1<- scrap [-1,]

Técnica 2: Eliminar variables

scrap1 <- subset(scrap1, select = -c ( Referencia, Producto,Unidad.de.medida, Ubicación.de.desecho, Estado, Hora))

summary(scrap1)
##     Fecha              Cantidad      Ubicación.de.origen
##  Length:250         Min.   : 0.000   Length:250         
##  Class :character   1st Qu.: 1.000   Class :character   
##  Mode  :character   Median : 2.000   Mode  :character   
##                     Mean   : 6.696                      
##                     3rd Qu.: 7.000                      
##                     Max.   :96.000

Clasifica cada variable en cualitativa, cuantitativa discreta o cuantitativa continua

Elige la escala de medición de cada variable.

Variable<-c("Fecha", "Cantidad", "Ubicación.de.origen")
Type<-c("cuantitativa continua ", "cuantitativa discreta", "cualitativa")
Measurement <-c("dia", "cantidad generada", "NA")
table<-data.frame(Variable,Type, Measurement)
knitr::kable(table)
Variable Type Measurement
Fecha cuantitativa continua dia
Cantidad cuantitativa discreta cantidad generada
Ubicación.de.origen cualitativa NA

Análisis Estadístico

Gráfico cualitativo (Pay):

pie(table(scrap1$Ubicación.de.origen))

Gráfico de dispersion

# install.packages("ggplot2")
library("ggplot2")
library("tidyverse")
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ tibble  3.1.8     ✔ purrr   0.3.4
## ✔ tidyr   1.2.0     ✔ stringr 1.4.1
## ✔ readr   2.1.2     ✔ forcats 0.5.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ ggplot2::%+%()   masks psych::%+%()
## ✖ ggplot2::alpha() masks psych::alpha()
## ✖ dplyr::filter()  masks stats::filter()
## ✖ dplyr::lag()     masks stats::lag()
ggplot(data = scrap1, mapping = aes(Ubicación.de.origen, Cantidad)) + geom_point() + theme_bw()

Propuestas:

Al analizar los gráficos se puede observar que la mayoría del scrap viene de la pre-producción por esto se debe obtener el “número ideal para las compras” es necesario mucho análisis del stock, de la línea de producción y de las ventas.Como FORM funciona en cadena, se hace necesario un análisis holístico de todas las operaciones para entonces definir las cantidades de materia exacta adquiridas.

La segunda propuesta sería analizar las oportunidades de negocio que se pueden implementar para darle una mejor manera de desecho y en una parte se genera más ingreso.

Merma

Análisis de las variables relevantes

Importar las bases de datos

# file.choose()
merma<- read.csv("/Users/mayracampoyramos/Desktop/Analisis de Datos Concentracion/Reto/FORM - Merma 1.csv")

¿Cuántas variables y cuantos registros tiene la base de datos?

#Sacar número de variables:
describeData(merma,head=1,tail=1)
## n.obs =  60 of which  60   are complete cases.   Number of variables =  3  of which all are numeric  FALSE  
##        variable # n.obs type       H1            T1
## Fecha*          1    60    3 11/01/22              
## Mes*            2    60    3    ENERO Total general
## Kilos*          3    60    3     5080       185,426
#R: Existen 3 variables y 60 registros en la base de datos.

Aplica al menos 2 técnicas de limpieza de bases de datos y explícalas brevemente, ¿por qué realizaste esas técnicas?

Entender la base de datos

summary(merma)
##     Fecha               Mes               Kilos          
##  Length:60          Length:60          Length:60         
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character

Observaciones

No estan en enteros los kilos de merma
Existen filas inecesarias

Técnica 1: Eliminar totales

merma1<- merma[-c(5,12,19,25,31,36,42,54,59,60),]

Técnica 2: Convertir caracter a entero.

merma1$Kilos <- as.integer(merma1$Kilos)
str(merma1)
## 'data.frame':    50 obs. of  3 variables:
##  $ Fecha: chr  "11/01/22" "11/01/22" "22/01/22" "22/01/22" ...
##  $ Mes  : chr  "ENERO" "ENERO" "ENERO" "ENERO" ...
##  $ Kilos: int  5080 3810 2990 2680 3650 4380 3870 3590 3410 3930 ...

Clasifica cada variable en cualitativa, cuantitativa discreta o cuantitativa continua

Elige la escala de medición de cada variable.

Variable<-c("Fecha", "Mes", "Kilos")
Type<-c("cuantitativa continua ", "cualitativa", "cuantitativa discreta")
Measurement <-c("dia", "NA", "cantidad")
table<-data.frame(Variable,Type, Measurement)
knitr::kable(table)
Variable Type Measurement
Fecha cuantitativa continua dia
Mes cualitativa NA
Kilos cuantitativa discreta cantidad

Análisis Estadístico

Tabla de frecuencia

table(merma1$Mes, merma1$Kilos)
##             
##              790 810 1040 2130 2480 2680 2830 2950 2980 2990 3050 3140 3290
##   ABRIL        0   0    0    0    0    0    0    1    0    0    0    0    0
##   AGOSTO       1   1    1    0    1    0    0    0    0    0    0    2    0
##   ENERO        0   0    0    0    0    1    0    0    0    1    0    0    0
##   FEBRERO      0   0    0    0    0    0    0    0    0    0    0    0    0
##   JULIO        0   0    0    1    0    0    0    0    0    0    0    0    0
##   JUNIO        0   0    0    0    0    0    0    0    0    0    0    0    0
##   MARZO        0   0    0    0    0    0    0    0    1    0    0    0    1
##   MAYO         0   0    0    0    0    0    0    0    0    0    0    0    0
##   SEPTIEMBRE   0   0    0    0    0    0    1    0    0    0    1    0    0
##             
##              3410 3590 3650 3680 3690 3739 3780 3810 3870 3920 3930 3940 3960
##   ABRIL         0    0    0    0    1    0    0    0    0    0    0    1    0
##   AGOSTO        0    0    0    0    0    0    1    0    0    0    0    0    0
##   ENERO         0    0    0    0    0    0    0    1    0    0    0    0    0
##   FEBRERO       1    1    1    0    0    0    0    0    1    0    1    0    0
##   JULIO         0    0    0    0    0    0    0    0    0    1    0    0    1
##   JUNIO         0    0    0    0    0    0    0    0    0    0    0    0    0
##   MARZO         0    0    0    0    0    0    0    1    0    0    0    0    0
##   MAYO          0    0    0    1    0    0    0    0    0    0    0    0    0
##   SEPTIEMBRE    0    0    0    0    0    1    0    0    0    0    0    0    0
##             
##              3967 4000 4050 4130 4190 4200 4210 4240 4260 4270 4310 4330 4380
##   ABRIL         0    0    1    0    1    0    0    0    0    0    0    0    0
##   AGOSTO        0    0    0    0    0    1    1    1    0    1    0    0    0
##   ENERO         0    0    0    0    0    0    0    0    0    0    0    0    0
##   FEBRERO       0    0    0    0    0    0    0    0    0    0    0    0    1
##   JULIO         0    0    0    1    0    0    0    0    0    0    0    0    0
##   JUNIO         0    0    0    0    0    0    0    0    1    0    0    1    0
##   MARZO         0    1    0    0    1    1    0    0    0    0    0    0    0
##   MAYO          0    0    0    0    0    0    0    0    0    0    1    0    0
##   SEPTIEMBRE    1    0    0    0    0    0    0    0    0    0    0    0    0
##             
##              4510 4680 4770 5010 5080 5230 6140
##   ABRIL         0    0    0    0    0    0    0
##   AGOSTO        0    0    0    0    0    0    0
##   ENERO         0    0    0    0    1    0    0
##   FEBRERO       0    0    0    0    0    0    0
##   JULIO         0    0    0    0    0    1    0
##   JUNIO         0    1    0    1    0    0    0
##   MARZO         0    0    0    0    0    0    0
##   MAYO          1    0    1    0    0    0    1
##   SEPTIEMBRE    0    0    0    0    0    0    0
prop.table(table(merma1$Mes, merma1$Kilos))
##             
##               790  810 1040 2130 2480 2680 2830 2950 2980 2990 3050 3140 3290
##   ABRIL      0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00
##   AGOSTO     0.02 0.02 0.02 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.04 0.00
##   ENERO      0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.02 0.00 0.00 0.00
##   FEBRERO    0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
##   JULIO      0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
##   JUNIO      0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
##   MARZO      0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.02
##   MAYO       0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
##   SEPTIEMBRE 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.02 0.00 0.00
##             
##              3410 3590 3650 3680 3690 3739 3780 3810 3870 3920 3930 3940 3960
##   ABRIL      0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.00
##   AGOSTO     0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00
##   ENERO      0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00
##   FEBRERO    0.02 0.02 0.02 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.02 0.00 0.00
##   JULIO      0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.02
##   JUNIO      0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
##   MARZO      0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00
##   MAYO       0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
##   SEPTIEMBRE 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00
##             
##              3967 4000 4050 4130 4190 4200 4210 4240 4260 4270 4310 4330 4380
##   ABRIL      0.00 0.00 0.02 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
##   AGOSTO     0.00 0.00 0.00 0.00 0.00 0.02 0.02 0.02 0.00 0.02 0.00 0.00 0.00
##   ENERO      0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
##   FEBRERO    0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.02
##   JULIO      0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
##   JUNIO      0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.02 0.00
##   MARZO      0.00 0.02 0.00 0.00 0.02 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00
##   MAYO       0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.00
##   SEPTIEMBRE 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
##             
##              4510 4680 4770 5010 5080 5230 6140
##   ABRIL      0.00 0.00 0.00 0.00 0.00 0.00 0.00
##   AGOSTO     0.00 0.00 0.00 0.00 0.00 0.00 0.00
##   ENERO      0.00 0.00 0.00 0.00 0.02 0.00 0.00
##   FEBRERO    0.00 0.00 0.00 0.00 0.00 0.00 0.00
##   JULIO      0.00 0.00 0.00 0.00 0.00 0.02 0.00
##   JUNIO      0.00 0.02 0.00 0.02 0.00 0.00 0.00
##   MARZO      0.00 0.00 0.00 0.00 0.00 0.00 0.00
##   MAYO       0.02 0.00 0.02 0.00 0.00 0.00 0.02
##   SEPTIEMBRE 0.00 0.00 0.00 0.00 0.00 0.00 0.00

Gráfico de dispersion

# install.packages("ggplot2")
library(ggplot2)

ggplot(data=merma1, mapping = aes(Mes, Kilos)) + geom_point() + theme_bw()

Propuestas:

La generación de merma es un punto de oportunidad para FORM. Por esto se propone buscar una empresa en Nuevo León de reciclaje donde se obtenga un beneficio monetario a cambio. De esta manera, podríamos buscar un área de negocio.

La segunda propuesta sería analizar las oportunidades de productos hechos de cartón. Esto sería como abrir un modelo de negocio de la venta de cartón en cajas para más uso comercial.

Incluye una breve reflexión de la actividad.

En esta actividad se realizó un análisis a 3 distintas bases de datos del socio formador FORM, base de datos de la producción de cartón, el scrap y la merma. Al resolver esta actividad pude implementar los conocimientos de los módulos que se han visto de la concentración. De la misma manera, es más importante llegar al análisis y poder tener como resultado propuestas o estrategias para crear un bien al socio formador.

LS0tCnRpdGxlOiA8c3BhbiBzdHlsZSA9ICJjb2xvcjpicm93biI+ICJFbnRyZWdhYmxlIDIuNCIKYXV0aG9yOiAiTWF5cmEgQ2FtcG95IFJhbW9zIgpkYXRlOiAiMjAyMi0wOS0yMyIKb3V0cHV0OiAKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiB0cnVlCiAgICB0b2NfZmxvYXQ6IHRydWUKICAgIGNvZGVfZG93bmxvYWQ6IHRydWUKLS0tCjxpbWcgc3JjPSAiL1VzZXJzL21heXJhY2FtcG95cmFtb3MvRG93bmxvYWRzLzE4NzY0NDUuanBlZyI+CgojICoqUHJvZHVjY2nDs24qKiAKCiMjICpBbsOhbGlzaXMgZGUgbGFzIHZhcmlhYmxlcyByZWxldmFudGVzKgoKIyMjIyBJbXBvcnRhciBsYXMgYmFzZXMgZGUgZGF0b3MKYGBge3J9CiMgZmlsZS5jaG9vc2UoKQpwcm9kdWNjaW9uPC0gcmVhZC5jc3YoIi9Vc2Vycy9tYXlyYWNhbXBveXJhbW9zL0Rlc2t0b3AvQW5hbGlzaXMgZGUgRGF0b3MgQ29uY2VudHJhY2lvbi9SZXRvL1Byb2R1Y2Npb24gZGUgRk9STSBzZXB0LmNzdiIpCmBgYAojIyMgKsK/Q3XDoW50YXMgdmFyaWFibGVzIHkgY3VhbnRvcyByZWdpc3Ryb3MgdGllbmUgbGEgYmFzZSBkZSBkYXRvcz8qCgpgYGB7cn0KIyBJbnN0YWxhciBsaWJyZXJpYXMKCiMgaW5zdGFsbC5wYWNrYWdlcygiZHBseXIiKQpsaWJyYXJ5KGRwbHlyKQojIGluc3RhbGwucGFja2FnZXMoInBzeWNoIikKbGlicmFyeShwc3ljaCkKCiNTYWNhciBuw7ptZXJvIGRlIHZhcmlhYmxlczoKZGVzY3JpYmVEYXRhKHByb2R1Y2Npb24saGVhZD0xLHRhaWw9MSkKCiNSOiBFeGlzdGVuIDE1IHZhcmlhYmxlcyB5IDE2MTQgcmVnaXN0cm9zIGVuIGxhIGJhc2UgZGUgZGF0b3MuCmBgYAoKIyMjICpBcGxpY2EgYWwgbWVub3MgMiB0w6ljbmljYXMgZGUgbGltcGllemEgZGUgYmFzZXMgZGUgZGF0b3MgeSBleHBsw61jYWxhcyBicmV2ZW1lbnRlLCDCv3BvciBxdcOpIHJlYWxpemFzdGUgZXNhcyB0w6ljbmljYXM/KgoKIyMjIyBFbnRlbmRlciBsYSBiYXNlIGRlIGRhdG9zCgpgYGB7cn0Kc3VtbWFyeShwcm9kdWNjaW9uKQpgYGAKCiMjIyMgT2JzZXJ2YWNpb25lcwojIyMjIyBIYXkgbXVjaG9zIE5BwrRzCiMjIyMjIFNlIGN1ZW50YW4gY29uIHZhcmlhYmxlcyBpbmVjZXNhcmlhcyAKCiMjIyBUw6ljbmljYSAxOiBFbGltaW5hciBOQQpgYGB7cn0KcHJvZHVjY2lvbjEgPC0gcHJvZHVjY2lvbiAKcHJvZHVjY2lvbjEgW2lzLm5hKHByb2R1Y2Npb24xKV08LTAgCgpzdW1tYXJ5IChwcm9kdWNjaW9uMSkKYGBgCgojIyMgVMOpY25pY2EgMjogRWxpbWluYXIgY29sdW1uYXMuCmBgYHtyfQpwcm9kdWNjaW9uMSA8LSBzdWJzZXQocHJvZHVjY2lvbjEsIHNlbGVjdCA9IC1jIChJRC5GT1JNLCBQUk9EVUNUTywgSFIuLkZJTiAsIEVTVEFDSU9OLkFSUkFOUVVFLCBJTklDSU8uU0VQLlVQLCBmaW4uZGUuc2V0LnVwLCBJTklDSU8uZGUuUFJPQ0VTTywgRklOLmRlLlBST0NFU08sIFgpKQpwcm9kdWNjaW9uMSA8LSBzdWJzZXQocHJvZHVjY2lvbjEsIHNlbGVjdCA9IC1jIChUSUVNUE8uTUFURVJJQUxFUy4pKQoKYGBgCgojIyMgKkNsYXNpZmljYSBjYWRhIHZhcmlhYmxlIGVuIGN1YWxpdGF0aXZhLCBjdWFudGl0YXRpdmEgZGlzY3JldGEgbyBjdWFudGl0YXRpdmEgY29udGludWEqCiMjIyAqRWxpZ2UgbGEgZXNjYWxhIGRlIG1lZGljacOzbiBkZSBjYWRhIHZhcmlhYmxlLioKYGBge3J9ClZhcmlhYmxlPC1jKCJDTElFTlRFIiwgIlBJRVpBUy5QUk9HLiIsICJUTU8uLk1JTi4iLCAiTGFtaW5hcy5wcm9jZXNhZGFzLiIsICJUSUVNUE8uQ0FMSURBRCIpClR5cGU8LWMoImN1YWxpdGF0aXZhIiwgImN1YW50aXRhdGl2YSBkaXNjcmV0YSIsICJjdWFudGl0YXRpdmEgY29udGludWEgIiwgImN1YW50aXRhdGl2YSBkaXNjcmV0YSIsICJjdWFudGl0YXRpdmEgY29udGludWEgIikKTWVhc3VyZW1lbnQgPC1jKCJOQSIsICJ1bmlkYWRlcyIsICJtaW51dG9zIiwgInVuaWRhZGVzIiwgImhvcmEiKQp0YWJsZTwtZGF0YS5mcmFtZShWYXJpYWJsZSxUeXBlLCBNZWFzdXJlbWVudCkKa25pdHI6OmthYmxlKHRhYmxlKQpgYGAKCiMjICpBbsOhbGlzaXMgRXN0YWTDrXN0aWNvKgoKIyMjICpHcsOhZmljbyBjdWFudGl0YXRpdm86KgpgYGB7cn0KIyBpbnN0YWxsLnBhY2thZ2VzKCJnZ3Bsb3QyIikKbGlicmFyeShnZ3Bsb3QyKQoKZ2dwbG90KHByb2R1Y2Npb24xLCBhZXMoeD1DTElFTlRFLCB5PVRJRU1QTy5DQUxJREFEKSkgKwogIGdlb21fYmFyKHN0YXQ9ImlkZW50aXR5IiwgZmlsbD0ib3JhbmdlIikgKyBzY2FsZV9maWxsX2dyZXkoKSArICMgQWRkIGJhcnMgdG8gdGhlIHBsb3QKICBsYWJzKHRpdGxlID0gIlJlbGFjacOzbiBkZSBDbGllbnRlIHkgVGllbXBvIGRlIGNhbGlkYWQiLCAjIEFkZCBhIHRpdGxlCiAgICAgICBzdWJ0aXRsZSA9ICJSSCBlbXByZXNhIEZPUk0iLCAjIEFkZCBhIHN1YnRpdGxlCiAgICAgICBjYXB0aW9uID0gIlJlbGFjacOzbiIsICMgQWRkIGEgY2FwdGlvbgogICAgICAgeCA9ICJDbGllbnRlIikKYGBgCgojIyMgKkdyw6FmaWNvIGRlIGRpc3BlcnNpw7NuKgpgYGB7cn0KcGxvdChwcm9kdWNjaW9uMSRQSUVaQVMuUFJPRy4gfiBwcm9kdWNjaW9uMSRMYW1pbmFzLnByb2Nlc2FkYXMsIGhvcml6b250YWwgPSBUUlVFKQpgYGAKCiMjIyAqUHJvcHVlc3Rhcyo6CgojIyMjIExvIHByaW1lcm8gcXVlIHNlIHByb3BvbmUgaGFjZXIsIGF1bnF1ZSBzZSBhcGxpY2Fyb24gMiB0w6lybWlub3MgZGUgbGltcGllemFzIGRlIGJhc2VzIGRlIGRhdG9zLCBlcyBjb3JyZWdpciBvIGlubm92YXIgbGEgbWFuZXJhIGRlIGPDs21vIHNlIHJlY29waWxhbiBsb3MgZGF0b3MuIEVzdG8gZXMgbXV5IGltcG9ydGFudGUgeWEgcXVlLCBlcyB1bmEgbWFuZXJhIGRlIHRlbmVyIHVuIGNvbnRyb2wgbcOhcyBvcmdhbml6YWRvIHkgcG9kZXIgZW1wZXphciBhIHJlYWxtZW50ZSBhIHV0aWxpemFyIGxvcyBhbsOhbGlzaXMgZGUgZGF0b3MuIAoKIyMjIyBMYSBzZWd1bmRhIHByb3B1ZXN0YSBzZXLDrWEgZW5mb2NhZGEgZW4gZWwgdGllbXBvIGRlIGNhbGlkYWQuIE9ic2VydmFuZG8gbGEgZ3LDoWZpY2EgcXVlIHNlIHV0aWxpemFyb24gbGEgcmVsYWNpw7NuIGRlIGxhcyB2YXJpYWJsZXMgZGUgdGllbXBvIGRlIGNhbGlkYWQgeSAgbG9zIGNsaWVudGVzLCBzZSBvYnNlcnZhIGNvbW8gbm8gZXN0w6EgZGlzdHJpYnVpZG8gZW4gdW5hIG1hbmVyYSBwcm9wb3JjaW9uYWwuIFNlIHB1ZWRlIHZlciBjbGFyYW1lbnRlIHVuYSBmb3JtYSBkZSDigJxmYXZvcml0aXNtb+KAnSB5IGVzdG8gcHVkaWVyYSBhZmVjdGFyIGEgbGEgcmV0cm9hbGltZW50YWNpw7NuIGRlIGxvcyBkZW3DoXMgY2xpZW50ZXMuIERpc3RyaWJ1Y2nDs24gcGFyYSByZXRlbmVyIGEgbG9zIGNsaWVudGVzIHkgZ2VuZXJhciB0YW1iacOpbiBhdHJhZXIgYSBsb3MgZGVtw6FzLiAKCiMgKipTY3JhcCoqIAoKIyMgKkFuw6FsaXNpcyBkZSBsYXMgdmFyaWFibGVzIHJlbGV2YW50ZXMqCgojIyMjIEltcG9ydGFyIGxhcyBiYXNlcyBkZSBkYXRvcwpgYGB7cn0KIyBmaWxlLmNob29zZSgpCnNjcmFwPC0gcmVhZC5jc3YoIi9Vc2Vycy9tYXlyYWNhbXBveXJhbW9zL0Rlc2t0b3AvQW5hbGlzaXMgZGUgRGF0b3MgQ29uY2VudHJhY2lvbi9SZXRvL0ZPUk0gLSBTY3JhcC5jc3YiKQpgYGAKCiMjIyAqwr9DdcOhbnRhcyB2YXJpYWJsZXMgeSBjdWFudG9zIHJlZ2lzdHJvcyB0aWVuZSBsYSBiYXNlIGRlIGRhdG9zPyoKYGBge3J9CiMgSW5zdGFsYXIgbGlicmVyaWFzCgojIGluc3RhbGwucGFja2FnZXMoImRwbHlyIikKbGlicmFyeShkcGx5cikKIyBpbnN0YWxsLnBhY2thZ2VzKCJwc3ljaCIpCmxpYnJhcnkocHN5Y2gpCgojU2FjYXIgbsO6bWVybyBkZSB2YXJpYWJsZXM6CmRlc2NyaWJlRGF0YShzY3JhcCxoZWFkPTEsdGFpbD0xKQoKI1I6IEV4aXN0ZW4gMTkgdmFyaWFibGVzIHkgMjUxIHJlZ2lzdHJvcyBlbiBsYSBiYXNlIGRlIGRhdG9zLgpgYGAKCiMjIyAqQXBsaWNhIGFsIG1lbm9zIDIgdMOpY25pY2FzIGRlIGxpbXBpZXphIGRlIGJhc2VzIGRlIGRhdG9zIHkgZXhwbMOtY2FsYXMgYnJldmVtZW50ZSwgwr9wb3IgcXXDqSByZWFsaXphc3RlIGVzYXMgdMOpY25pY2FzPyoKCiMjIyMgRW50ZW5kZXIgbGEgYmFzZSBkZSBkYXRvcwoKYGBge3J9CnN1bW1hcnkoc2NyYXApCmBgYAoKIyMjIyBPYnNlcnZhY2lvbmVzCiMjIyMjIFNlIGN1ZW50YSBjb24gdW5hIGZpbGEgYWwgaW5lY2VzYXJpYQojIyMjIyBTZSBjdWVudGFuIGNvbiB2YXJpYWJsZXMgaW5lY2VzYXJpYXMgCgojIyMgVMOpY25pY2EgMTogRWxpbWluYXIgY29sdW1uYS4KYGBge3J9CnNjcmFwMTwtIHNjcmFwIFstMSxdCgpgYGAKCiMjIyBUw6ljbmljYSAyOiBFbGltaW5hciB2YXJpYWJsZXMKYGBge3J9CnNjcmFwMSA8LSBzdWJzZXQoc2NyYXAxLCBzZWxlY3QgPSAtYyAoIFJlZmVyZW5jaWEsIFByb2R1Y3RvLFVuaWRhZC5kZS5tZWRpZGEsIFViaWNhY2nDs24uZGUuZGVzZWNobywgRXN0YWRvLCBIb3JhKSkKCnN1bW1hcnkoc2NyYXAxKQpgYGAKCiMjIyAqQ2xhc2lmaWNhIGNhZGEgdmFyaWFibGUgZW4gY3VhbGl0YXRpdmEsIGN1YW50aXRhdGl2YSBkaXNjcmV0YSBvIGN1YW50aXRhdGl2YSBjb250aW51YSoKIyMjICpFbGlnZSBsYSBlc2NhbGEgZGUgbWVkaWNpw7NuIGRlIGNhZGEgdmFyaWFibGUuKgpgYGB7cn0KVmFyaWFibGU8LWMoIkZlY2hhIiwgIkNhbnRpZGFkIiwgIlViaWNhY2nDs24uZGUub3JpZ2VuIikKVHlwZTwtYygiY3VhbnRpdGF0aXZhIGNvbnRpbnVhICIsICJjdWFudGl0YXRpdmEgZGlzY3JldGEiLCAiY3VhbGl0YXRpdmEiKQpNZWFzdXJlbWVudCA8LWMoImRpYSIsICJjYW50aWRhZCBnZW5lcmFkYSIsICJOQSIpCnRhYmxlPC1kYXRhLmZyYW1lKFZhcmlhYmxlLFR5cGUsIE1lYXN1cmVtZW50KQprbml0cjo6a2FibGUodGFibGUpCmBgYAoKIyMgKkFuw6FsaXNpcyBFc3RhZMOtc3RpY28qCgojIyMgKkdyw6FmaWNvIGN1YWxpdGF0aXZvIChQYXkpOioKYGBge3J9CnBpZSh0YWJsZShzY3JhcDEkVWJpY2FjacOzbi5kZS5vcmlnZW4pKQpgYGAKCiMjIyAqR3LDoWZpY28gZGUgZGlzcGVyc2lvbioKYGBge3J9CiMgaW5zdGFsbC5wYWNrYWdlcygiZ2dwbG90MiIpCmxpYnJhcnkoImdncGxvdDIiKQpsaWJyYXJ5KCJ0aWR5dmVyc2UiKQoKZ2dwbG90KGRhdGEgPSBzY3JhcDEsIG1hcHBpbmcgPSBhZXMoVWJpY2FjacOzbi5kZS5vcmlnZW4sIENhbnRpZGFkKSkgKyBnZW9tX3BvaW50KCkgKyB0aGVtZV9idygpCmBgYAoKIyMjICpQcm9wdWVzdGFzKjoKCiMjIyMgQWwgYW5hbGl6YXIgbG9zIGdyw6FmaWNvcyBzZSBwdWVkZSBvYnNlcnZhciBxdWUgbGEgbWF5b3LDrWEgZGVsIHNjcmFwIHZpZW5lIGRlIGxhIHByZS1wcm9kdWNjacOzbiBwb3IgZXN0byBzZSBkZWJlIG9idGVuZXIgZWwg4oCcbsO6bWVybyBpZGVhbCBwYXJhIGxhcyBjb21wcmFz4oCdIGVzIG5lY2VzYXJpbyBtdWNobyBhbsOhbGlzaXMgZGVsIHN0b2NrLCBkZSBsYSBsw61uZWEgZGUgcHJvZHVjY2nDs24geSBkZSBsYXMgdmVudGFzLkNvbW8gRk9STSBmdW5jaW9uYSBlbiBjYWRlbmEsIHNlIGhhY2UgbmVjZXNhcmlvIHVuIGFuw6FsaXNpcyBob2zDrXN0aWNvIGRlIHRvZGFzIGxhcyBvcGVyYWNpb25lcyBwYXJhIGVudG9uY2VzIGRlZmluaXIgbGFzIGNhbnRpZGFkZXMgZGUgbWF0ZXJpYSBleGFjdGEgYWRxdWlyaWRhcy4KCiMjIyMgTGEgc2VndW5kYSBwcm9wdWVzdGEgc2Vyw61hIGFuYWxpemFyIGxhcyBvcG9ydHVuaWRhZGVzIGRlIG5lZ29jaW8gcXVlIHNlIHB1ZWRlbiBpbXBsZW1lbnRhciBwYXJhIGRhcmxlIHVuYSBtZWpvciBtYW5lcmEgZGUgZGVzZWNobyB5IGVuIHVuYSBwYXJ0ZSBzZSBnZW5lcmEgbcOhcyBpbmdyZXNvLiAKCiMgKipNZXJtYSoqCgojIyAqQW7DoWxpc2lzIGRlIGxhcyB2YXJpYWJsZXMgcmVsZXZhbnRlcyoKCiMjIyMgSW1wb3J0YXIgbGFzIGJhc2VzIGRlIGRhdG9zCmBgYHtyfQojIGZpbGUuY2hvb3NlKCkKbWVybWE8LSByZWFkLmNzdigiL1VzZXJzL21heXJhY2FtcG95cmFtb3MvRGVza3RvcC9BbmFsaXNpcyBkZSBEYXRvcyBDb25jZW50cmFjaW9uL1JldG8vRk9STSAtIE1lcm1hIDEuY3N2IikKYGBgCgojIyMgKsK/Q3XDoW50YXMgdmFyaWFibGVzIHkgY3VhbnRvcyByZWdpc3Ryb3MgdGllbmUgbGEgYmFzZSBkZSBkYXRvcz8qCmBgYHtyfQojU2FjYXIgbsO6bWVybyBkZSB2YXJpYWJsZXM6CmRlc2NyaWJlRGF0YShtZXJtYSxoZWFkPTEsdGFpbD0xKQoKI1I6IEV4aXN0ZW4gMyB2YXJpYWJsZXMgeSA2MCByZWdpc3Ryb3MgZW4gbGEgYmFzZSBkZSBkYXRvcy4KYGBgCgojIyMgKkFwbGljYSBhbCBtZW5vcyAyIHTDqWNuaWNhcyBkZSBsaW1waWV6YSBkZSBiYXNlcyBkZSBkYXRvcyB5IGV4cGzDrWNhbGFzIGJyZXZlbWVudGUsIMK/cG9yIHF1w6kgcmVhbGl6YXN0ZSBlc2FzIHTDqWNuaWNhcz8qCgojIyMjIEVudGVuZGVyIGxhIGJhc2UgZGUgZGF0b3MKCmBgYHtyfQpzdW1tYXJ5KG1lcm1hKQpgYGAKCiMjIyMgT2JzZXJ2YWNpb25lcwojIyMjIyBObyBlc3RhbiBlbiBlbnRlcm9zIGxvcyBraWxvcyBkZSBtZXJtYQojIyMjIyBFeGlzdGVuIGZpbGFzIGluZWNlc2FyaWFzCgojIyMgVMOpY25pY2EgMTogRWxpbWluYXIgdG90YWxlcwpgYGB7cn0KbWVybWExPC0gbWVybWFbLWMoNSwxMiwxOSwyNSwzMSwzNiw0Miw1NCw1OSw2MCksXQpgYGAKCiMjIyBUw6ljbmljYSAyOiBDb252ZXJ0aXIgY2FyYWN0ZXIgYSBlbnRlcm8uCmBgYHtyfQptZXJtYTEkS2lsb3MgPC0gYXMuaW50ZWdlcihtZXJtYTEkS2lsb3MpCnN0cihtZXJtYTEpCmBgYAoKIyMjICpDbGFzaWZpY2EgY2FkYSB2YXJpYWJsZSBlbiBjdWFsaXRhdGl2YSwgY3VhbnRpdGF0aXZhIGRpc2NyZXRhIG8gY3VhbnRpdGF0aXZhIGNvbnRpbnVhKgojIyMgKkVsaWdlIGxhIGVzY2FsYSBkZSBtZWRpY2nDs24gZGUgY2FkYSB2YXJpYWJsZS4qCmBgYHtyfQpWYXJpYWJsZTwtYygiRmVjaGEiLCAiTWVzIiwgIktpbG9zIikKVHlwZTwtYygiY3VhbnRpdGF0aXZhIGNvbnRpbnVhICIsICJjdWFsaXRhdGl2YSIsICJjdWFudGl0YXRpdmEgZGlzY3JldGEiKQpNZWFzdXJlbWVudCA8LWMoImRpYSIsICJOQSIsICJjYW50aWRhZCIpCnRhYmxlPC1kYXRhLmZyYW1lKFZhcmlhYmxlLFR5cGUsIE1lYXN1cmVtZW50KQprbml0cjo6a2FibGUodGFibGUpCmBgYAoKIyMgKkFuw6FsaXNpcyBFc3RhZMOtc3RpY28qCgojIyMgKlRhYmxhIGRlIGZyZWN1ZW5jaWEqCmBgYHtyfQp0YWJsZShtZXJtYTEkTWVzLCBtZXJtYTEkS2lsb3MpCnByb3AudGFibGUodGFibGUobWVybWExJE1lcywgbWVybWExJEtpbG9zKSkKYGBgCgojIyMgKkdyw6FmaWNvIGRlIGRpc3BlcnNpb24qCmBgYHtyfQojIGluc3RhbGwucGFja2FnZXMoImdncGxvdDIiKQpsaWJyYXJ5KGdncGxvdDIpCgpnZ3Bsb3QoZGF0YT1tZXJtYTEsIG1hcHBpbmcgPSBhZXMoTWVzLCBLaWxvcykpICsgZ2VvbV9wb2ludCgpICsgdGhlbWVfYncoKQpgYGAKCiMjIyAqUHJvcHVlc3Rhcyo6CgojIyMjIExhIGdlbmVyYWNpw7NuIGRlIG1lcm1hIGVzIHVuIHB1bnRvIGRlIG9wb3J0dW5pZGFkIHBhcmEgRk9STS4gUG9yIGVzdG8gc2UgcHJvcG9uZSBidXNjYXIgdW5hIGVtcHJlc2EgZW4gTnVldm8gTGXDs24gZGUgcmVjaWNsYWplIGRvbmRlIHNlIG9idGVuZ2EgdW4gYmVuZWZpY2lvIG1vbmV0YXJpbyBhIGNhbWJpby4gRGUgZXN0YSBtYW5lcmEsIHBvZHLDrWFtb3MgYnVzY2FyIHVuIMOhcmVhIGRlIG5lZ29jaW8uIAoKIyMjIyBMYSBzZWd1bmRhIHByb3B1ZXN0YSBzZXLDrWEgYW5hbGl6YXIgbGFzIG9wb3J0dW5pZGFkZXMgZGUgcHJvZHVjdG9zIGhlY2hvcyBkZSBjYXJ0w7NuLiBFc3RvIHNlcsOtYSBjb21vIGFicmlyIHVuIG1vZGVsbyBkZSBuZWdvY2lvIGRlIGxhIHZlbnRhIGRlIGNhcnTDs24gZW4gY2FqYXMgcGFyYSBtw6FzIHVzbyBjb21lcmNpYWwuIAoKCiMgKipJbmNsdXllIHVuYSBicmV2ZSByZWZsZXhpw7NuIGRlIGxhIGFjdGl2aWRhZC4qKgoKRW4gZXN0YSBhY3RpdmlkYWQgc2UgcmVhbGl6w7MgdW4gYW7DoWxpc2lzIGEgMyBkaXN0aW50YXMgYmFzZXMgZGUgZGF0b3MgZGVsIHNvY2lvIGZvcm1hZG9yIEZPUk0sIGJhc2UgZGUgZGF0b3MgZGUgbGEgcHJvZHVjY2nDs24gZGUgY2FydMOzbiwgZWwgc2NyYXAgeSBsYSBtZXJtYS4gQWwgcmVzb2x2ZXIgZXN0YSBhY3RpdmlkYWQgcHVkZSBpbXBsZW1lbnRhciBsb3MgY29ub2NpbWllbnRvcyBkZSBsb3MgbcOzZHVsb3MgcXVlIHNlIGhhbiB2aXN0byBkZSBsYSBjb25jZW50cmFjacOzbi4gRGUgbGEgbWlzbWEgbWFuZXJhLCBlcyBtw6FzIGltcG9ydGFudGUgbGxlZ2FyIGFsIGFuw6FsaXNpcyB5IHBvZGVyIHRlbmVyIGNvbW8gcmVzdWx0YWRvIHByb3B1ZXN0YXMgbyBlc3RyYXRlZ2lhcyBwYXJhIGNyZWFyIHVuIGJpZW4gYWwgc29jaW8gZm9ybWFkb3IuIA==