INTRODUCTION

We declared some libraries to make our estimations. Then we loaded our data base.

library(haven)
library(car)
library(stargazer)
library(lmtest)
SDEMT118 <- read_dta(file.choose())

We have eliminated some lines.

SDEMT118 <- SDEMT118[SDEMT118$eda > 18,] # solo mayores de edad
SDEMT118 <- SDEMT118[SDEMT118$ingocup > 0,] # solo ingresos mayores a cero
SDEMT118 <- SDEMT118[SDEMT118$anios_esc != 99,] # años de escolaridad distintos a 99 (informacion no disponible)

Encoding some variables to make our regression easier.

SDEMT118$mujer <- recode(SDEMT118$sex, "1=0; 2=1") # mujer=1; 0=hombre
table(SDEMT118$mujer)

SDEMT118$casado <- recode(SDEMT118$e_con, "5=1; 1=0; 2=0; 3=0; 4=0; 6=0; 9=0") # mujer=1; 0= hombre
table(SDEMT118$casado)

Running the regression focusing on important variables. Then we summarized with “stargazer” the regression in order to interpret the results more easily.

length of NULL cannot be changedlength of NULL cannot be changedlength of NULL cannot be changedlength of NULL cannot be changedlength of NULL cannot be changed

=================================================
                         Dependent variable:     
                    -----------------------------
                            log(ingocup)         
-------------------------------------------------
mujer                         -0.283***          
                               (0.004)           
                                                 
eda                           0.040***           
                               (0.001)           
                                                 
I(eda2)                      -0.0004***          
                              (0.00001)          
                                                 
anios_esc                     0.075***           
                              (0.0005)           
                                                 
casado                        0.038***           
                               (0.004)           
                                                 
hrsocup                       0.011***           
                              (0.0001)           
                                                 
Constant                      6.540***           
                               (0.017)           
                                                 
-------------------------------------------------
Observations                   112,660           
R2                              0.301            
Adjusted R2                     0.301            
Residual Std. Error      0.641 (df = 112653)     
F Statistic         8,081.319*** (df = 6; 112653)
=================================================
Note:                 *p<0.1; **p<0.05; ***p<0.01
                    0.5 %        99.5 %
(Intercept)  6.4952109637  6.5851018097
mujer       -0.2938389997 -0.2728216185
eda          0.0378879514  0.0419496415
I(eda^2)    -0.0004406711 -0.0003949861
anios_esc    0.0733600709  0.0757822642
casado       0.0276027273  0.0487996649
hrsocup      0.0109560386  0.0115236530

Making an Hipothesis with our model: T TEST

summary(reg)

Call:
lm(formula = log(ingocup) ~ mujer + eda + I(eda^2) + anios_esc + 
    casado + hrsocup, data = SDEMT118)

Residuals:
    Min      1Q  Median      3Q     Max 
-5.0028 -0.3203  0.0398  0.3784  3.8213 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  6.540e+00  1.745e-02 374.824   <2e-16 ***
mujer       -2.833e-01  4.080e-03 -69.449   <2e-16 ***
eda          3.992e-02  7.884e-04  50.632   <2e-16 ***
I(eda^2)    -4.178e-04  8.868e-06 -47.117   <2e-16 ***
anios_esc    7.457e-02  4.702e-04 158.605   <2e-16 ***
casado       3.820e-02  4.115e-03   9.284   <2e-16 ***
hrsocup      1.124e-02  1.102e-04 102.014   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.6415 on 112653 degrees of freedom
  (7182 observations deleted due to missingness)
Multiple R-squared:  0.3009,    Adjusted R-squared:  0.3009 
F-statistic:  8081 on 6 and 112653 DF,  p-value: < 2.2e-16

We can assume that each variable is very significant at the significance level of 5%.

Then we created a graph (histogram) of the “ingocup” variable.

Doing a Breusch-Pagan test and a White test and interpreting the result.

Breusch-Pegan test

bptest(reg)

    studentized Breusch-Pagan test

