Ejercicio 1

1.-Elegir una serie de tiempo y describir sus caracteristicas de frecuencia y unidad de medida,asimismo citar la fuente de informacion.

Esta serie es una serie extraida de la industria automotriz, la cual nos muestra la produccion total de vehículos automotores del pais desde el año de 1983 hasta julio del 2018.

Frecuencia: Mensual

Unidade de medida:Número de unidades producidas

Fuente:A partir del año 2017: INEGI. Estimación de cifras con base en las ventas reportadas por la Asociación Mexicana de la Industria Automotriz (AMIA) A.C. y la Encuesta Mensual de la Industria Manufacturera (EMIM)

Link: http://www.inegi.org.mx/sistemas/bie/

base<-read.csv(file.choose("file:///F:/Autos.csv"))
Error in read.table(file = file, header = header, sep = sep, quote = quote,  : 
  more columns than column names

2.-Graficar y describir las caracteristicas de la serie

Las caracteristicas de esta serie de tiempo son las siguientes: Es Tendencial** por que se ve un crecimiento muy notable en la grafica lo cual nos indica que desde 1983 han aumentado las produccion de vehiculos automotores en el pais iniciando con 27,001 unidades en enero de 1983 y 305,420 registradas hasta julio del 2018, aumentando la produccion hasta 11 veces mas de las unidades iniciales.

  • Es Ciclicla por que se puede notar variaciones en la grafica que nos indican que no ha tenido un aumento en produccion constante, que debido a algunos factores dentro del proceso de produccion o en el aspecto economico del pais tiende a producir algunas unidades mas o algunas unidades menos.

  • Es Estacional por que en ciertos periodos especificos del año tienen mas produccion de vehiculos esto debido quizas a un aumento de la demanda, a una oferta mas alta de vehículos, por el aumento o baja de las materias primas entre otras cosas que se tienen previstas por suelen ser en la misma epoca del año.

3.- Analizar si la serie de tiempo elegida presenta estacionalidad

Esta serie de la produccion de vehículos automotores no muestra una conducta estacionaria, es decir que esta serie es no estacionaria, puesto que la tendencia y/o variabilidad cambian en el tiempo. Los cambios en la media determinan una tendencia a crecer o decrecer a largo plazo, por lo que la serie no oscila alrededor de un valor constante inclusive ha ido en aumento la producción de vehículos automotores.

Ejercicio 2

1.-Usando la serie elegida previamente, presentar en un mismo panel MA(3), MA(5), MA(7) y MA(9)

2.-Realizar una descomposicion clásica (aditiva o multiplicativa). Interpretar

Al descomponer de manera aditiva la serie de producción de vehiculos automotores, podemos constatar que tiene estacionalidad y que en ciertos periodos aumenta la producción y viceversa, asi como ver especificamnte la grafica cilcicla, tendencial incluso la irregularidad.

3. En un mismo grafico presentar:

  1. Si existe evidencia de estacionalidad generar grafico de serie original y serie desestacionalizada

Ejercicio 3

1. De acuerdo con las caracteristicas de la serie elegida en los ejercicios 1 y 2, se pide presentar una propuesta de modelo de tendencia con el mejor ajuste. Especificamente se solicita:

a) Presentar la estimación del modelo de regresión en función del tiempo, el tiempo al cuadrado y/o medias estacionales.

Modelo I

summary(modelo1)

Call:
lm(formula = St ~ time(St))

Residuals:
    Min      1Q  Median      3Q     Max 
-124586  -14157    2981   17476  107525 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -16109869     304081  -52.98   <2e-16 ***
time(St)         8123        152   53.45   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 32260 on 425 degrees of freedom
Multiple R-squared:  0.8705,    Adjusted R-squared:  0.8702 
F-statistic:  2857 on 1 and 425 DF,  p-value: < 2.2e-16

Modelo II

summary(modelo2)

Call:
lm(formula = St ~ time(St) + I(time(St)^2) + mes.)

Residuals:
    Min      1Q  Median      3Q     Max 
-114373  -14377    1845   16489   72966 

Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
(Intercept)    6.750e+08  5.260e+07  12.834  < 2e-16 ***
time(St)      -6.828e+05  5.258e+04 -12.986  < 2e-16 ***
I(time(St)^2)  1.727e+02  1.314e+01  13.140  < 2e-16 ***
mes.February   4.515e+03  6.037e+03   0.748  0.45496    
mes.March      1.379e+04  6.037e+03   2.284  0.02288 *  
mes.April      1.051e+03  6.037e+03   0.174  0.86193    
mes.May        1.344e+04  6.037e+03   2.226  0.02653 *  
mes.June       1.994e+04  6.037e+03   3.302  0.00104 ** 
mes.July      -3.436e+03  6.037e+03  -0.569  0.56956    
mes.August     1.403e+04  6.080e+03   2.307  0.02156 *  
mes.September  6.856e+03  6.080e+03   1.128  0.26016    
mes.October    2.702e+04  6.080e+03   4.444 1.14e-05 ***
mes.November   1.358e+04  6.080e+03   2.233  0.02606 *  
mes.December  -1.963e+04  6.080e+03  -3.229  0.00134 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 25610 on 413 degrees of freedom
Multiple R-squared:  0.9207,    Adjusted R-squared:  0.9182 
F-statistic: 368.7 on 13 and 413 DF,  p-value: < 2.2e-16

