TAREA1
1.1
Se describe como “bien de capital” de forma universal a todos aquellos equipos, inmuebles e instalaciones que son utilizadas por una compañía para producir y ofrecer todos sus productos o servicios; si se está hablando de negocios que operan internacionalmente, los bienes de capital son todos las gastos que tienen las compañías mientras se encuentran operativas, incluyendo manutención de oficinas (pago de alquiler, papelería) y uniformes de los empleados.
Los bienes de capital serán utilizados para ser parte del proceso productivo de otro bien, teniendo en cuenta que este tipo de bienes son duraderos ya que los capitalistas invertirán de la mejor forma para adquirir la mejor maquinaria y esto les ayude a una mayor obtención de beneficio. Los bienes de capital al ser fusionado con el capital humano van a generar el proceso de acumulación de capital, esto es generado por que la maquinaria será la encargada de transformar lo puesto en marca en el proceso de producción y el trabajador tendrá las habilidades físico-intelectuales que le ayudaran a maniobrar los bienes de capital para sacarle el mejor provecho. Dentro de la teoría económica tradicional, la industria de bienes de capital desempeña el papel de pivote del desarrollo económico, y por medio de ella se mide el nivel tecnológico y lo avanzado del sector productivo. Sin embargo, en la actualidad estas afirmaciones se han puesto a prueba, ya que el desarrollo dc la microelectrónica y de algunas ramas del sector servicios, como los puntales del avance tecnológico, parecen contradecir esos postulados. También la tendencia a la globalización hace ver innecesaria una poderosa industria de bienes de capital en cada país. Incluso, algunos países, entre los cuales está México, han optado por reducirla. En el caso de México, la creación de la industria de bienes de capital requiere de importar la tecnología con la consiguiente necesidad de divisas, lo cual plantea a la economía problemas de déficit en cuenta corriente, tendencia a la inflación y devaluaciones periódicas. Además, el impulso al sector de bienes de capital se corresponde con el modelo de industrialización basado en la sustitución de importaciones, y para el neoliberalismo esta industria no tiene cabida por su complejidad y por el atraso tecnológico que arrastra. Los bienes de capital son considerados como portadores del progreso tecnológico, y su magnitud refleja la fuerza productiva de la sociedad capitalista. Son determinantes en el aumento de la productividad social del trabajo y aparecen como la expresión más acabada de la aplicación tecnológica de la ciencia a la producción. Su crecimiento muestra que los avances tecnológicos se han extendido a las ramas del consumo inmediato y que por lo tanto la sociedad destina una parte cada vez mayor de su tiempo de producción a elaborar bienes de capital. El crecimiento y la modernización de los bienes de capital, también llamados capital fijo, están encaminados a acortar el tiempo de producción y a hacer más competitivas las mercancías producidas. Una industria dc bienes de capital poderosa es característica de los países desarrollados, los que concentran buena parte de la riqueza mundial y de los mercados internacionales. Su dominio sobre los países dependientes se extiende no sólo a la esfera económica sino también a la política. Los países que no han podido desarrollar sus bienes de capital tienen economías dependientes, con serios problemas para alcanzar la integración productiva, e incapaces de satisfacer las demandas mínimas de bienestar social de amplias capas de la población. En México el proceso de industrialización se inicia con la fabricación de bienes de consumo, de 1946 a 1956; después siguió la de bienes intermedios y durables, de 1953 a 1970, y a partir de este último año y hasta 1982 con la de bienes de capital. A este modo de industrializarse se le llamó el “modelo de sustitución de importaciones. Para que este modelo funcione se requieren dos condiciones: una, que el Estado proteja a la industria de la competencia externa, y dos, que el sistema económico sea capaz de generar las divisas necesarias para las importaciones de bienes de capital y otros insumos. Los bienes de capital pueden dividirse en tres grupos: los bienes por pedido a largo plazo, los dc catálogo (a corto y largo plazos) y diversos tipos de bienes. Estos tres grupos a su vez se pueden dividir en ocho de fabricantes de bienes de capital con características comunes: a) Empresas de ingeniería. Incluye maquinaria pesada, intercambiadores, equipo azucarero, grúas, recipientes a presión para proceso, etcétera. b) Fabricantes de ramas con identificación propia que manufacturan bienes dc capital: Industria eléctrica. Equipo para generación, transmisión y control de potencia eléctrica. Industria electrónica. Industria automotriz. Camiones y tracto camiones. Se excluyen automóviles. Método de Trabajo. Se eligió la variable de Importaciones de Bienes de Capital, los datos fueron recabados del Instituto Nacional De Estadística Y Geografía [INEGI] de las fechas Enero de 1994 a Diciembre de 2017 y de forma trimestral. No se tomó en cuenta los trimestres trascurridos del año actual [2018] ya que aún no concluye el tercer trimestre y ni ha empezado el cuarto y esto iba a generar un análisis incompleto, se genera de forma aditiva y a continuación se presentan los resultados obtenidos. Justificación de la variable elegida.
El trabajar con esta variable de importaciones de bienes de capital, ha sido muy interesante ya que es un tema muy relevante en la economía en su conjunto, será la encargada de generar un valor en las mercancías al someterse al proceso productivo. Hoy en día existen muchas empresas y el estar analizando esta variable pude encontrar que el capitalista estará de acuerdo en gastar con tal de mejorar su capital, ya que esto trae consigo un incremento en las ganancias y puede generarse que la competencia no tenga las facultades o recursos para poder mejorar su capital y seguir compitiendo.
Importaciones de bienes de capital.
Fuente: INEGI. Importaciones de bienes de capital..
Periodicidad: Trimestral
Fecha de consulta: 17/08/2018 18:39:24
Índice base 2013=100
1.2
library(foreign)
library(forecast)
base<-read.csv(file.choose())
st<- ts(base$fk,frequency=4,start=c(1994,1))
autoplot(st,col="pink", ylab="capital", xlab="años", lwd=3, type="l")

1.3
GRAFICA DE ESTACIONALIDAD DE IMPORTACIONES DE BIENES DE CAPITAL)
base<-read.csv(file.choose())
st<- ts(base$fk,frequency=4,start=c(1994,1))
base<-decompose(st)
autoplot(base$seasonal,col="pink",ylab="Variacion",xlab="año",lwd=1,type="o")