data:  reg
BP = 4151.9, df = 6, p-value < 2.2e-16

White test

bptest(reg, ~fitted(reg) + I(fitted(reg)^2))

    studentized Breusch-Pagan test

data:  reg
BP = 2774.6, df = 2, p-value < 2.2e-16

conclusion: There is heteroskedasticity given the fact that 2.2e-16 < 0.05 So we are going to adjust using-robust estandar errors.

reg3 <- coeftest(reg, hccm) 
reg3

t test of coefficients:

               Estimate  Std. Error  t value  Pr(>|t|)    
(Intercept)  6.5402e+00  1.9203e-02 340.5831 < 2.2e-16 ***
mujer       -2.8333e-01  4.1152e-03 -68.8489 < 2.2e-16 ***
eda          3.9919e-02  9.0704e-04  44.0102 < 2.2e-16 ***
I(eda^2)    -4.1783e-04  1.0794e-05 -38.7079 < 2.2e-16 ***
anios_esc    7.4571e-02  5.2625e-04 141.7019 < 2.2e-16 ***
casado       3.8201e-02  4.2141e-03   9.0651 < 2.2e-16 ***
hrsocup      1.1240e-02  1.3675e-04  82.1904 < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
stargazer(reg, reg3, type = "text")
length of NULL cannot be changedlength of NULL cannot be changedlength of NULL cannot be changedlength of NULL cannot be changedlength of NULL cannot be changed

=============================================================
                               Dependent variable:           
                    -----------------------------------------
                            log(ingocup)                     
                                 OLS              coefficient
                                                     test    
                                 (1)                  (2)    
-------------------------------------------------------------
mujer                         -0.283***            -0.283*** 
                               (0.004)              (0.004)  
                                                             
eda                           0.040***             0.040***  
                               (0.001)              (0.001)  
                                                             
I(eda2)                      -0.0004***           -0.0004*** 
                              (0.00001)            (0.00001) 
                                                             
anios_esc                     0.075***             0.075***  
                              (0.0005)              (0.001)  
                                                             
casado                        0.038***             0.038***  
                               (0.004)              (0.004)  
                                                             
hrsocup                       0.011***             0.011***  
                              (0.0001)             (0.0001)  
                                                             
Constant                      6.540***             6.540***  
                               (0.017)              (0.019)  
                                                             
-------------------------------------------------------------
Observations                   112,660                       
R2                              0.301                        
Adjusted R2                     0.301                        
Residual Std. Error      0.641 (df = 112653)                 
F Statistic         8,081.319*** (df = 6; 112653)            
=============================================================
Note:                             *p<0.1; **p<0.05; ***p<0.01

Creating three dummy variables to run the new regression and see what is the effect of being single female/male, and married female/male.

stargazer(reg2, type = "text")
length of NULL cannot be changedlength of NULL cannot be changedlength of NULL cannot be changedlength of NULL cannot be changedlength of NULL cannot be changed

=================================================
                         Dependent variable:     
                    -----------------------------
                            log(ingocup)         
-------------------------------------------------
marrfem                       -0.352***          
                               (0.006)           
                                                 
singmal                       -0.085***          
                               (0.005)           
                                                 
singfem                       -0.319***          
                               (0.005)           
                                                 
eda                           0.040***           
                               (0.001)           
                                                 
I(eda2)                      -0.0004***          
                              (0.00001)          
                                                 
anios_esc                     0.074***           
                              (0.0005)           
                                                 
hrsocup                       0.011***           
                              (0.0001)           
                                                 
Constant                      6.617***           
                               (0.019)           
                                                 
-------------------------------------------------
Observations                   112,660           
R2                              0.302            
Adjusted R2                     0.302            
Residual Std. Error      0.641 (df = 112652)     
F Statistic         6,971.641*** (df = 7; 112652)
=================================================
Note:                 *p<0.1; **p<0.05; ***p<0.01

CONCLUSION