Modelo III

summary(modelo3)

Call:
lm(formula = St ~ mes.)

Residuals:
    Min      1Q  Median      3Q     Max 
-136369  -67230  -16177   44249  234937 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)   133127.9    14992.9   8.879   <2e-16 ***
mes.February    5185.9    21203.1   0.245    0.807    
mes.March      15132.7    21203.1   0.714    0.476    
mes.April       3071.2    21203.1   0.145    0.885    
mes.May        16139.1    21203.1   0.761    0.447    
mes.June       23314.7    21203.1   1.100    0.272    
mes.July         626.8    21203.1   0.030    0.976    
mes.August     13675.5    21354.0   0.640    0.522    
mes.September   7178.9    21354.0   0.336    0.737    
mes.October    28020.8    21354.0   1.312    0.190    
mes.November   15257.4    21354.0   0.714    0.475    
mes.December  -17273.2    21354.0  -0.809    0.419    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 89960 on 415 degrees of freedom
Multiple R-squared:  0.01665,   Adjusted R-squared:  -0.009418 
F-statistic: 0.6387 on 11 and 415 DF,  p-value: 0.7957

b) Interpretar los coeficientes estimados, significancia estadística y R cuadrada.

El modelo elegido y considero mas adecuado es el Modelo III puesto que hay una correlacion de las variables.

  • Coeficientes estimados Los coeficientes van a variar en funcion del tiempo entoces como utlizamos la estimacion de medias estacionales desaparece el primer mes de Enero asi que empezaremos apartir de Febrero

  • Febrero cuando haya un aumento en el tiempo van a aumentar 5185.9 unidades producidas de automotores.
  • Marzo cuando haya un aumento en el tiempo van a aumentar 15132.7 unidades producidas de automotores.
  • Abril cuando haya un aumento en el tiempo van a aumentar 3071.2 unidades producidas de automotores.
  • Mayo cuando haya un aumento en el tiempo van a aumentar 16139.1 unidades producidas de automotores.
  • Junio cuando haya un aumento en el tiempo van a aumentar 23314.7 unidades producidas de automotores.
  • Julio cuando haya un aumento en el tiempo van a aumentar 626.8 unidades producidas de automotores.
  • Agosto cuando haya un aumento en el tiempo van a aumentar 12675.5 unidades producidas de automotores.
  • Septiembre cuando haya un aumento en el tiempo van a aumentar 7178.9 unidades producidas de automotores.
  • Octubre cuando haya un aumento en el tiempo van a aumentar 28020.8 unidades producidas de automotores.
  • Noviembre cuando haya un aumento en el tiempo van a aumentar 15257.4 unidades producidas de automotores.
  • Diciembre cuando haya un aumento en el tiempo van a disminuir -17273.2 unidades producidas de automotores.

  • Significancia estadistica El nivel de significancia establecido es de 0.05 por lo que veremos si se cumple la Hipotesis nula o alternativa de los siguentes coeficietes:


Febrero se cumple la hipoteis alternativa por que tiene una probabilidad de 0.193 Marzo se cumple la hipoteis alternativa por que tiene una probabilidad de 0.524 Abril se cumple la hipoteis alternativa por que tiene una probabilidad de 0.115 Mayo se cumple la hipoteis alternativa por que tiene una probabilidad de 0.553 Junio se cumple la hipoteis alternativa por que tiene una probabilidad de 0.728 Julio se cumple la hipoteis nula por que tiene una probabilidad de 0.024 Agosto se cumple la hipoteis alternativa por que tiene una probabilidad de 0.478 Septiembre se cumple la hipoteis alternativa por que tiene una probabilidad de 0.263 Octubre se cumple la hipoteis alternativa por que tiene una probabilidad de 0.81 Noviembre se cumple la hipoteis alternativa por que tiene una probabilidad de 0.525 *Diciembre se cumple la hipoteis alternativa por que tiene una probabilidad de 0.581

  • R cuadrada El resultado de la R cudrada es de 0.01665 lo que nos dice que es un modelo poco confiable, lo cual significa que es un modelo menos ajustado.

c) Presentar y analizar grafico de los residuos: grafica en el tiempo, grafico cuantil-cuantil, histograma y función de auto correlación (correlograma).

Grafica en el Tiempo

Cuantil-Cuantil

Histograma

Correlograma

d) Evaluar la normalidad de los residuos ocupando la prueba Shapiro-Wilk.

shapiro.test(rstandard(modelo3))

    Shapiro-Wilk normality test

data:  rstandard(modelo3)
W = 0.94311, p-value = 1e-11