Podemos observar que los datos tienen estacionalidad lo que significa que es influeciada por el factor trimestral.
TAREA2
2.1
**MEDIAS MOVILES
base<-read.csv(file.choose())
st<- ts(base$fk,frequency=4,start=c(1994,1))
p1<-autoplot(st, series ="base")+autolayer(ma(st,3), series = "3-MA")+xlab("Tiempo")+ylab("importacion")+ggtitle("MA(3)")
p2<-autoplot(st, series ="base")+autolayer(ma(st,3), series = "5-MA")+xlab("Tiempo")+ylab("importacion")+ggtitle("MA(5)")
p3<-autoplot(st, series ="base")+autolayer(ma(st,3), series = "7-MA")+xlab("Tiempo")+ylab("importacion")+ggtitle("MA(7)")
p4<-autoplot(st, series ="base")+autolayer(ma(st,3), series = "9-MA")+xlab("Tiempo")+ylab("importacion")+ggtitle("MA(9)")
grid.arrange(p1,p2,p3,p4)

las medias moviles ya graficadas nos muestran una simetria en ellas por lo tanto no sacaremos mediad moviles de medias moviles, tambien por que van en ordenimpar,
2.2
**Descomposición clásica - multiplicativa
fit<-decompose(st, type="multiplicative")
autoplot(fit)

autoplot(fit,series="fk")+ autolayer(seasadj(fit),series="desesta??cionalizada,")+xlab("Year")+ylab("CAPITAL")+ggtitle("IMPORTACION DE K")

2.3
Datos estacionalmente ajustados
autoplot(st, series ="base")+autolayer(seasadj(fit), series ="Seasonally adj. data")+xlab("Tiempo")+ylab("CAPITAL")+ggtitle("importacion de capital")

Podemos observar que existe una simetria entre los datos ya ajustados
TAREA3
TENDENCIAS DETERMINISTAS Y ESTOCÁSTICAS.
library(forecast)
library(foreign)
library(ggplot2)
base<-read.csv(file.choose())
st<- ts(base$fk,frequency=4,start=c(1994,1))
autoplot(st, col="blue",ylab="capital",xlab="tiempo", lwd=3, type="l")+ggtitle('importacion de capital')

En este caso es una tendencia estocásticadebido a que la tendencia percibida es un artefacto de la fuerte correlación positiva entre los puntoscercanos y la creciente varianza del proceso conforme el tiempo avanza
3.1.1
REGRESION EN FUNCION DEL TIEMPO
reg1<-lm(st~ time(st))
summary(reg1)
Call:
lm(formula = st ~ time(st))
Residuals:
Min 1Q Median 3Q Max
-112144 -26408 5679 31762 79346
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -4.427e+07 1.241e+06 -35.68 <2e-16 ***
time(st) 2.225e+04 6.186e+02 35.98 <2e-16 ***
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
Residual standard error: 41990 on 94 degrees of freedom
Multiple R-squared: 0.9323, Adjusted R-squared: 0.9316
F-statistic: 1294 on 1 and 94 DF, p-value: < 2.2e-16
3.1.2
Las medias temporales estacionales se explican con un 0.9316 de la variable independiente residuos estandarizados
REGRESION EN FUNCIION DEL TIEMPO AL CUADRADO
base<-read.csv(file.choose())
st<- ts(base$fk,frequency=4,start=c(1994,1))
time<-season(st)
reg2<-lm(st~time(st)+ I(time(st)^2) + time)
summary(reg2)
Call:
lm(formula = st ~ time(st) + I(time(st)^2) + time)
Residuals:
Min 1Q Median 3Q Max
-102108 -25236 3573 27399 74731
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 9.452e+08 3.644e+08 2.594 0.01108 *
time(st) -9.642e+05 3.633e+05 -2.654 0.00941 **
I(time(st)^2) 2.459e+02 9.057e+01 2.715 0.00795 **
time2Q 2.142e+04 1.100e+04 1.948 0.05452 .
time3Q 2.205e+04 1.100e+04 2.005 0.04798 *
time4Q 4.516e+04 1.100e+04 4.104 8.89e-05 ***
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
Residual standard error: 38090 on 90 degrees of freedom
Multiple R-squared: 0.9467, Adjusted R-squared: 0.9437
F-statistic: 319.4 on 5 and 90 DF, p-value: < 2.2e-16
Las medias estacioneles o temporales se explican ahora un 0.9437 de la variable dependiente.
3.1.3
GRAFICA EN EL TIEMPO
library(ggplot2)
autoplot(st) + geom_smooth(method = "lm",se=FALSE)

autoplot(st)+ geom_smooth()

la grafica de tendencias cuadraticas se comporta de una forma lineal
GRAFICA RESIDUAL
library(ggplot2)
plot(y=rstandard(reg1),x=as.vector(time(st)), xlab = "tiempo", ylab="residuales estandarizados de k", type = 'o')

GRAFICA RESIDUAL REG2
library(ggplot2)
plot(y=rstandard(reg2),x=as.vector(time(st)), xlab = "tiempo", ylab="residuales estandarizados de k", type = 'o')

GRAFICO HISTOGRAMA
hist(rstandard(reg1),xlab='Residuales estandarizados')

NA
el histograma nos muestra que existe sezgo y se ve reflejado del lado izquierdo
GRAFICOS CUALTIL-CUANTIL
qqnorm(rstandard(reg1)); qqline(rstandard(reg1), col='pink')

La normalidad puede ser evaluada al graficar el llamado gráficorcuantil-cuantil (QQ-plot). Tal gráfico presenta los cuantiles de los datosreales versus los cuantiles de una distribución normal teórica por que van sobre la linea
GRAFICO CORRELOGRAMA
ggAcf(rstandard(reg1))