SDEMT118$job <- recode(SDEMT118$emp_ppal, "1=0; 2=1") # empleo informal=1; 0=empleo formal
reg2 <- lm(log(ingocup) ~ job + mujer + eda + I(eda^2) + anios_esc + casado + hrsocup, data=SDEMT118)
stargazer(reg2, type = "text")
length of NULL cannot be changedlength of NULL cannot be changedlength of NULL cannot be changedlength of NULL cannot be changedlength of NULL cannot be changed

=================================================
                         Dependent variable:     
                    -----------------------------
                            log(ingocup)         
-------------------------------------------------
job                           0.400***           
                               (0.004)           
                                                 
mujer                         -0.280***          
                               (0.004)           
                                                 
eda                           0.037***           
                               (0.001)           
                                                 
I(eda2)                      -0.0004***          
                              (0.00001)          
                                                 
anios_esc                     0.057***           
                              (0.0005)           
                                                 
casado                        0.019***           
                               (0.004)           
                                                 
hrsocup                       0.009***           
                              (0.0001)           
                                                 
Constant                      6.678***           
                               (0.017)           
                                                 
-------------------------------------------------
Observations                   112,660           
R2                              0.357            
Adjusted R2                     0.357            
Residual Std. Error      0.615 (df = 112652)     
F Statistic         8,939.598*** (df = 7; 112652)
=================================================
Note:                 *p<0.1; **p<0.05; ***p<0.01
LS0tDQp0aXRsZTogICJBTkFMWVNJUyBSRUdSRVNTSU9OIE9GIEVOT0UgREFUQSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KYXV0aG9yOiBBbHZhcmV6IENhcnJldG8gVXJpZWw7IEhlcm5hbmRleiBSb2phcyBKb3Zhbm55DQpHcm91cDogIjJFVjkiDQotLS0NCj4gKipJTlRST0RVQ1RJT04qKg0KDQogKiBJbiB0aGlzIG1vZGVsIHdlIGFyZSBnb2luZyB0byBzdHVkeSBzb21lIHZhcmlhYmxlcyB3aGljaCBjb3VsZCBoYXZlIGFuIGltcGFjdCBvbiBzb21lb25lJ3MgbW9udGhseSBpbmNvbWUgYmFzZWQgb24gdGhlIEVOT0UncyBkYXRhIChFbmN1ZXN0YSBOYWNpb25hbCBkZSBPY3VwYWNp824geSBFbXBsZW8pLiANCiAqIFNvIGFjY29yZGluZyB0byB0aGUgT0xTIG1ldGhvZCwgIHdlIHRvb2sgc29tZSBzdGVwcyB0byBjYXJyeSBvdXQgb3VyIGFuYWx5c2lzLiBGaXJzdCBhbmQgZm9yZW1vc3QsIHdlIGRlY2xhcmVkIG91ciB2YXJpYWJsZXM7IHNvbWUgb2YgdGhlbSB3ZXJlIGNyZWF0ZWQgYXMgImR1bW15IHZhcmlhYmxlcyIgaW4gb3JkZXIgdG8gc2hvdyB0aGUgaW1wYWN0IG9mIGVhY2ggb25lIG9uIG1vbnRobHkgaW5jb21lLiBUaGVuIHdlIGNvbnN0cnVjdGVkIG91ciBlY29ub21ldHJpYyBtb2RlbCwgYmFzZWQgb24gc29tZSBhc3N1bXB0aW9ucy4gQWZ0ZXIgdGhpcywgd2UgcmFuIG91ciByZWdyZXNzaW9uIGludGVycHJldGluZyB0aGUgcmVzdWx0cyBhdCB0aGUgc2FtZSB0aW1lLiANCiANCj4gICoqX1dlIGRlY2xhcmVkIHNvbWUgbGlicmFyaWVzIHRvIG1ha2Ugb3VyIGVzdGltYXRpb25zLiBUaGVuIHdlIGxvYWRlZCBvdXIgZGF0YSBiYXNlLl8qKg0KDQpgYGB7ciBlY2hvPVRSVUV9DQpsaWJyYXJ5KGhhdmVuKQ0KbGlicmFyeShjYXIpDQpsaWJyYXJ5KHN0YXJnYXplcikNCmxpYnJhcnkobG10ZXN0KQ0KU0RFTVQxMTggPC0gcmVhZF9kdGEoZmlsZS5jaG9vc2UoKSkNCmBgYA0KDQo+ICAqKl9XZSBoYXZlIGVsaW1pbmF0ZWQgc29tZSBsaW5lcy5fKiogDQoNCmBgYHtyIGVjaG89VFJVRX0NClNERU1UMTE4IDwtIFNERU1UMTE4W1NERU1UMTE4JGVkYSA+IDE4LF0gIyBzb2xvIG1heW9yZXMgZGUgZWRhZA0KU0RFTVQxMTggPC0gU0RFTVQxMThbU0RFTVQxMTgkaW5nb2N1cCA+IDAsXSAjIHNvbG8gaW5ncmVzb3MgbWF5b3JlcyBhIGNlcm8NClNERU1UMTE4IDwtIFNERU1UMTE4W1NERU1UMTE4JGFuaW9zX2VzYyAhPSA5OSxdICMgYfFvcyBkZSBlc2NvbGFyaWRhZCBkaXN0aW50b3MgYSA5OSAoaW5mb3JtYWNpb24gbm8gZGlzcG9uaWJsZSkNCmBgYA0KDQo+ICoqX0VuY29kaW5nIHNvbWUgdmFyaWFibGVzIHRvIG1ha2Ugb3VyIHJlZ3Jlc3Npb24gZWFzaWVyLl8qKg0KDQpgYGB7ciBlY2hvPVRSVUV9DQpTREVNVDExOCRtdWplciA8LSByZWNvZGUoU0RFTVQxMTgkc2V4LCAiMT0wOyAyPTEiKSAjIG11amVyPTE7IDA9aG9tYnJlDQp0YWJsZShTREVNVDExOCRtdWplcikNCg0KU0RFTVQxMTgkY2FzYWRvIDwtIHJlY29kZShTREVNVDExOCRlX2NvbiwgIjU9MTsgMT0wOyAyPTA7IDM9MDsgND0wOyA2PTA7IDk9MCIpICMgbXVqZXI9MTsgMD0gaG9tYnJlDQp0YWJsZShTREVNVDExOCRjYXNhZG8pDQpgYGANCg0KPiAgKipfUnVubmluZyB0aGUgcmVncmVzc2lvbiBmb2N1c2luZyBvbiBpbXBvcnRhbnQgdmFyaWFibGVzLiBUaGVuIHdlIHN1bW1hcml6ZWQgd2l0aCAic3RhcmdhemVyIiB0aGUgcmVncmVzc2lvbiBpbiBvcmRlciB0byBpbnRlcnByZXQgdGhlIHJlc3VsdHMgbW9yZSBlYXNpbHkuXyoqIA0KDQoNCg0KYGBge3IgZWNobz1GQUxTRX0NCnJlZyA8LSBsbShsb2coaW5nb2N1cCkgfiBtdWplciArIGVkYSArIEkoZWRhXjIpICsgYW5pb3NfZXNjICsgY2FzYWRvICsgaHJzb2N1cCwgZGF0YT1TREVNVDExOCkNCnN0YXJnYXplcihyZWcsIHR5cGUgPSAndGV4dCcpDQpjb25maW50KHJlZywgbGV2ZWwgPSAwLjk5KQ0KYGBgDQoNCiogSW4gdGhlIHJlZ3Jlc3Npb24sIHRoZSB2YXJpYWJsZSAqKm11amVyKiogc2hvd3MgdXMgdGhhdCBhIHdvbWFuIHRlbmRzIHRvIGVhcm4gKioyOC4zJSoqIGxlc3MgdGhhbiBhIG1hbi4NCiogVGhlIHNlY29uZCB2YXJpYWJsZSAqKihlZGEpKiogdGVsbHMgdXMgdGhhdCBpZiBhIHBlcnNvbiBpcyBvbGRlciBieSBvbmUgbW9yZSB5ZWFyLCB0aGF0IHBlcnNvbiB0ZW5kcyB0byBlYXJuICoqNCUqKiBtb3JlLiANCiogdGhlIHRoaXJkIHZhcmlhYmxlICoqSShlZGEyKSoqIG1lYW5zIHRoYXQgYXQgYSBjZXJ0YWluIGFnZSwgbGlrZSBpZiBmb3IgZXhhbXBsZSB0aGUgcGVyc29uIGlzIDYxIGhlIHdpbGwgZWFybiAqKi0wLjglKiogbGVzcyB0aGFuIHRoZSBwZXJzb24gd2hvIGlzIDYwLiAqKihUaGUgYWdlIG9mIDYwIGlzIHRha2VuIGFzIHRoZSB0dXJuaW5nIHBvaW50IG9mIHRoZSBhZ2UgdmFyaWFibGUpKioNCiogVGhlbiB0aGUgbmV4dCB2YXJpYWJsZSAqKihhbmlvc19lc2MpKiogc2hvd3MgdGhhdCBmb3Igb25lIG1vcmUgeWVhciBvZiBzY2hvb2xpbmcsIHRoZSBwZXJzb24gd2lsbCBlYXJuICoqNy41JSoqIG1vcmUgdGhhbiBiZWZvcmUuIA0KKiBUaGUgdmFyaWFibGUgKiooY2FzYWRvKSoqIHNheXMgdGhhdCBhIHBlcnNvbiB3aG8gaXMgbWFycmllZCB0ZW5kcyB0byBlYXJuICoqMy44JSoqIG1vcmUgdGhhbiBhIHBlcnNvbiB3aG8gaXMgbm90IChzaW5nbGUpLiANClRoZSBuZXh0IHZhcmlhYmxlICoqKGhyc29jdXApKiogdGVsbHMgdXMgdGhhdCBmb3Igb25lIG1vcmUgaG91ciB3b3JrZWQgcGVyIHdlZWssIHRoZSBwZXJzb24gd2lsbCBlYXJuICoqMS4xKiogbW9yZSBpbiBoaXMgbW9udGhseSBpbmNvbWUuICANCiogKipUaGUgUiBzcXVhcmVkIHRlbGxzIHVzIHRoYXQgb3VyIG1vZGVsIGV4cGxhaW5zIG9ubHkgXzMwLjElXyBvbiB0aGUgdmFyaWF0aW9uIG9mIHRoZSBtb250aGx5IGluY29tZS4qKg0KDQo+ICoqTWFraW5nIGFuIEhpcG90aGVzaXMgd2l0aCBvdXIgbW9kZWw6IFQgVEVTVCoqDQoNCmBgYHtyfQ0Kc3VtbWFyeShyZWcpDQpgYGANCg0KDQpXZSBjYW4gYXNzdW1lIHRoYXQgZWFjaCB2YXJpYWJsZSBpcyB2ZXJ5IHNpZ25pZmljYW50IGF0IHRoZSBzaWduaWZpY2FuY2UgbGV2ZWwgb2YgNSUuDQoNCj4gICoqX1RoZW4gd2UgY3JlYXRlZCBhIGdyYXBoIChoaXN0b2dyYW0pIG9mIHRoZSAiaW5nb2N1cCIgdmFyaWFibGUuXyoqDQoNCmBgYHtyIGVjaG89RkFMU0V9DQphdHRhY2goU0RFTVQxMTgpDQpoaXN0KGxvZyhpbmdvY3VwKSwgeWxpbSA9IGMoMCwgNDAwMDApLCBjb2wgPSAyOjE2LCBtYWluID0gIk1vbnRobHkgaW5jb21lIikNCmBgYA0KPiAgKipfRG9pbmcgIGEgIEJyZXVzY2gtUGFnYW4gIHRlc3QgIGFuZCAgYSAgV2hpdGUgIHRlc3QgYW5kIGludGVycHJldGluZyAgdGhlICByZXN1bHQuXyoqDQoNCj4gKipCcmV1c2NoLVBlZ2FuIHRlc3QqKg0KDQpgYGB7cn0NCmJwdGVzdChyZWcpDQpgYGANCg0KDQo+ICoqV2hpdGUgdGVzdCoqDQoNCmBgYHtyfQ0KYnB0ZXN0KHJlZywgfmZpdHRlZChyZWcpICsgSShmaXR0ZWQocmVnKV4yKSkNCmBgYA0KDQoqKmNvbmNsdXNpb246IFRoZXJlIGlzIGhldGVyb3NrZWRhc3RpY2l0eSBnaXZlbiB0aGUgZmFjdCB0aGF0IDIuMmUtMTYgPCAwLjA1KioNClNvIHdlIGFyZSBnb2luZyB0byBhZGp1c3QgdXNpbmctcm9idXN0IGVzdGFuZGFyIGVycm9ycy4NCg0KYGBge3J9DQpyZWczIDwtIGNvZWZ0ZXN0KHJlZywgaGNjbSkgDQpyZWczDQpzdGFyZ2F6ZXIocmVnLCByZWczLCB0eXBlID0gInRleHQiKQ0KYGBgDQoqIEluIHRoaXMgY2FzZSwgdGhlcmUgaXMgbm8gaGV0ZXJvc2tlZGFzdGljaXR5IGFueW1vcmUsIGJlY2F1c2Ugd2UgaGF2ZSBtYWRlIG1vcmUgcm9idXN0IG91ciBlc3RpbWF0ZWQgZXJyb3JzIHNvIHdlIGNhbiBub3QgcmVqZWN0IHRoZSBhc3N1cHRpb24gb2YgaG9tb3NrZWRhc3RpY2l0eS4gDQoNCg0KPiAgKipfQ3JlYXRpbmcgdGhyZWUgZHVtbXkgdmFyaWFibGVzIHRvIHJ1biB0aGUgbmV3IHJlZ3Jlc3Npb24gYW5kIHNlZSB3aGF0IGlzIHRoZSBlZmZlY3Qgb2YgYmVpbmcgc2luZ2xlIGZlbWFsZS9tYWxlLCBhbmQgbWFycmllZCBmZW1hbGUvbWFsZS5fKiogDQoNCmBgYHtyIGVjaG8gPSBUUlVFfQ0KYXR0YWNoKFNERU1UMTE4KQ0KbWFycmZlbSA8LSBhcy5udW1lcmljKG11amVyPT0xICYgY2FzYWRvID09MSkgI21hcnJpZWQgZmVtYWxlDQpzaW5nbWFsIDwtIGFzLm51bWVyaWMobXVqZXI9PTAgJiBjYXNhZG89PTApICNzaW5nbGUgbWFsZQ0Kc2luZ2ZlbSA8LSBhcy5udW1lcmljKG11amVyPT0xICYgY2FzYWRvPT0wKSAjc2luZ2xlIGZlbWFsZQ0KcmVnMiA8LSBsbShsb2coaW5nb2N1cCkgfiBtYXJyZmVtICsgc2luZ21hbCArIHNpbmdmZW0gKyBlZGEgKyBJKGVkYV4yKSArIGFuaW9zX2VzYyArIGhyc29jdXApDQpzdGFyZ2F6ZXIocmVnMiwgdHlwZSA9ICJ0ZXh0IikNCmNvZWZ0ZXN0KHJlZzIsIHZjb3YgPSBoY2NtKHJlZzIsIHR5cGUgPSAiaGMxIikpDQpgYGANCiogV2UgY2FuIHNlZSBpbiB0aGUgZmlyc3QgdmFyaWFibGUgKioobWFycmZlbSkqKiB0aGF0IGEgd29tYW4gdGhhdCBpcyBtYXJyaWVkIHRlbmRzIHRvIGVhcm4gMzUuMiUgbGVzcyB0aGF0IGEgbWFuIHdobyBpcyBtYXJyaWVkLiANCiogSW4gdGhlIHNlY29uZCBvbmUgKiooc2luZ21hbCkqKiBzYXlzIHRoYXQgYSBtYW4gd2hvIGlzIHNpbmdsZSB0ZW5kcyB0byBlYXJuIDguNSUgdGhhbiBhIG1hbiB3aG8gaXMgbWFycmllZC4gDQoqIEluIHRoZSBsYXN0IG9uZSAqKihzaW5nZmVtKSoqIHdlIGNhbiBzZWUgdGhhdCBhIHdvbWFuIHRoYXQgaXMgc2luZ2xlIHRlbmRzIHRvIGVhcm4gMzEuOSUgbGVzcyB0aGFuIGEgbWFuIHRoYXQgaXMgbWFycmllZC4gDQoNCj4gKipDT05DTFVTSU9OKioNCg0KKiBBY29yZGluZyB0byB0aGUgZWNvbm9taWMgdGhlb3J5LCB0aGVyZSBhcmUgbm8gcmVkdW5kYW50IHZhcmlhYmxlcyBiZWNhdXNlIHdlIGhhdmUgc3BlY2lmaWVkIG91ciB2YXJpYWJsZXMgY29ycmVjdGx5LCBhbmQgbXVjaCBsZXNzIHRoZXJlIGlzIHBlcmZlY3QgY29sbGluZWFyaXR5IHdpdGggb3VyIGluZGVwZW5kZW50IHZhcmlhYmxlcy4gDQoNCiogV2Ugd29uZGVyZWQgaWYgaXQncyBwb3NzaWJsZSB0aGF0IHNvbWUgb3RoZXIgdmFyaWFibGVzIGV4aXN0IHdoaWNoIG1pZ2h0IGhhdmUgYW4gaW5mbHVlbmNlIG9uIG1vbnRobHkgaW5jb21lLCBzbyBhY2NvcmRpbmcgdG8gdGhlIEVOT0UgZGF0YSwgd2UgdG9vayBpbnRvIGFjY291bnQgdGhlIGluZm9ybWFsIGFuZCBmb3JtYWwgam9iIHZhcmlhYmxlICoqKGpvYikqKi4gV2UgbWFkZSB0aGUgcmVncmVzc2lvbiwgYW5kIGFjY29yZGluZyB0byB0aGlzLCB0aGUgdmFyaWFibGUgc2hvd3MgdGhhdCBmb3IgdGhlIHNpbXBsZSBmYWN0IG9mIGhhdmluZyBhIGZvcm1hbCBqb2IsIHNvbWVvbmUgY291bGQgZWFybiAqKjQwJSoqIG1vcmUgdGhhdCBzb21lb25lIHdobyBkb2Vzbid0Lg0KKip3ZSB1c2UgZHVtbXkgdmFyaWJsZXMgZm9yIHRoaXMgcmVncmVzc2lvbiB0b28uKioNCmBgYHtyfQ0KU0RFTVQxMTgkam9iIDwtIHJlY29kZShTREVNVDExOCRlbXBfcHBhbCwgIjE9MDsgMj0xIikgIyBlbXBsZW8gaW5mb3JtYWw9MTsgMD1lbXBsZW8gZm9ybWFsDQoNCnJlZzIgPC0gbG0obG9nKGluZ29jdXApIH4gam9iICsgbXVqZXIgKyBlZGEgKyBJKGVkYV4yKSArIGFuaW9zX2VzYyArIGNhc2FkbyArIGhyc29jdXAsIGRhdGE9U0RFTVQxMTgpDQpzdGFyZ2F6ZXIocmVnMiwgdHlwZSA9ICJ0ZXh0IikNCmBgYA0KDQog