e) Escribir la ecuación del modelo de regresión final y las conclusiones del análisis.

\[ PA=B_0+B_1F+B_2M+B_3A+B_4My+B_5J+B_6Jl+B_7Ag+B_8S+B_9O+B_10N+B_11D+X_t \] Con este modelo podemos observar que el modelo se comporta como un componente estocastico asi como lo podemos ver en los diversos graficos que realizamos anteriormente. Tambien debemos de modificar unas cosas dentro del modelo para que sea mas preciso y poder reajustar la bondad de ajuste y sea un modelo mas confiables.

LS0tDQp0aXRsZTogIlRyYWJham8gUHJpbWVyIFBhcmNpYWwiDQphdXRob3I6ICJPbHZlcmEgRXN0cmFkYSBBbGVqYW5kcm8gM0VWNiINCm91dHB1dDoNCiAgaHRtbF9ub3RlYm9vazoNCiAgICB0b2M6IHllcw0KICBodG1sX2RvY3VtZW50Og0KICAgIGRmX3ByaW50OiBwYWdlZA0KICAgIHRvYzogeWVzDQotLS0NCiNFamVyY2ljaW8gMSANCg0KIyMgMS4tRWxlZ2lyICB1bmEgIHNlcmllICBkZSAgdGllbXBvICB5ICBkZXNjcmliaXIgIHN1cyAgY2FyYWN0ZXJpc3RpY2FzICBkZSAgZnJlY3VlbmNpYSAgeSAgdW5pZGFkICBkZSAgbWVkaWRhLGFzaW1pc21vICBjaXRhciAgbGEgIGZ1ZW50ZSAgZGUgIGluZm9ybWFjaW9uLg0KDQpFc3RhIHNlcmllIGVzIHVuYSBzZXJpZSBleHRyYWlkYSBkZSBsYSBpbmR1c3RyaWEgYXV0b21vdHJpeiwgbGEgY3VhbCBub3MgbXVlc3RyYSBsYSBwcm9kdWNjaW9uIHRvdGFsIGRlIHZlaO1jdWxvcyBhdXRvbW90b3JlcyBkZWwgcGFpcyBkZXNkZSBlbCBh8W8gZGUgMTk4MyBoYXN0YSBqdWxpbyBkZWwgMjAxOC4NCg0KRnJlY3VlbmNpYTogTWVuc3VhbCANCg0KVW5pZGFkZSBkZSBtZWRpZGE6TvptZXJvIGRlIHVuaWRhZGVzIHByb2R1Y2lkYXMNCg0KRnVlbnRlOkEgcGFydGlyIGRlbCBh8W8gMjAxNzogSU5FR0kuIEVzdGltYWNp824gZGUgY2lmcmFzIGNvbiBiYXNlIGVuIGxhcyB2ZW50YXMgcmVwb3J0YWRhcyBwb3IgbGEgQXNvY2lhY2nzbiBNZXhpY2FuYSBkZSBsYSBJbmR1c3RyaWEgQXV0b21vdHJpeiAoQU1JQSkgQS5DLiB5IGxhIEVuY3Vlc3RhIE1lbnN1YWwgZGUgbGEgSW5kdXN0cmlhIE1hbnVmYWN0dXJlcmEgKEVNSU0pDQoNCkxpbms6IGh0dHA6Ly93d3cuaW5lZ2kub3JnLm14L3Npc3RlbWFzL2JpZS8gDQoNCmBgYHtyfQ0KYmFzZTwtcmVhZC5jc3YoZmlsZS5jaG9vc2UoImZpbGU6Ly8vRjovQXV0b3MuY3N2IikpDQpgYGANCg0KDQpgYGB7cn0NClN0PC10cyhiYXNlJERhdG8sZnJlcXVlbmN5ID0gMTIsc3RhcnQgPSBjKDE5ODMsMSkpDQpgYGANCg0KIyMyLi1HcmFmaWNhciAgeSAgZGVzY3JpYmlyICBsYXMgIGNhcmFjdGVyaXN0aWNhcyAgZGUgIGxhICBzZXJpZQ0KYGBge3J9DQphdXRvcGxvdChTdCkreWxhYignQ2FudGlkYWQobWlsZXMpJykrZ2d0aXRsZSgnUHJvZHVjY2lvbiBUb3RhbCBkZSB2ZWjtY3Vsb3MgYXV0b21vdG9yZXMgZW4gTel4aWNvJykrZ2VvbV9saW5lKGNvbG9yPSd0dXJxdW9pc2U0JykNCmBgYA0KTGFzIGNhcmFjdGVyaXN0aWNhcyBkZSBlc3RhIHNlcmllIGRlIHRpZW1wbyBzb24gbGFzIHNpZ3VpZW50ZXM6DQoqKioNCiogRXMgKipUZW5kZW5jaWFsKiogcG9yIHF1ZSBzZSB2ZSB1biBjcmVjaW1pZW50byBtdXkgbm90YWJsZSBlbiBsYSBncmFmaWNhIGxvIGN1YWwgbm9zIGluZGljYSBxdWUgZGVzZGUgMTk4MyBoYW4gYXVtZW50YWRvIGxhcyBwcm9kdWNjaW9uIGRlIHZlaGljdWxvcyBhdXRvbW90b3JlcyBlbiBlbCBwYWlzIGluaWNpYW5kbyBjb24gMjcsMDAxIHVuaWRhZGVzIGVuIGVuZXJvIGRlIDE5ODMgeSAzMDUsNDIwIHJlZ2lzdHJhZGFzIGhhc3RhIGp1bGlvIGRlbCAyMDE4LCBhdW1lbnRhbmRvIGxhIHByb2R1Y2Npb24gaGFzdGEgMTEgdmVjZXMgbWFzIGRlIGxhcyB1bmlkYWRlcyBpbmljaWFsZXMuDQoNCiogRXMgKipDaWNsaWNsYSoqIHBvciBxdWUgc2UgcHVlZGUgbm90YXIgdmFyaWFjaW9uZXMgZW4gbGEgZ3JhZmljYSBxdWUgbm9zIGluZGljYW4gcXVlIG5vIGhhIHRlbmlkbyB1biBhdW1lbnRvIGVuICBwcm9kdWNjaW9uIGNvbnN0YW50ZSwgcXVlIGRlYmlkbyBhIGFsZ3Vub3MgZmFjdG9yZXMgZGVudHJvIGRlbCBwcm9jZXNvIGRlIHByb2R1Y2Npb24gbyBlbiBlbCBhc3BlY3RvIGVjb25vbWljbyBkZWwgcGFpcyB0aWVuZGUgYSBwcm9kdWNpciBhbGd1bmFzIHVuaWRhZGVzIG1hcyBvIGFsZ3VuYXMgdW5pZGFkZXMgbWVub3MuDQoNCiogRXMgKipFc3RhY2lvbmFsKiogcG9yIHF1ZSBlbiBjaWVydG9zIHBlcmlvZG9zIGVzcGVjaWZpY29zIGRlbCBh8W8gIHRpZW5lbiBtYXMgcHJvZHVjY2lvbiBkZSB2ZWhpY3Vsb3MgZXN0byBkZWJpZG8gcXVpemFzIGEgdW4gYXVtZW50byBkZSBsYSBkZW1hbmRhLCBhIHVuYSBvZmVydGEgbWFzIGFsdGEgZGUgdmVo7WN1bG9zLCBwb3IgZWwgYXVtZW50byBvIGJhamEgZGUgbGFzIG1hdGVyaWFzIHByaW1hcyBlbnRyZSBvdHJhcyBjb3NhcyBxdWUgc2UgdGllbmVuIHByZXZpc3RhcyBwb3Igc3VlbGVuIHNlciBlbiBsYSBtaXNtYSBlcG9jYSBkZWwgYfFvLg0KDQoNCiMjMy4tIEFuYWxpemFyIHNpIGxhIHNlcmllIGRlIHRpZW1wbyBlbGVnaWRhIHByZXNlbnRhIGVzdGFjaW9uYWxpZGFkDQpFc3RhIHNlcmllIGRlIGxhIHByb2R1Y2Npb24gZGUgdmVo7WN1bG9zIGF1dG9tb3RvcmVzIG5vIG11ZXN0cmEgdW5hIGNvbmR1Y3RhIGVzdGFjaW9uYXJpYSwgZXMgZGVjaXIgcXVlIGVzdGEgc2VyaWUgZXMgbm8gZXN0YWNpb25hcmlhLCBwdWVzdG8gcXVlIGxhIHRlbmRlbmNpYSB5L28gdmFyaWFiaWxpZGFkIGNhbWJpYW4gZW4gZWwgdGllbXBvLiBMb3MgY2FtYmlvcyBlbiBsYSBtZWRpYSBkZXRlcm1pbmFuIHVuYSB0ZW5kZW5jaWEgYSBjcmVjZXIgbyBkZWNyZWNlciBhIGxhcmdvIHBsYXpvLCBwb3IgbG8gcXVlIGxhIHNlcmllIG5vIG9zY2lsYSBhbHJlZGVkb3IgZGUgdW4gdmFsb3IgY29uc3RhbnRlIGluY2x1c2l2ZSBoYSBpZG8gZW4gYXVtZW50byBsYSBwcm9kdWNjafNuIGRlIHZlaO1jdWxvcyBhdXRvbW90b3Jlcy4NCg0KI0VqZXJjaWNpbyAyDQojIzEuLVVzYW5kbyAgbGEgIHNlcmllICBlbGVnaWRhICBwcmV2aWFtZW50ZSwgIHByZXNlbnRhciAgZW4gIHVuICBtaXNtbyAgcGFuZWwgIE1BKDMpLCAgTUEoNSksICBNQSg3KSAgeSBNQSg5KSANCg0KYGBge3J9DQpwMTwtYXV0b3Bsb3QoU3Qsc2VyaWVzPSJiYXNlIikrYXV0b2xheWVyKG1hKFN0LDMpLHNlcmllcz0iMy1NQSIpK3hsYWIoIlRpZW1wbyIpK3lsYWIoIkNhbnRpZGFkIikrZ2d0aXRsZSgiTUEoMykiKQ0KcDI8LWF1dG9wbG90KFN0LHNlcmllcz0iYmFzZSIpK2F1dG9sYXllcihtYShTdCw1KSxzZXJpZXM9IjUtTUEiKSt4bGFiKCJUaWVtcG8iKSt5bGFiKCJDYW50aWRhZCIpK2dndGl0bGUoIk1BKDUpIikNCnAzPC1hdXRvcGxvdChTdCxzZXJpZXM9ImJhc2UiKSthdXRvbGF5ZXIobWEoU3QsNyksc2VyaWVzPSI3LU1BIikreGxhYigiVGllbXBvIikreWxhYigiQ2FudGlkYWQiKStnZ3RpdGxlKCJNQSg3KSIpDQpwNDwtYXV0b3Bsb3QoU3Qsc2VyaWVzPSJiYXNlIikrYXV0b2xheWVyKG1hKFN0LDkpLHNlcmllcz0iOS1NQSIpK3hsYWIoIlRpZW1wbyIpK3lsYWIoIkNhbnRpZGFkIikrZ2d0aXRsZSgiTUEoOSkiKQ0KZ3JpZC5hcnJhbmdlKHAxLHAyLHAzLHA0KQ0KYGBgDQoNCg0KIyMgMi4tUmVhbGl6YXIgIHVuYSAgZGVzY29tcG9zaWNpb24gIGNs4XNpY2EgIChhZGl0aXZhICBvICBtdWx0aXBsaWNhdGl2YSkuICBJbnRlcnByZXRhcg0KYGBge3J9DQpmaXQ8LWRlY29tcG9zZShTdCx0eXBlPSdhZGRpdGl2ZScpDQpwbG90KGZpdCkNCmBgYA0KDQpBbCBkZXNjb21wb25lciBkZSBtYW5lcmEgYWRpdGl2YSBsYSBzZXJpZSBkZSBwcm9kdWNjafNuIGRlIHZlaGljdWxvcyBhdXRvbW90b3JlcywgcG9kZW1vcyBjb25zdGF0YXIgcXVlIHRpZW5lIGVzdGFjaW9uYWxpZGFkIHkgcXVlIGVuIGNpZXJ0b3MgcGVyaW9kb3MgYXVtZW50YSBsYSBwcm9kdWNjafNuIHkgdmljZXZlcnNhLCBhc2kgY29tbyB2ZXIgZXNwZWNpZmljYW1udGUgbGEgZ3JhZmljYSBjaWxjaWNsYSwgdGVuZGVuY2lhbCBpbmNsdXNvIGxhIGlycmVndWxhcmlkYWQuDQoNCiMjMy4gIEVuICB1biAgbWlzbW8gIGdyYWZpY28gcHJlc2VudGFyOiAgDQphKSAgU2kgIGV4aXN0ZSAgZXZpZGVuY2lhICBkZSAgZXN0YWNpb25hbGlkYWQgIGdlbmVyYXIgIGdyYWZpY28gIGRlICBzZXJpZSAgb3JpZ2luYWwgIHkgIHNlcmllICBkZXNlc3RhY2lvbmFsaXphZGENCg0KYGBge3J9DQpwNTwtYXV0b3Bsb3QoU3QpK3lsYWIoJ0NhbnRpZGFkKG1pbGVzKScpK2dndGl0bGUoJ1Byb2R1Y2Npb24gVG90YWwgZGUgdmVo7WN1bG9zIGF1dG9tb3RvcmVzIGVuIE3peGljbycpK2dlb21fbGluZShjb2xvcj0ndHVycXVvaXNlNCcpDQpwNjwtYXV0b3Bsb3QoU3Qsc2VyaWVzPSJiYXNlIikrYXV0b2xheWVyKHNlYXNhZGooZml0KSxzZXJpZXM9IlNlYXNvbmFsbHkgIGFkai4gIGRhdGEiKSt4bGFiKCJUaWVtcG8iKSt5bGFiKCJDYW50aWRhZCIpK2dndGl0bGUoIlByb2R1Y2Npb24gVG90YWwgZGUgdmVo7WN1bG9zIGF1dG9tb3RvcmVzIGVuIE3peGljbyIpDQpncmlkLmFycmFuZ2UocDUscDYpDQpgYGANCg0KI0VqZXJjaWNpbyAzDQoNCiMjMS4gRGUgIGFjdWVyZG8gIGNvbiAgbGFzICBjYXJhY3RlcmlzdGljYXMgIGRlICBsYSAgc2VyaWUgIGVsZWdpZGEgIGVuICBsb3MgIGVqZXJjaWNpb3MgIDEgIHkgIDIsICBzZSAgcGlkZSAgcHJlc2VudGFyIHVuYSAgcHJvcHVlc3RhICBkZSAgbW9kZWxvICBkZSAgdGVuZGVuY2lhICBjb24gIGVsICBtZWpvciAgYWp1c3RlLiAgRXNwZWNpZmljYW1lbnRlICBzZSAgc29saWNpdGE6DQoNCiMjI2EpICBQcmVzZW50YXIgIGxhICBlc3RpbWFjafNuICBkZWwgIG1vZGVsbyAgZGUgIHJlZ3Jlc2nzbiAgZW4gIGZ1bmNp824gIGRlbCAgdGllbXBvLCAgZWwgIHRpZW1wbyAgYWwgY3VhZHJhZG8gIHkvbyAgbWVkaWFzICBlc3RhY2lvbmFsZXMuDQoqKk1vZGVsbyBJKioNCmBgYHtyfQ0KbW9kZWxvMTwtbG0oU3R+dGltZShTdCkpDQpzdW1tYXJ5KG1vZGVsbzEpDQpgYGANCg0KKipNb2RlbG8gSUkqKg0KYGBge3J9DQptZXMuPC1zZWFzb24oU3QpDQptb2RlbG8yIDwtbG0oU3R+dGltZShTdCkrSSh0aW1lKFN0KV4yKSttZXMuKQ0Kc3VtbWFyeShtb2RlbG8yKQ0KYGBgDQoNCioqTW9kZWxvIElJSSoqDQpgYGB7cn0NCm1lcy48LXNlYXNvbihTdCkNCm1vZGVsbzM8LWxtKFN0fm1lcy4pDQpzdW1tYXJ5KG1vZGVsbzMpDQpgYGANCg0KIyMjYikgIEludGVycHJldGFyICBsb3MgIGNvZWZpY2llbnRlcyAgZXN0aW1hZG9zLCAgc2lnbmlmaWNhbmNpYSAgZXN0YWTtc3RpY2EgIHkgIFIgIGN1YWRyYWRhLg0KRWwgbW9kZWxvIGVsZWdpZG8geSBjb25zaWRlcm8gbWFzIGFkZWN1YWRvIGVzIGVsICpNb2RlbG8gSUlJKiBwdWVzdG8gcXVlIGhheSB1bmEgY29ycmVsYWNpb24gZGUgbGFzIHZhcmlhYmxlcy4NCg0KKiAqKkNvZWZpY2llbnRlcyBlc3RpbWFkb3MqKg0KTG9zIGNvZWZpY2llbnRlcyB2YW4gYSB2YXJpYXIgZW4gZnVuY2lvbiBkZWwgdGllbXBvIGVudG9jZXMgY29tbyB1dGxpemFtb3MgbGEgZXN0aW1hY2lvbiBkZSBtZWRpYXMgZXN0YWNpb25hbGVzIGRlc2FwYXJlY2UgZWwgcHJpbWVyIG1lcyBkZSBFbmVybyBhc2kgcXVlIGVtcGV6YXJlbW9zIGFwYXJ0aXIgZGUgRmVicmVybyANCg0KDQoqKioNCiogRmVicmVybyBjdWFuZG8gaGF5YSB1biBhdW1lbnRvIGVuIGVsIHRpZW1wbyB2YW4gYSBhdW1lbnRhciA1MTg1LjkgdW5pZGFkZXMgcHJvZHVjaWRhcyBkZSBhdXRvbW90b3Jlcy4NCiogTWFyem8gY3VhbmRvIGhheWEgdW4gYXVtZW50byBlbiBlbCB0aWVtcG8gdmFuIGEgYXVtZW50YXIgMTUxMzIuNyB1bmlkYWRlcyBwcm9kdWNpZGFzIGRlIGF1dG9tb3RvcmVzLg0KKiBBYnJpbCBjdWFuZG8gaGF5YSB1biBhdW1lbnRvIGVuIGVsIHRpZW1wbyB2YW4gYSBhdW1lbnRhciAzMDcxLjIgdW5pZGFkZXMgcHJvZHVjaWRhcyBkZSBhdXRvbW90b3Jlcy4NCiogTWF5byBjdWFuZG8gaGF5YSB1biBhdW1lbnRvIGVuIGVsIHRpZW1wbyB2YW4gYSBhdW1lbnRhciAxNjEzOS4xIHVuaWRhZGVzIHByb2R1Y2lkYXMgZGUgYXV0b21vdG9yZXMuDQoqIEp1bmlvIGN1YW5kbyBoYXlhIHVuIGF1bWVudG8gZW4gZWwgdGllbXBvIHZhbiBhIGF1bWVudGFyIDIzMzE0LjcgdW5pZGFkZXMgcHJvZHVjaWRhcyBkZSBhdXRvbW90b3Jlcy4NCiogSnVsaW8gY3VhbmRvIGhheWEgdW4gYXVtZW50byBlbiBlbCB0aWVtcG8gdmFuIGEgYXVtZW50YXIgNjI2LjggdW5pZGFkZXMgcHJvZHVjaWRhcyBkZSBhdXRvbW90b3Jlcy4NCiogQWdvc3RvIGN1YW5kbyBoYXlhIHVuIGF1bWVudG8gZW4gZWwgdGllbXBvIHZhbiBhIGF1bWVudGFyIDEyNjc1LjUgdW5pZGFkZXMgcHJvZHVjaWRhcyBkZSBhdXRvbW90b3Jlcy4NCiogU2VwdGllbWJyZSBjdWFuZG8gaGF5YSB1biBhdW1lbnRvIGVuIGVsIHRpZW1wbyB2YW4gYSBhdW1lbnRhciA3MTc4LjkgdW5pZGFkZXMgcHJvZHVjaWRhcyBkZSBhdXRvbW90b3Jlcy4NCiogT2N0dWJyZSBjdWFuZG8gaGF5YSB1biBhdW1lbnRvIGVuIGVsIHRpZW1wbyB2YW4gYSBhdW1lbnRhciAyODAyMC44IHVuaWRhZGVzIHByb2R1Y2lkYXMgZGUgYXV0b21vdG9yZXMuDQoqIE5vdmllbWJyZSBjdWFuZG8gaGF5YSB1biBhdW1lbnRvIGVuIGVsIHRpZW1wbyB2YW4gYSBhdW1lbnRhciAxNTI1Ny40IHVuaWRhZGVzIHByb2R1Y2lkYXMgZGUgYXV0b21vdG9yZXMuDQoqIERpY2llbWJyZSBjdWFuZG8gaGF5YSB1biBhdW1lbnRvIGVuIGVsIHRpZW1wbyB2YW4gYSBkaXNtaW51aXIgLTE3MjczLjIgdW5pZGFkZXMgcHJvZHVjaWRhcyBkZSBhdXRvbW90b3Jlcy4NCg0KKiAqKlNpZ25pZmljYW5jaWEgZXN0YWRpc3RpY2EqKg0KRWwgbml2ZWwgZGUgc2lnbmlmaWNhbmNpYSBlc3RhYmxlY2lkbyBlcyBkZSAwLjA1IHBvciBsbyBxdWUgdmVyZW1vcyBzaSBzZSBjdW1wbGUgbGEgSGlwb3Rlc2lzIG51bGEgbyBhbHRlcm5hdGl2YSBkZSBsb3Mgc2lndWVudGVzIGNvZWZpY2lldGVzOg0KDQoqKioNCipGZWJyZXJvIHNlIGN1bXBsZSBsYSBoaXBvdGVpcyBhbHRlcm5hdGl2YSBwb3IgcXVlIHRpZW5lIHVuYSBwcm9iYWJpbGlkYWQgZGUgMC4xOTMNCipNYXJ6byBzZSBjdW1wbGUgbGEgaGlwb3RlaXMgYWx0ZXJuYXRpdmEgcG9yIHF1ZSB0aWVuZSB1bmEgcHJvYmFiaWxpZGFkIGRlIDAuNTI0DQoqQWJyaWwgc2UgY3VtcGxlIGxhIGhpcG90ZWlzIGFsdGVybmF0aXZhIHBvciBxdWUgdGllbmUgdW5hIHByb2JhYmlsaWRhZCBkZSAwLjExNQ0KKk1heW8gc2UgY3VtcGxlIGxhIGhpcG90ZWlzIGFsdGVybmF0aXZhIHBvciBxdWUgdGllbmUgdW5hIHByb2JhYmlsaWRhZCBkZSAwLjU1Mw0KKkp1bmlvIHNlIGN1bXBsZSBsYSBoaXBvdGVpcyBhbHRlcm5hdGl2YSBwb3IgcXVlIHRpZW5lIHVuYSBwcm9iYWJpbGlkYWQgZGUgMC43MjgNCipKdWxpbyBzZSBjdW1wbGUgbGEgaGlwb3RlaXMgbnVsYSBwb3IgcXVlIHRpZW5lIHVuYSBwcm9iYWJpbGlkYWQgZGUgMC4wMjQNCipBZ29zdG8gc2UgY3VtcGxlIGxhIGhpcG90ZWlzIGFsdGVybmF0aXZhIHBvciBxdWUgdGllbmUgdW5hIHByb2JhYmlsaWRhZCBkZSAwLjQ3OA0KKlNlcHRpZW1icmUgc2UgY3VtcGxlIGxhIGhpcG90ZWlzIGFsdGVybmF0aXZhIHBvciBxdWUgdGllbmUgdW5hIHByb2JhYmlsaWRhZCBkZSAwLjI2Mw0KKk9jdHVicmUgc2UgY3VtcGxlIGxhIGhpcG90ZWlzIGFsdGVybmF0aXZhIHBvciBxdWUgdGllbmUgdW5hIHByb2JhYmlsaWRhZCBkZSAwLjgxDQoqTm92aWVtYnJlIHNlIGN1bXBsZSBsYSBoaXBvdGVpcyBhbHRlcm5hdGl2YSBwb3IgcXVlIHRpZW5lIHVuYSBwcm9iYWJpbGlkYWQgZGUgMC41MjUNCipEaWNpZW1icmUgc2UgY3VtcGxlIGxhIGhpcG90ZWlzIGFsdGVybmF0aXZhIHBvciBxdWUgdGllbmUgdW5hIHByb2JhYmlsaWRhZCBkZSAwLjU4MQ0KDQoqICoqUiBjdWFkcmFkYSoqDQpFbCByZXN1bHRhZG8gZGUgbGEgUiBjdWRyYWRhIGVzIGRlIDAuMDE2NjUgbG8gcXVlIG5vcyBkaWNlIHF1ZSBlcyB1biBtb2RlbG8gcG9jbyBjb25maWFibGUsIGxvIGN1YWwgc2lnbmlmaWNhIHF1ZSBlcyB1biBtb2RlbG8gbWVub3MgYWp1c3RhZG8uDQoNCiMjI2MpICBQcmVzZW50YXIgIHkgIGFuYWxpemFyICBncmFmaWNvICBkZSAgbG9zICByZXNpZHVvczogIGdyYWZpY2EgIGVuICBlbCAgdGllbXBvLCAgZ3JhZmljbyBjdWFudGlsLWN1YW50aWwsIGhpc3RvZ3JhbWEgIHkgIGZ1bmNp824gIGRlIGF1dG8gY29ycmVsYWNp824gIChjb3JyZWxvZ3JhbWEpLg0KKipHcmFmaWNhIGVuIGVsIFRpZW1wbyoqDQpgYGB7cn0NCnBsb3QocnN0YW5kYXJkKG1vZGVsbzMpLHR5cGU9Im8iLHhsYWI9IlRpZW1wbyIseWxhYj0iUmVzaWR1YWxlcyBFc3RhbmRhcml6YWRvcyIpDQpgYGANCioqQ3VhbnRpbC1DdWFudGlsKioNCg0KYGBge3J9DQpxcW5vcm0ocnN0YW5kYXJkKG1vZGVsbzMpKTtxcWxpbmUocnN0YW5kYXJkKG1vZGVsbzEpLGNvbD0ncmVkJykNCmBgYA0KDQoqKkhpc3RvZ3JhbWEqKg0KYGBge3J9DQpoaXN0KHJzdGFuZGFyZChtb2RlbG8zKSx4bGFiPSdSZXNpZHVhbGVzICBlc3RhbmRhcml6YWRvcycpDQpgYGANCioqQ29ycmVsb2dyYW1hKioNCmBgYHtyfQ0KZ2dBY2YocnN0YW5kYXJkKG1vZGVsbzMpKQ0KYGBgDQoNCiMjI2QpICBFdmFsdWFyICBsYSAgbm9ybWFsaWRhZCAgZGUgIGxvcyAgcmVzaWR1b3MgIG9jdXBhbmRvICBsYSAgcHJ1ZWJhICBTaGFwaXJvLVdpbGsuDQoNCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KHJzdGFuZGFyZChtb2RlbG8zKSkNCmBgYA0KDQojIyNlKSAgRXNjcmliaXIgIGxhICBlY3VhY2nzbiAgZGVsICBtb2RlbG8gIGRlICByZWdyZXNp824gIGZpbmFsICB5ICBsYXMgIGNvbmNsdXNpb25lcyAgZGVsICBhbuFsaXNpcy4NCg0KJCQgUEE9Ql8wK0JfMUYrQl8yTStCXzNBK0JfNE15K0JfNUorQl82SmwrQl83QWcrQl84UytCXzlPK0JfMTBOK0JfMTFEK1hfdCAkJA0KQ29uIGVzdGUgbW9kZWxvIHBvZGVtb3Mgb2JzZXJ2YXIgcXVlIGVsIG1vZGVsbyBzZSBjb21wb3J0YSBjb21vIHVuIGNvbXBvbmVudGUgZXN0b2Nhc3RpY28gYXNpIGNvbW8gbG8gcG9kZW1vcyB2ZXIgZW4gbG9zIGRpdmVyc29zIGdyYWZpY29zIHF1ZSByZWFsaXphbW9zIGFudGVyaW9ybWVudGUuIFRhbWJpZW4gZGViZW1vcyBkZSBtb2RpZmljYXIgdW5hcyBjb3NhcyBkZW50cm8gZGVsIG1vZGVsbyBwYXJhIHF1ZSBzZWEgbWFzIHByZWNpc28geSBwb2RlciByZWFqdXN0YXIgbGEgYm9uZGFkIGRlIGFqdXN0ZSB5IHNlYSB1biBtb2RlbG8gbWFzIGNvbmZpYWJsZXMu