podemos observar que existe correlacion con la grafica anterior, ya que las franjas superan las lineas azules de correlacion
3.1.4
shapiro.test(rstandard(reg1))
Shapiro-Wilk normality test
data: rstandard(reg1)
W = 0.97188, p-value = 0.03682
vemos que p-value= 0.03682 esta por debajo de 0.05 lo que nos indica que la hipotesis nula se rechaza y se acepta la hipotesis alternativa, tambien es correcto decir que el componente estocastico no es normalmente distribuido
3.1.5
MODELO DE REGRESION FINAL Y CONCLUSIONES Como conclusion podemos decir Mediante la descomposición de series temporales se puede generar un mejor pronóstico ya que al observar los datos en una primera instancia no podemos predecir que sucederá en el futuro, por lo cual al hacer este tipo de pasos nos ayuda a poder entender cada uno de los elementos que integra este tipo de serie y generara un mejor resultado.
\[ importacion de BK= B_ 0 +B_1t \]
LS0tDQp0aXRsZTogIkZPUk1BQ0lPTiBERSBDQVBJVEFMIg0KYXV0aG9yOiAiQkFMVEFaQVIgR1VaTUFOIE5JVFpJQSINCm91dHB1dDogDQogICAgICAgaHRtbF9ub3RlYm9vazoNCiAgICAgICAgICAgICAgICB0b2M6dHJ1ZQ0KIyBUQVJFQTENCiMjIDEuMQ0KIyMgMS4yDQojIyAxLjMNCiMgVEFSRUEyDQojIyAyLjENCiMjIDIuMg0KIyMgMi4zDQojIFRBUkVBMw0KIyMgMy4xDQojIyMgMy4xLjENCiMjIyAzLjEuMg0KIyMjIDMuMS4zDQojIyMgMy4xLjQNCiMjIyAzLjEuNSAgICAgICAgICAgICAgICAgICANCi0tLQ0KIyBUQVJFQTENCg0KIyMgMS4xDQpTZSBkZXNjcmliZSBjb21vICJiaWVuIGRlIGNhcGl0YWwiIGRlIGZvcm1hIHVuaXZlcnNhbCBhIHRvZG9zIGFxdWVsbG9zIGVxdWlwb3MsIGlubXVlYmxlcyBlIGluc3RhbGFjaW9uZXMgcXVlIHNvbiB1dGlsaXphZGFzIHBvciB1bmEgY29tcGHx7WEgcGFyYSBwcm9kdWNpciB5IG9mcmVjZXIgdG9kb3Mgc3VzIHByb2R1Y3RvcyBvIHNlcnZpY2lvczsgc2kgc2UgZXN04SBoYWJsYW5kbyBkZSBuZWdvY2lvcyBxdWUgb3BlcmFuIGludGVybmFjaW9uYWxtZW50ZSwgbG9zIGJpZW5lcyBkZSBjYXBpdGFsIHNvbiB0b2RvcyBsYXMgZ2FzdG9zIHF1ZSB0aWVuZW4gbGFzIGNvbXBh8e1hcyBtaWVudHJhcyBzZSBlbmN1ZW50cmFuIG9wZXJhdGl2YXMsIGluY2x1eWVuZG8gbWFudXRlbmNp824gZGUgb2ZpY2luYXMgKHBhZ28gZGUgYWxxdWlsZXIsIHBhcGVsZXLtYSkgeSB1bmlmb3JtZXMgZGUgbG9zIGVtcGxlYWRvcy4NCg0KTG9zIGJpZW5lcyBkZSBjYXBpdGFsIHNlcuFuIHV0aWxpemFkb3MgcGFyYSBzZXIgcGFydGUgZGVsIHByb2Nlc28gcHJvZHVjdGl2byBkZSBvdHJvIGJpZW4sIHRlbmllbmRvIGVuIGN1ZW50YSBxdWUgZXN0ZSB0aXBvIGRlIGJpZW5lcyBzb24gZHVyYWRlcm9zIHlhIHF1ZSBsb3MgY2FwaXRhbGlzdGFzIGludmVydGly4W4gZGUgbGEgbWVqb3IgZm9ybWEgcGFyYSBhZHF1aXJpciBsYSBtZWpvciBtYXF1aW5hcmlhIHkgZXN0byBsZXMgYXl1ZGUgYSB1bmEgbWF5b3Igb2J0ZW5jafNuIGRlIGJlbmVmaWNpby4gDQpMb3MgYmllbmVzIGRlIGNhcGl0YWwgYWwgc2VyIGZ1c2lvbmFkbyBjb24gZWwgY2FwaXRhbCBodW1hbm8gdmFuIGEgZ2VuZXJhciBlbCBwcm9jZXNvIGRlIGFjdW11bGFjafNuIGRlIGNhcGl0YWwsIGVzdG8gZXMgZ2VuZXJhZG8gcG9yIHF1ZSBsYSBtYXF1aW5hcmlhIHNlcuEgbGEgZW5jYXJnYWRhIGRlIHRyYW5zZm9ybWFyIGxvIHB1ZXN0byBlbiBtYXJjYSBlbiBlbCBwcm9jZXNvIGRlIHByb2R1Y2Np824geSBlbCB0cmFiYWphZG9yIHRlbmRy4SBsYXMgaGFiaWxpZGFkZXMgZu1zaWNvLWludGVsZWN0dWFsZXMgcXVlIGxlIGF5dWRhcmFuIGEgbWFuaW9icmFyIGxvcyBiaWVuZXMgZGUgY2FwaXRhbCBwYXJhIHNhY2FybGUgZWwgbWVqb3IgcHJvdmVjaG8uDQpEZW50cm8gZGUgbGEgdGVvcu1hIGVjb27zbWljYSB0cmFkaWNpb25hbCwgbGEgaW5kdXN0cmlhIGRlIGJpZW5lcyBkZSBjYXBpdGFsIGRlc2VtcGXxYSBlbCBwYXBlbCBkZSBwaXZvdGUgZGVsIGRlc2Fycm9sbG8gZWNvbvNtaWNvLCB5IHBvciBtZWRpbyBkZSBlbGxhIHNlIG1pZGUgZWwgbml2ZWwgdGVjbm9s82dpY28geSBsbyBhdmFuemFkbyBkZWwgc2VjdG9yIHByb2R1Y3Rpdm8uIFNpbiBlbWJhcmdvLCBlbiBsYSBhY3R1YWxpZGFkIGVzdGFzIGFmaXJtYWNpb25lcyBzZSBoYW4gcHVlc3RvIGEgcHJ1ZWJhLCB5YSBxdWUgZWwgZGVzYXJyb2xsbyBkYyBsYSBtaWNyb2VsZWN0cvNuaWNhIHkgZGUgYWxndW5hcyByYW1hcyBkZWwgc2VjdG9yIHNlcnZpY2lvcywgY29tbyBsb3MgcHVudGFsZXMgZGVsIGF2YW5jZSB0ZWNub2zzZ2ljbywgcGFyZWNlbiBjb250cmFkZWNpciBlc29zIHBvc3R1bGFkb3MuIFRhbWJp6W4gbGEgdGVuZGVuY2lhIGEgbGEgZ2xvYmFsaXphY2nzbiBoYWNlIHZlciBpbm5lY2VzYXJpYSB1bmEgcG9kZXJvc2EgaW5kdXN0cmlhIGRlIGJpZW5lcyBkZSBjYXBpdGFsIGVuIGNhZGEgcGHtcy4gSW5jbHVzbywgYWxndW5vcyBwYe1zZXMsIGVudHJlIGxvcyBjdWFsZXMgZXN04SBN6XhpY28sIGhhbiBvcHRhZG8gcG9yIHJlZHVjaXJsYS4NCkVuIGVsIGNhc28gZGUgTel4aWNvLCBsYSBjcmVhY2nzbiBkZSBsYSBpbmR1c3RyaWEgZGUgYmllbmVzIGRlIGNhcGl0YWwgcmVxdWllcmUgZGUgaW1wb3J0YXIgbGEgdGVjbm9sb2ftYSBjb24gbGEgY29uc2lndWllbnRlIG5lY2VzaWRhZCBkZSBkaXZpc2FzLCBsbyBjdWFsIHBsYW50ZWEgYSBsYSBlY29ub23tYSBwcm9ibGVtYXMgZGUgZOlmaWNpdCBlbiBjdWVudGEgY29ycmllbnRlLCB0ZW5kZW5jaWEgYSBsYSBpbmZsYWNp824geSBkZXZhbHVhY2lvbmVzIHBlcmnzZGljYXMuIEFkZW3hcywgZWwgaW1wdWxzbyBhbCBzZWN0b3IgZGUgYmllbmVzIGRlIGNhcGl0YWwgc2UgY29ycmVzcG9uZGUgY29uIGVsIG1vZGVsbyBkZSBpbmR1c3RyaWFsaXphY2nzbiBiYXNhZG8gZW4gbGEgc3VzdGl0dWNp824gZGUgaW1wb3J0YWNpb25lcywgeSBwYXJhIGVsIG5lb2xpYmVyYWxpc21vIGVzdGEgaW5kdXN0cmlhIG5vIHRpZW5lIGNhYmlkYSBwb3Igc3UgY29tcGxlamlkYWQgeSBwb3IgZWwgYXRyYXNvIHRlY25vbPNnaWNvIHF1ZSBhcnJhc3RyYS4NCkxvcyBiaWVuZXMgZGUgY2FwaXRhbCBzb24gY29uc2lkZXJhZG9zIGNvbW8gcG9ydGFkb3JlcyBkZWwgcHJvZ3Jlc28gdGVjbm9s82dpY28sIHkgc3UgbWFnbml0dWQgcmVmbGVqYSBsYSBmdWVyemEgcHJvZHVjdGl2YSBkZSBsYSBzb2NpZWRhZCBjYXBpdGFsaXN0YS4gU29uIGRldGVybWluYW50ZXMgZW4gZWwgYXVtZW50byBkZSBsYSBwcm9kdWN0aXZpZGFkIHNvY2lhbCBkZWwgdHJhYmFqbyB5IGFwYXJlY2VuIGNvbW8gbGEgZXhwcmVzafNuIG3hcyBhY2FiYWRhIGRlIGxhIGFwbGljYWNp824gdGVjbm9s82dpY2EgZGUgbGEgY2llbmNpYSBhIGxhIHByb2R1Y2Np824uIFN1IGNyZWNpbWllbnRvIG11ZXN0cmEgcXVlIGxvcyBhdmFuY2VzIHRlY25vbPNnaWNvcyBzZSBoYW4gZXh0ZW5kaWRvIGEgbGFzIHJhbWFzIGRlbCBjb25zdW1vIGlubWVkaWF0byB5IHF1ZSBwb3IgbG8gdGFudG8gbGEgc29jaWVkYWQgZGVzdGluYSB1bmEgcGFydGUgY2FkYSB2ZXogbWF5b3IgZGUgc3UgdGllbXBvIGRlIHByb2R1Y2Np824gYSBlbGFib3JhciBiaWVuZXMgZGUgY2FwaXRhbC4NCkVsIGNyZWNpbWllbnRvIHkgbGEgbW9kZXJuaXphY2nzbiBkZSBsb3MgYmllbmVzIGRlIGNhcGl0YWwsIHRhbWJp6W4gbGxhbWFkb3MgY2FwaXRhbCBmaWpvLCBlc3ThbiBlbmNhbWluYWRvcyBhIGFjb3J0YXIgZWwgdGllbXBvIGRlIHByb2R1Y2Np824geSBhIGhhY2VyIG3hcyBjb21wZXRpdGl2YXMgbGFzIG1lcmNhbmPtYXMgcHJvZHVjaWRhcy4gVW5hIGluZHVzdHJpYSBkYyBiaWVuZXMgZGUgY2FwaXRhbCBwb2Rlcm9zYSBlcyBjYXJhY3Rlcu1zdGljYSBkZSBsb3MgcGHtc2VzIGRlc2Fycm9sbGFkb3MsIGxvcyBxdWUgY29uY2VudHJhbiBidWVuYSBwYXJ0ZSBkZSBsYSByaXF1ZXphIG11bmRpYWwgeSBkZSBsb3MgbWVyY2Fkb3MgaW50ZXJuYWNpb25hbGVzLiBTdSBkb21pbmlvIHNvYnJlIGxvcyBwYe1zZXMgZGVwZW5kaWVudGVzIHNlIGV4dGllbmRlIG5vIHPzbG8gYSBsYSBlc2ZlcmEgZWNvbvNtaWNhIHNpbm8gdGFtYmnpbiBhIGxhIHBvbO10aWNhLg0KTG9zIHBh7XNlcyBxdWUgbm8gaGFuIHBvZGlkbyBkZXNhcnJvbGxhciBzdXMgYmllbmVzIGRlIGNhcGl0YWwgdGllbmVuIGVjb25vbe1hcyBkZXBlbmRpZW50ZXMsIGNvbiBzZXJpb3MgcHJvYmxlbWFzIHBhcmEgYWxjYW56YXIgbGEgaW50ZWdyYWNp824gcHJvZHVjdGl2YSwgZSBpbmNhcGFjZXMgZGUgc2F0aXNmYWNlciBsYXMgZGVtYW5kYXMgbe1uaW1hcyBkZSBiaWVuZXN0YXIgc29jaWFsIGRlIGFtcGxpYXMgY2FwYXMgZGUgbGEgcG9ibGFjafNuLg0KRW4gTel4aWNvIGVsIHByb2Nlc28gZGUgaW5kdXN0cmlhbGl6YWNp824gc2UgaW5pY2lhIGNvbiBsYSBmYWJyaWNhY2nzbiBkZSBiaWVuZXMgZGUgY29uc3VtbywgZGUgMTk0NiBhIDE5NTY7IGRlc3B16XMgc2lndWnzIGxhIGRlIGJpZW5lcyBpbnRlcm1lZGlvcyB5IGR1cmFibGVzLCBkZSAxOTUzIGEgMTk3MCwgeSBhIHBhcnRpciBkZSBlc3RlIPpsdGltbyBh8W8geSBoYXN0YSAxOTgyIGNvbiBsYSBkZSBiaWVuZXMgZGUgY2FwaXRhbC4gQSBlc3RlIG1vZG8gZGUgaW5kdXN0cmlhbGl6YXJzZSBzZSBsZSBsbGFt8yBlbCAibW9kZWxvIGRlIHN1c3RpdHVjafNuIGRlIGltcG9ydGFjaW9uZXMuIFBhcmEgcXVlIGVzdGUgbW9kZWxvIGZ1bmNpb25lIHNlIHJlcXVpZXJlbiBkb3MgY29uZGljaW9uZXM6IHVuYSwgcXVlIGVsIEVzdGFkbyBwcm90ZWphIGEgbGEgaW5kdXN0cmlhIGRlIGxhIGNvbXBldGVuY2lhIGV4dGVybmEsIHkgZG9zLCBxdWUgZWwgc2lzdGVtYSBlY29u821pY28gc2VhIGNhcGF6IGRlIGdlbmVyYXIgbGFzIGRpdmlzYXMgbmVjZXNhcmlhcyBwYXJhIGxhcyBpbXBvcnRhY2lvbmVzIGRlIGJpZW5lcyBkZSBjYXBpdGFsIHkgb3Ryb3MgaW5zdW1vcy4NCkxvcyBiaWVuZXMgZGUgY2FwaXRhbCBwdWVkZW4gZGl2aWRpcnNlIGVuIHRyZXMgZ3J1cG9zOiBsb3MgYmllbmVzIHBvciBwZWRpZG8gYSBsYXJnbyBwbGF6bywgbG9zIGRjIGNhdOFsb2dvIChhIGNvcnRvIHkgbGFyZ28gcGxhem9zKSB5IGRpdmVyc29zIHRpcG9zIGRlIGJpZW5lcy4gRXN0b3MgdHJlcyBncnVwb3MgYSBzdSB2ZXogc2UgcHVlZGVuIGRpdmlkaXIgZW4gb2NobyBkZSBmYWJyaWNhbnRlcyBkZSBiaWVuZXMgZGUgY2FwaXRhbCBjb24gY2FyYWN0ZXLtc3RpY2FzIGNvbXVuZXM6IGEpIEVtcHJlc2FzIGRlIGluZ2VuaWVy7WEuIEluY2x1eWUgbWFxdWluYXJpYSBwZXNhZGEsIGludGVyY2FtYmlhZG9yZXMsIGVxdWlwbyBhenVjYXJlcm8sIGdy+mFzLCByZWNpcGllbnRlcyBhIHByZXNp824gcGFyYSBwcm9jZXNvLCBldGPpdGVyYS4gYikgRmFicmljYW50ZXMgZGUgcmFtYXMgY29uIGlkZW50aWZpY2FjafNuIHByb3BpYSBxdWUgbWFudWZhY3R1cmFuIGJpZW5lcyBkYyBjYXBpdGFsOiBJbmR1c3RyaWEgZWzpY3RyaWNhLiBFcXVpcG8gcGFyYSBnZW5lcmFjafNuLCB0cmFuc21pc2nzbiB5IGNvbnRyb2wgZGUgcG90ZW5jaWEgZWzpY3RyaWNhLiBJbmR1c3RyaWEgZWxlY3Ry825pY2EuIEluZHVzdHJpYSBhdXRvbW90cml6LiBDYW1pb25lcyB5IHRyYWN0byBjYW1pb25lcy4gU2UgZXhjbHV5ZW4gYXV0b23zdmlsZXMuDQoqTel0b2RvIGRlIFRyYWJham8uKg0KU2UgZWxpZ2nzIGxhIHZhcmlhYmxlIGRlIEltcG9ydGFjaW9uZXMgZGUgQmllbmVzIGRlIENhcGl0YWwsIGxvcyBkYXRvcyBmdWVyb24gcmVjYWJhZG9zIGRlbCBJbnN0aXR1dG8gTmFjaW9uYWwgRGUgRXN0YWTtc3RpY2EgWSBHZW9ncmFm7WEgW0lORUdJXSBkZSBsYXMgZmVjaGFzIEVuZXJvIGRlIDE5OTQgYSBEaWNpZW1icmUgZGUgMjAxNyB5IGRlIGZvcm1hIHRyaW1lc3RyYWwuDQpObyBzZSB0b23zIGVuIGN1ZW50YSBsb3MgdHJpbWVzdHJlcyB0cmFzY3Vycmlkb3MgZGVsIGHxbyBhY3R1YWwgWzIwMThdIHlhIHF1ZSBh+m4gbm8gY29uY2x1eWUgZWwgdGVyY2VyIHRyaW1lc3RyZSB5IG5pIGhhIGVtcGV6YWRvIGVsIGN1YXJ0byB5IGVzdG8gaWJhIGEgZ2VuZXJhciB1biBhbuFsaXNpcyBpbmNvbXBsZXRvLCBzZSBnZW5lcmEgZGUgZm9ybWEgYWRpdGl2YSB5IGEgY29udGludWFjafNuIHNlIHByZXNlbnRhbiBsb3MgcmVzdWx0YWRvcyBvYnRlbmlkb3MuDQpKdXN0aWZpY2FjafNuIGRlIGxhIHZhcmlhYmxlIGVsZWdpZGEuCQ0KRWwgdHJhYmFqYXIgY29uIGVzdGEgdmFyaWFibGUgZGUgaW1wb3J0YWNpb25lcyBkZSBiaWVuZXMgZGUgY2FwaXRhbCwgaGEgc2lkbyBtdXkgaW50ZXJlc2FudGUgeWEgcXVlIGVzIHVuIHRlbWEgbXV5IHJlbGV2YW50ZSBlbiBsYSBlY29ub23tYSBlbiBzdSBjb25qdW50bywgc2Vy4SBsYSBlbmNhcmdhZGEgZGUgZ2VuZXJhciB1biB2YWxvciBlbiBsYXMgbWVyY2FuY+1hcyBhbCBzb21ldGVyc2UgYWwgcHJvY2VzbyBwcm9kdWN0aXZvLiBIb3kgZW4gZO1hIGV4aXN0ZW4gbXVjaGFzIGVtcHJlc2FzIHkgZWwgZXN0YXIgYW5hbGl6YW5kbyBlc3RhIHZhcmlhYmxlIHB1ZGUgZW5jb250cmFyIHF1ZSBlbCBjYXBpdGFsaXN0YSBlc3RhcuEgZGUgYWN1ZXJkbyBlbiBnYXN0YXIgY29uIHRhbCBkZSBtZWpvcmFyIHN1IGNhcGl0YWwsIHlhIHF1ZSBlc3RvIHRyYWUgY29uc2lnbyB1biBpbmNyZW1lbnRvIGVuIGxhcyBnYW5hbmNpYXMgeSBwdWVkZSBnZW5lcmFyc2UgcXVlIGxhIGNvbXBldGVuY2lhIG5vIHRlbmdhIGxhcyBmYWN1bHRhZGVzIG8gcmVjdXJzb3MgcGFyYSBwb2RlciBtZWpvcmFyIHN1IGNhcGl0YWwgeSBzZWd1aXIgY29tcGl0aWVuZG8uDQoNCioqKkltcG9ydGFjaW9uZXMgZGUgYmllbmVzIGRlIGNhcGl0YWwuKioqDQoNCioqKkZ1ZW50ZTogSU5FR0kuIEltcG9ydGFjaW9uZXMgZGUgYmllbmVzIGRlIGNhcGl0YWwuLioqKg0KDQoqKipQZXJpb2RpY2lkYWQ6IFRyaW1lc3RyYWwqKioNCg0KKioqRmVjaGEgZGUgY29uc3VsdGE6IDE3LzA4LzIwMTggMTg6Mzk6MjQqKioNCg0KKioqzW5kaWNlIGJhc2UgMjAxMz0xMDAqKioNCg0KIyMgMS4yDQpgYGB7cn0NCmxpYnJhcnkoZm9yZWlnbikNCmxpYnJhcnkoZm9yZWNhc3QpDQpiYXNlPC1yZWFkLmNzdihmaWxlLmNob29zZSgpKQ0Kc3Q8LSB0cyhiYXNlJGZrLGZyZXF1ZW5jeT00LHN0YXJ0PWMoMTk5NCwxKSkNCmF1dG9wbG90KHN0LGNvbD0icGluayIsIHlsYWI9ImNhcGl0YWwiLCB4bGFiPSJh8W9zIiwgbHdkPTMsIHR5cGU9ImwiKQ0KYGBgDQojIyAxLjMNCg0KKioqR1JBRklDQSBERSBFU1RBQ0lPTkFMSURBRCBERSBJTVBPUlRBQ0lPTkVTIERFIEJJRU5FUyBERSBDQVBJVEFMKSoqKg0KYGBge3J9DQpiYXNlPC1yZWFkLmNzdihmaWxlLmNob29zZSgpKQ0Kc3Q8LSB0cyhiYXNlJGZrLGZyZXF1ZW5jeT00LHN0YXJ0PWMoMTk5NCwxKSkNCmJhc2U8LWRlY29tcG9zZShzdCkNCmF1dG9wbG90KGJhc2Ukc2Vhc29uYWwsY29sPSJwaW5rIix5bGFiPSJWYXJpYWNpb24iLHhsYWI9ImHxbyIsbHdkPTEsdHlwZT0ibyIpDQoNCg0KYGBgDQoNClBvZGVtb3Mgb2JzZXJ2YXIgcXVlIGxvcyBkYXRvcyB0aWVuZW4gZXN0YWNpb25hbGlkYWQgbG8gcXVlIHNpZ25pZmljYSBxdWUgZXMgaW5mbHVlY2lhZGEgcG9yIGVsIGZhY3RvciB0cmltZXN0cmFsLg0KDQojVEFSRUEyDQoNCiMjMi4xDQoqKipNRURJQVMgTU9WSUxFUyoNCmBgYHtyfQ0KYmFzZTwtcmVhZC5jc3YoZmlsZS5jaG9vc2UoKSkNCnN0PC0gdHMoYmFzZSRmayxmcmVxdWVuY3k9NCxzdGFydD1jKDE5OTQsMSkpDQpwMTwtYXV0b3Bsb3Qoc3QsIHNlcmllcyA9ImJhc2UiKSthdXRvbGF5ZXIobWEoc3QsMyksIHNlcmllcyA9ICIzLU1BIikreGxhYigiVGllbXBvIikreWxhYigiaW1wb3J0YWNpb24iKStnZ3RpdGxlKCJNQSgzKSIpDQpwMjwtYXV0b3Bsb3Qoc3QsIHNlcmllcyA9ImJhc2UiKSthdXRvbGF5ZXIobWEoc3QsMyksIHNlcmllcyA9ICI1LU1BIikreGxhYigiVGllbXBvIikreWxhYigiaW1wb3J0YWNpb24iKStnZ3RpdGxlKCJNQSg1KSIpDQpwMzwtYXV0b3Bsb3Qoc3QsIHNlcmllcyA9ImJhc2UiKSthdXRvbGF5ZXIobWEoc3QsMyksIHNlcmllcyA9ICI3LU1BIikreGxhYigiVGllbXBvIikreWxhYigiaW1wb3J0YWNpb24iKStnZ3RpdGxlKCJNQSg3KSIpDQpwNDwtYXV0b3Bsb3Qoc3QsIHNlcmllcyA9ImJhc2UiKSthdXRvbGF5ZXIobWEoc3QsMyksIHNlcmllcyA9ICI5LU1BIikreGxhYigiVGllbXBvIikreWxhYigiaW1wb3J0YWNpb24iKStnZ3RpdGxlKCJNQSg5KSIpDQoNCmdyaWQuYXJyYW5nZShwMSxwMixwMyxwNCkNCmBgYA0KbGFzIG1lZGlhcyBtb3ZpbGVzIHlhIGdyYWZpY2FkYXMgbm9zIG11ZXN0cmFuIHVuYSBzaW1ldHJpYSBlbiBlbGxhcyBwb3IgbG8gdGFudG8gbm8gc2FjYXJlbW9zIG1lZGlhZCBtb3ZpbGVzIGRlIG1lZGlhcyBtb3ZpbGVzLCB0YW1iaWVuIHBvciBxdWUgdmFuIGVuIG9yZGVuaW1wYXIsDQoNCg0KDQojIzIuMg0KKioqRGVzY29tcG9zaWNp824gIGNs4XNpY2EgIC0gIG11bHRpcGxpY2F0aXZhKg0KYGBge3J9DQpmaXQ8LWRlY29tcG9zZShzdCwgdHlwZT0ibXVsdGlwbGljYXRpdmUiKQ0KYXV0b3Bsb3QoZml0KQ0KYGBgDQoNCg0KDQpgYGB7cn0NCmF1dG9wbG90KGZpdCxzZXJpZXM9ImZrIikrIGF1dG9sYXllcihzZWFzYWRqKGZpdCksc2VyaWVzPSJkZXNlc3RhPz9jaW9uYWxpemFkYSwiKSt4bGFiKCJZZWFyIikreWxhYigiQ0FQSVRBTCIpK2dndGl0bGUoIklNUE9SVEFDSU9OIERFIEsiKQ0KYGBgDQoNCg0KIyMyLjMNCioqKkRhdG9zICBlc3RhY2lvbmFsbWVudGUgIGFqdXN0YWRvcyoqKg0KYGBge3J9DQphdXRvcGxvdChzdCwgc2VyaWVzID0iYmFzZSIpK2F1dG9sYXllcihzZWFzYWRqKGZpdCksIHNlcmllcyA9IlNlYXNvbmFsbHkgIGFkai4gIGRhdGEiKSt4bGFiKCJUaWVtcG8iKSt5bGFiKCJDQVBJVEFMIikrZ2d0aXRsZSgiaW1wb3J0YWNpb24gZGUgY2FwaXRhbCIpDQoNCmBgYA0KUG9kZW1vcyBvYnNlcnZhciBxdWUgZXhpc3RlIHVuYSBzaW1ldHJpYSBlbnRyZSBsb3MgZGF0b3MgeWEgYWp1c3RhZG9zDQoNCiMgVEFSRUEzDQoNCioqKlRFTkRFTkNJQVMgIERFVEVSTUlOSVNUQVMgIFkgIEVTVE9DwVNUSUNBUy4qKioNCmBgYHtyfQ0KDQpsaWJyYXJ5KGZvcmVjYXN0KQ0KbGlicmFyeShmb3JlaWduKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KYmFzZTwtcmVhZC5jc3YoZmlsZS5jaG9vc2UoKSkNCnN0PC0gdHMoYmFzZSRmayxmcmVxdWVuY3k9NCxzdGFydD1jKDE5OTQsMSkpDQphdXRvcGxvdChzdCwgY29sPSJibHVlIix5bGFiPSJjYXBpdGFsIix4bGFiPSJ0aWVtcG8iLCBsd2Q9MywgdHlwZT0ibCIpK2dndGl0bGUoJ2ltcG9ydGFjaW9uIGRlIGNhcGl0YWwnKQ0KDQpgYGANCg0KRW4gIGVzdGUgIGNhc28gIGVzIHVuYSB0ZW5kZW5jaWEgIGVzdG9j4XN0aWNhZGViaWRvICBhICBxdWUgIGxhICB0ZW5kZW5jaWEgcGVyY2liaWRhICBlcyAgdW4gIGFydGVmYWN0byAgZGUgIGxhICBmdWVydGUgIGNvcnJlbGFjafNuICBwb3NpdGl2YSAgZW50cmUgIGxvcyAgcHVudG9zY2VyY2Fub3MgIHkgIGxhICBjcmVjaWVudGUgIHZhcmlhbnphICBkZWwgIHByb2Nlc28gIGNvbmZvcm1lICBlbCAgdGllbXBvICBhdmFuemENCg0KDQoNCiMjIzMuMS4xDQoNCioqKlJFR1JFU0lPTiBFTiBGVU5DSU9OIERFTCBUSUVNUE8qKioNCmBgYHtyfQ0KcmVnMTwtbG0oc3R+IHRpbWUoc3QpKQ0Kc3VtbWFyeShyZWcxKQ0KDQoNCg0KYGBgDQoNCg0KIyMjMy4xLjINCkxhcyBtZWRpYXMgdGVtcG9yYWxlcyBlc3RhY2lvbmFsZXMgc2UgZXhwbGljYW4gY29uIHVuIDAuOTMxNiAgIGRlIGxhIHZhcmlhYmxlIGluZGVwZW5kaWVudGUNCnJlc2lkdW9zIGVzdGFuZGFyaXphZG9zDQoNCg0KKioqUkVHUkVTSU9OIEVOIEZVTkNJSU9OIERFTCBUSUVNUE8gQUwgQ1VBRFJBRE8qKioNCmBgYHtyfQ0KYmFzZTwtcmVhZC5jc3YoZmlsZS5jaG9vc2UoKSkNCnN0PC0gdHMoYmFzZSRmayxmcmVxdWVuY3k9NCxzdGFydD1jKDE5OTQsMSkpDQp0aW1lPC1zZWFzb24oc3QpDQpyZWcyPC1sbShzdH50aW1lKHN0KSsgSSh0aW1lKHN0KV4yKSArIHRpbWUpDQpzdW1tYXJ5KHJlZzIpDQoNCmBgYA0KDQpMYXMgbWVkaWFzIGVzdGFjaW9uZWxlcyBvIHRlbXBvcmFsZXMgc2UgZXhwbGljYW4gYWhvcmEgdW4gMC45NDM3IGRlIGxhIHZhcmlhYmxlIGRlcGVuZGllbnRlLg0KDQoNCg0KIyMjMy4xLjMNCg0KKioqR1JBRklDQSBFTiBFTCBUSUVNUE8qKioNCg0KYGBge3J9DQpsaWJyYXJ5KGdncGxvdDIpDQphdXRvcGxvdChzdCkgKyBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iLHNlPUZBTFNFKQ0KYGBgDQoNCg0KDQoNCmBgYHtyfQ0KYXV0b3Bsb3Qoc3QpKyBnZW9tX3Ntb290aCgpDQpgYGANCg0KbGEgZ3JhZmljYSBkZSB0ZW5kZW5jaWFzIGN1YWRyYXRpY2FzIHNlIGNvbXBvcnRhIGRlIHVuYSBmb3JtYSBsaW5lYWwgDQoNCg0KKioqR1JBRklDQSBSRVNJRFVBTCoqKg0KDQpgYGB7cn0NCmxpYnJhcnkoZ2dwbG90MikNCnBsb3QoeT1yc3RhbmRhcmQocmVnMSkseD1hcy52ZWN0b3IodGltZShzdCkpLCB4bGFiID0gInRpZW1wbyIsIHlsYWI9InJlc2lkdWFsZXMgZXN0YW5kYXJpemFkb3MgZGUgayIsIHR5cGUgPSAnbycpDQpgYGANCg0KKioqR1JBRklDQSBSRVNJRFVBTCBSRUcyKioqDQpgYGB7cn0NCmxpYnJhcnkoZ2dwbG90MikNCnBsb3QoeT1yc3RhbmRhcmQocmVnMikseD1hcy52ZWN0b3IodGltZShzdCkpLCB4bGFiID0gInRpZW1wbyIsIHlsYWI9InJlc2lkdWFsZXMgZXN0YW5kYXJpemFkb3MgZGUgayIsIHR5cGUgPSAnbycpDQoNCmBgYA0KDQoNCg0KDQoNCioqKkdSQUZJQ08gSElTVE9HUkFNQSoqKg0KYGBge3J9DQpoaXN0KHJzdGFuZGFyZChyZWcxKSx4bGFiPSdSZXNpZHVhbGVzIGVzdGFuZGFyaXphZG9zJykNCiAgICAgDQpgYGANCmVsIGhpc3RvZ3JhbWEgbm9zIG11ZXN0cmEgcXVlIGV4aXN0ZSBzZXpnbyAgeSBzZSB2ZSByZWZsZWphZG8gZGVsIGxhZG8gaXpxdWllcmRvDQoNCg0KDQoNCg0KDQoqKipHUkFGSUNPUyBDVUFMVElMLUNVQU5USUwqKioNCmBgYHtyfQ0KcXFub3JtKHJzdGFuZGFyZChyZWcxKSk7IHFxbGluZShyc3RhbmRhcmQocmVnMSksIGNvbD0ncGluaycpDQpgYGANCkxhICBub3JtYWxpZGFkICBwdWVkZSAgc2VyICBldmFsdWFkYSAgYWwgIGdyYWZpY2FyICBlbCAgbGxhbWFkbyAgZ3LhZmljb3JjdWFudGlsLWN1YW50aWwgIChRUS1wbG90KS4gIFRhbCAgZ3LhZmljbyAgcHJlc2VudGEgIGxvcyAgY3VhbnRpbGVzICBkZSAgbG9zICBkYXRvc3JlYWxlcyAgdmVyc3VzICBsb3MgIGN1YW50aWxlcyAgZGUgIHVuYSAgZGlzdHJpYnVjafNuICBub3JtYWwgIHRl83JpY2EgcG9yIHF1ZSB2YW4gc29icmUgbGEgbGluZWENCg0KDQoNCioqKkdSQUZJQ08gQ09SUkVMT0dSQU1BKioqDQoNCmBgYHtyfQ0KZ2dBY2YocnN0YW5kYXJkKHJlZzEpKQ0KYGBgDQpwb2RlbW9zIG9ic2VydmFyIHF1ZSBleGlzdGUgY29ycmVsYWNpb24gY29uIGxhIGdyYWZpY2EgYW50ZXJpb3IsIHlhIHF1ZSBsYXMgZnJhbmphcyBzdXBlcmFuIGxhcyBsaW5lYXMgYXp1bGVzIGRlIGNvcnJlbGFjaW9uDQoNCg0KIyMjMy4xLjQNCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KHJzdGFuZGFyZChyZWcxKSkNCmBgYA0KDQp2ZW1vcyBxdWUgcC12YWx1ZT0gMC4wMzY4MiBlc3RhIHBvciBkZWJham8gZGUgMC4wNSBsbyBxdWUgbm9zIGluZGljYSBxdWUgbGEgaGlwb3Rlc2lzIG51bGEgc2UgcmVjaGF6YSB5IHNlIGFjZXB0YSBsYSBoaXBvdGVzaXMgYWx0ZXJuYXRpdmEsIHRhbWJpZW4gZXMgY29ycmVjdG8gZGVjaXIgcXVlIGVsIGNvbXBvbmVudGUgZXN0b2Nhc3RpY28gbm8gZXMgbm9ybWFsbWVudGUgZGlzdHJpYnVpZG8NCg0KDQoNCiMjIzMuMS41DQoqKipNT0RFTE8gREUgUkVHUkVTSU9OIEZJTkFMIFkgQ09OQ0xVU0lPTkVTKioqDQpDb21vIGNvbmNsdXNpb24gcG9kZW1vcyBkZWNpciBNZWRpYW50ZSBsYSBkZXNjb21wb3NpY2nzbiBkZSBzZXJpZXMgdGVtcG9yYWxlcyBzZSBwdWVkZSBnZW5lcmFyIHVuIG1lam9yIHByb27zc3RpY28geWEgcXVlIGFsIG9ic2VydmFyIGxvcyBkYXRvcyBlbiB1bmEgcHJpbWVyYSBpbnN0YW5jaWEgbm8gcG9kZW1vcyBwcmVkZWNpciBxdWUgc3VjZWRlcuEgZW4gZWwgZnV0dXJvLCBwb3IgbG8gY3VhbCBhbCBoYWNlciBlc3RlIHRpcG8gZGUgcGFzb3Mgbm9zIGF5dWRhIGEgcG9kZXIgZW50ZW5kZXIgY2FkYSB1bm8gZGUgbG9zIGVsZW1lbnRvcyBxdWUgaW50ZWdyYSBlc3RlIHRpcG8gZGUgc2VyaWUgeSBnZW5lcmFyYSB1biBtZWpvciByZXN1bHRhZG8uDQoNCiQkIGltcG9ydGFjaW9uIGRlIEJLPSBCXyAwICtCXzF0ICQkDQo=