Licença

This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.

License: CC BY-SA 4.0

License: CC BY-SA 4.0

Citação

Sugestão de citação: FIGUEIREDO, Adriano Marcos Rodrigues. Econometria: exercício da quantidade produzida de algodão em MS, MT e GO. Campo Grande-MS,Brasil: RStudio/Rpubs, 2019. Disponível em http://rpubs.com/amrofi/cotton_exercise.

1 Introdução

Os primeiros passos são criar ou abrir um diretório de trabalho. Se optar por criar um novo projeto, haverá a possibilidade de criar em uma pasta vazia. Em seguida, sugere-se que coloque os dados nesta pasta, se possível em um arquivo MS Excel e chame a planilha de ‘dados’.Neste caso, a planilha chama-se dados_centro_oeste.xlsx. Os dados foram coletados em 2002 e sofreram revisões pelo IBGE, de modo a não estarem perfeitamente idênticos aos do SIDRA-IBGE (Tabela 1612 da PAM - Pesquisa Agrícola Municipal: http://api.sidra.ibge.gov.br/values/t/1612/n3/51,52,50/v/109,214,215,216/p/all/c81/2689).

Seja uma estimação da quantidade de algodão (QALG) em função da área de algodão (AALG), do preço do algodão (PALG), do preço da soja (PSOJA), para municípios de Mato Grosso do Sul (MS), Mato Grosso (MT) e Goiás (GO). É possível dizer que a quantidade de algodão tem um comportamento distinto entre os estados MS, MT e GO?

Neste exercício, para m=3 respostas (MS, MT ou GO), colocam-se duas (m-1=2) dummies: DMS e DMT.

A rotina para chamar os dados de uma arquivo Excel encontra-se a seguir, porém, optamos por colocá-los dentro do arquivo RMarkdown. A rotina do embeded data está logo na sequência.

# exercicio para trabalhar dummies chamando os dados de producao de algodao
# dos estados do centro-oeste com dados da PAM IBGE 1990 a 2000, para cada
# estado MS MT GO ou seja 33 observacoes
library(readxl)
library(foreign)
dados <- read_excel("dados_centro_oeste.xlsx", sheet = "dados")
# Qalg = quantidade produzida de algodao Aalg = área total colhida de
# algodao Palg = preco do algodao Psoja = preco da soja DMS e DMT sao
# dummies para os estados em que GO é a base estado é uma variável
# indicadora contendo a sigla do estado

A opção gerada pelo dput() dos dados básicos está abaixo:

dados <- structure(list(ano = c(1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 
    1998, 1999, 2000, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 
    1999, 2000, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 
    2000), Qalg = c(59754, 83650, 83710, 94560, 101368, 157031, 173796, 189699, 
    260452, 278363, 254476, 73559, 90561, 85119, 64735, 77409, 105791, 87952, 
    56027, 93229, 114521, 127839, 57634, 73458, 67862, 85641, 91828, 87458, 
    73553, 78376, 271038, 630406, 1002836), Aalg = c(35459, 42990, 53772, 38172, 
    53773, 69533, 81659, 83234, 186661, 117056, 96718, 44570, 51888, 73333, 
    39643, 41135, 60011, 59637, 26604, 49151, 46231, 48450, 43422, 68443, 53836, 
    69584, 66059, 69390, 55075, 42259, 106483, 200182, 257762), Palg = c(0.356572484593691, 
    0.28548486348212, 0.18460421844633, 0.206416737228048, 0.415961827791941, 
    0.306940214830232, 0.355443864081562, 0.426290579971575, 0.345460690410503, 
    0.369425952314763, 0.372826913527653, 0.370110836978266, 0.337634829251245, 
    0.19012070963983, 0.18883532150463, 0.514823904914612, 0.340196812424667, 
    0.303950608442499, 0.399129289604689, 0.340215816862215, 0.407992489922868, 
    0.362518549919648, 0.268432114188467, 0.248378441722003, 0.171583759997412, 
    0.214788618467748, 0.511497661369565, 0.304906963153987, 0.28341715278882, 
    0.359730772000928, 0.355262834733223, 0.369540331161043, 0.326479031442301), 
    Psoja = c(0.129725363498433, 0.116121616325159, 0.112620111592226, 0.0873969828327483, 
        0.176972146441714, 0.103769694520009, 0.149613452870967, 0.1663861049096, 
        0.143011987528068, 0.14175993084962, 0.137533111256611, 0.150873051860415, 
        0.138236213975033, 0.12167602921687, 0.129874022775396, 0.207511199152738, 
        0.108008706367883, 0.154946820778127, 0.172922997949505, 0.138872367383235, 
        0.148515655529693, 0.136549826243949, 0.113535605629564, 0.117219268828656, 
        0.0968498706796199, 0.0719258443192821, 0.208422118749737, 0.104896138231911, 
        0.135136436052929, 0.150488044032018, 0.123091268671333, 0.11957295449546, 
        0.130580697047997), DMS = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
        1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), DMT = c(0, 
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 
        1, 1, 1, 1, 1, 1, 1, 1, 1), estado = c("go", "go", "go", "go", "go", 
        "go", "go", "go", "go", "go", "go", "ms", "ms", "ms", "ms", "ms", "ms", 
        "ms", "ms", "ms", "ms", "ms", "mt", "mt", "mt", "mt", "mt", "mt", "mt", 
        "mt", "mt", "mt", "mt")), row.names = c(NA, -33L), class = c("tbl_df", 
    "tbl", "data.frame"))
attach(dados)

Vamos ver como está a tabela importada:

library(knitr)
kable(dados, caption = "Dados do Exercício")
Dados do Exercício
ano Qalg Aalg Palg Psoja DMS DMT estado
1990 59754 35459 0.3565725 0.1297254 0 0 go
1991 83650 42990 0.2854849 0.1161216 0 0 go
1992 83710 53772 0.1846042 0.1126201 0 0 go
1993 94560 38172 0.2064167 0.0873970 0 0 go
1994 101368 53773 0.4159618 0.1769721 0 0 go
1995 157031 69533 0.3069402 0.1037697 0 0 go
1996 173796 81659 0.3554439 0.1496135 0 0 go
1997 189699 83234 0.4262906 0.1663861 0 0 go
1998 260452 186661 0.3454607 0.1430120 0 0 go
1999 278363 117056 0.3694260 0.1417599 0 0 go
2000 254476 96718 0.3728269 0.1375331 0 0 go
1990 73559 44570 0.3701108 0.1508731 1 0 ms
1991 90561 51888 0.3376348 0.1382362 1 0 ms
1992 85119 73333 0.1901207 0.1216760 1 0 ms
1993 64735 39643 0.1888353 0.1298740 1 0 ms
1994 77409 41135 0.5148239 0.2075112 1 0 ms
1995 105791 60011 0.3401968 0.1080087 1 0 ms
1996 87952 59637 0.3039506 0.1549468 1 0 ms
1997 56027 26604 0.3991293 0.1729230 1 0 ms
1998 93229 49151 0.3402158 0.1388724 1 0 ms
1999 114521 46231 0.4079925 0.1485157 1 0 ms
2000 127839 48450 0.3625185 0.1365498 1 0 ms
1990 57634 43422 0.2684321 0.1135356 0 1 mt
1991 73458 68443 0.2483784 0.1172193 0 1 mt
1992 67862 53836 0.1715838 0.0968499 0 1 mt
1993 85641 69584 0.2147886 0.0719258 0 1 mt
1994 91828 66059 0.5114977 0.2084221 0 1 mt
1995 87458 69390 0.3049070 0.1048961 0 1 mt
1996 73553 55075 0.2834172 0.1351364 0 1 mt
1997 78376 42259 0.3597308 0.1504880 0 1 mt
1998 271038 106483 0.3552628 0.1230913 0 1 mt
1999 630406 200182 0.3695403 0.1195730 0 1 mt
2000 1002836 257762 0.3264790 0.1305807 0 1 mt

2 Resultados

2.1 Estatísticas descritivas

library(knitr)
kable(summary(dados), caption = "Estatísticas descritivas")
Estatísticas descritivas
ano Qalg Aalg Palg Psoja DMS DMT estado
Min. :1990 Min. : 56027 Min. : 26604 Min. :0.1716 Min. :0.07193 Min. :0.0000 Min. :0.0000 Length:33
1st Qu.:1992 1st Qu.: 77409 1st Qu.: 44570 1st Qu.:0.2834 1st Qu.:0.11612 1st Qu.:0.0000 1st Qu.:0.0000 Class :character
Median :1995 Median : 90561 Median : 55075 Median :0.3402 Median :0.13514 Median :0.0000 Median :0.0000 Mode :character
Mean :1995 Mean : 158597 Mean : 73702 Mean :0.3271 Mean :0.13469 Mean :0.3333 Mean :0.3333 NA
3rd Qu.:1998 3rd Qu.: 157031 3rd Qu.: 73333 3rd Qu.:0.3695 3rd Qu.:0.14961 3rd Qu.:1.0000 3rd Qu.:1.0000 NA
Max. :2000 Max. :1002836 Max. :257762 Max. :0.5148 Max. :0.20842 Max. :1.0000 Max. :1.0000 NA

2.1.1 Heterogeneidade entre estados

library(gplots)
plotmeans(Qalg ~ estado, main = "Heterogeneidade entre estados", data = dados)

plotmeans(Palg ~ estado, main = "Heterogeneidade entre estados", data = dados)

plotmeans(Psoja ~ estado, main = "Heterogeneidade entre estados", data = dados)

2.1.2 Correlação

correlacao <- cor(dados[, 2:5])
correlacao
             Qalg        Aalg       Palg       Psoja
Qalg   1.00000000  0.92285073 0.13167353 -0.04450812
Aalg   0.92285073  1.00000000 0.09071653 -0.06899129
Palg   0.13167353  0.09071653 1.00000000  0.81656495
Psoja -0.04450812 -0.06899129 0.81656495  1.00000000

Vamos estimar o modelo linear múltiplo fazendo as regressoes de QAlg contra Aalg, Palg, Psoja e as dummies dos estados.

2.2 Regressão nos dados empilhados

attach(dados)
reg.empilhada <- lm(Qalg ~ Aalg + Palg + Psoja)
summary(reg.empilhada)

Call:
lm(formula = Qalg ~ Aalg + Palg + Psoja)

Residuals:
    Min      1Q  Median      3Q     Max 
-279711  -12220    5624   24973  222085 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -1.080e+05  6.523e+04  -1.656    0.109    
Aalg         3.372e+00  2.716e-01  12.413 3.97e-13 ***
Palg         2.249e+05  2.761e+05   0.815    0.422    
Psoja       -4.119e+05  7.886e+05  -0.522    0.605    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 74870 on 29 degrees of freedom
Multiple R-squared:  0.8553,    Adjusted R-squared:  0.8404 
F-statistic: 57.15 on 3 and 29 DF,  p-value: 2.741e-12
# incluindo Akaike e Schwarz no objeto reg.empilhada
reg.empilhada$AIC <- AIC(reg.empilhada)
reg.empilhada$BIC <- BIC(reg.empilhada)

library(stargazer)
stargazer(list(reg.empilhada), title = "Título: Resultado da Regressão", align = TRUE, 
    type = "text", style = "all", keep.stat = c("aic", "bic", "rsq", "adj.rsq", 
        "n"))

Título: Resultado da Regressão
===============================================
                        Dependent variable:    
                    ---------------------------
                               Qalg            
-----------------------------------------------
Aalg                         3.372***          
                              (0.272)          
                            t = 12.413         
                             p = 0.000         
Palg                        224,936.700        
                           (276,101.200)       
                             t = 0.815         
                             p = 0.422         
Psoja                      -411,931.000        
                           (788,639.400)       
                            t = -0.522         
                             p = 0.606         
Constant                   -108,010.900        
                           (65,228.060)        
                            t = -1.656         
                             p = 0.109         
-----------------------------------------------
Observations                    33             
R2                             0.855           
Adjusted R2                    0.840           
Akaike Inf. Crit.             840.140          
Bayesian Inf. Crit.           847.623          
===============================================
Note:               *p<0.1; **p<0.05; ***p<0.01

2.3 Regressão com dummies alterando intercepto

reg.dint <- lm(Qalg ~ Aalg + Palg + Psoja + DMS + DMT, data = dados)
summary(reg.dint)

Call:
lm(formula = Qalg ~ Aalg + Palg + Psoja + DMS + DMT, data = dados)

Residuals:
    Min      1Q  Median      3Q     Max 
-268125  -18434    6251   29361  211113 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -1.192e+05  6.951e+04  -1.715   0.0979 .  
Aalg         3.428e+00  2.939e-01  11.664 4.74e-12 ***
Palg         2.549e+05  2.827e+05   0.902   0.3752    
Psoja       -5.604e+05  8.284e+05  -0.676   0.5045    
DMS          3.438e+04  3.436e+04   1.001   0.3259    
DMT          1.730e+04  3.307e+04   0.523   0.6052    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 76180 on 27 degrees of freedom
Multiple R-squared:  0.8606,    Adjusted R-squared:  0.8348 
F-statistic: 33.33 on 5 and 27 DF,  p-value: 9.707e-11
reg.dint$AIC <- AIC(reg.dint)
reg.dint$BIC <- BIC(reg.dint)

stargazer(list(reg.empilhada, reg.dint), title = "Título: Resultados das Regressões", 
    align = TRUE, type = "text", style = "commadefault", keep.stat = c("aic", 
        "bic", "rsq", "adj.rsq", "n"))

Título: Resultados das Regressões
================================================
                        Dependent variable:     
                    ----------------------------
                                Qalg            
                         (1)            (2)     
------------------------------------------------
Aalg                   3,372***      3,428***   
                       (0,272)        (0,294)   
                                                
Palg                 224 936,700    254 920,700 
                    (276 101,200)  (282 723,600)
                                                
Psoja                -411 931,000  -560 375,200 
                    (788 639,400)  (828 440,200)
                                                
DMS                                 34 383,040  
                                   (34 362,420) 
                                                
DMT                                 17 299,030  
                                   (33 069,470) 
                                                
Constant             -108 010,900  -119 182,100*
                     (65 228,060)  (69 507,100) 
                                                
------------------------------------------------
Observations              33            33      
R2                      0,855          0,861    
Adjusted R2             0,840          0,835    
Akaike Inf. Crit.      840,140        842,920   
Bayesian Inf. Crit.    847,623        853,396   
================================================
Note:                *p<0,1; **p<0,05; ***p<0,01

2.3.1 Variável estado ao invés das dummies

reg.dint2 <- lm(Qalg ~ Aalg + Palg + Psoja + estado, data = dados)
summary(reg.dint2)

Call:
lm(formula = Qalg ~ Aalg + Palg + Psoja + estado, data = dados)

Residuals:
    Min      1Q  Median      3Q     Max 
-268125  -18434    6251   29361  211113 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -1.192e+05  6.951e+04  -1.715   0.0979 .  
Aalg         3.428e+00  2.939e-01  11.664 4.74e-12 ***
Palg         2.549e+05  2.827e+05   0.902   0.3752    
Psoja       -5.604e+05  8.284e+05  -0.676   0.5045    
estadoms     3.438e+04  3.436e+04   1.001   0.3259    
estadomt     1.730e+04  3.307e+04   0.523   0.6052    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 76180 on 27 degrees of freedom
Multiple R-squared:  0.8606,    Adjusted R-squared:  0.8348 
F-statistic: 33.33 on 5 and 27 DF,  p-value: 9.707e-11
reg.dint2$AIC <- AIC(reg.dint2)
reg.dint2$BIC <- BIC(reg.dint2)
stargazer(list(reg.dint, reg.dint2), title = "Título: Resultados das Regressões", 
    align = TRUE, type = "text", style = "commadefault", keep.stat = c("aic", 
        "bic", "rsq", "adj.rsq", "n"))

Título: Resultados das Regressões
================================================
                        Dependent variable:     
                    ----------------------------
                                Qalg            
                         (1)            (2)     
------------------------------------------------
Aalg                   3,428***      3,428***   
                       (0,294)        (0,294)   
                                                
Palg                 254 920,700    254 920,700 
                    (282 723,600)  (282 723,600)
                                                
Psoja                -560 375,200  -560 375,200 
                    (828 440,200)  (828 440,200)
                                                
DMS                   34 383,040                
                     (34 362,420)               
                                                
DMT                   17 299,030                
                     (33 069,470)               
                                                
estadoms                            34 383,040  
                                   (34 362,420) 
                                                
estadomt                            17 299,030  
                                   (33 069,470) 
                                                
Constant            -119 182,100*  -119 182,100*
                     (69 507,100)  (69 507,100) 
                                                
------------------------------------------------
Observations              33            33      
R2                      0,861          0,861    
Adjusted R2             0,835          0,835    
Akaike Inf. Crit.      842,920        842,920   
Bayesian Inf. Crit.    853,396        853,396   
================================================
Note:                *p<0,1; **p<0,05; ***p<0,01

2.4 Alterando a inclinacao da Aalg para os estados

reg.dum <- lm(Qalg ~ Aalg + Palg + Psoja + estado + I(Aalg * DMS) + I(Aalg * 
    DMT), data = dados)
reg.dum$AIC <- AIC(reg.dum)
reg.dum$BIC <- BIC(reg.dum)
# summary(reg.dum)
reg.dum2 <- lm(Qalg ~ Aalg + Palg + Psoja + DMS + DMT + I(Aalg * DMS) + I(Aalg * 
    DMT), data = dados)
reg.dum2$AIC <- AIC(reg.dum2)
reg.dum2$BIC <- BIC(reg.dum2)
stargazer(list(reg.dum, reg.dum2), title = "Título: Resultados das Regressões", 
    align = TRUE, type = "text", style = "commadefault", keep.stat = c("aic", 
        "bic", "rsq", "adj.rsq", "n"))

Título: Resultados das Regressões
===================================================
                          Dependent variable:      
                    -------------------------------
                                 Qalg              
                          (1)             (2)      
---------------------------------------------------
Aalg                   1,502***        1,502***    
                        (0,289)         (0,289)    
                                                   
Palg                  107 111,300     107 111,300  
                     (149 136,400)   (149 136,400) 
                                                   
Psoja                 -82 016,410     -82 016,410  
                     (437 561,500)   (437 561,500) 
                                                   
estadoms              -2 898,414                   
                     (62 151,800)                  
                                                   
estadomt            -214 415,100***                
                     (32 669,700)                  
                                                   
DMS                                   -2 898,414   
                                     (62 151,800)  
                                                   
DMT                                 -214 415,100***
                                     (32 669,700)  
                                                   
I(Aalg * DMS)           -0,466          -0,466     
                        (1,132)         (1,132)    
                                                   
I(Aalg * DMT)          2,805***        2,805***    
                        (0,340)         (0,340)    
                                                   
Constant              16 181,970      16 181,970   
                     (39 649,590)    (39 649,590)  
                                                   
---------------------------------------------------
Observations              33              33       
R2                       0,965           0,965     
Adjusted R2              0,955           0,955     
Akaike Inf. Crit.       801,298         801,298    
Bayesian Inf. Crit.     814,767         814,767    
===================================================
Note:                   *p<0,1; **p<0,05; ***p<0,01

2.5 Alternativa de usar o pacote dummies

attach(dados)
library(dummies)

# o pacote cria dummies usando o nome da variável justaposto com o codigo
# das observacoes: estadogo, estadoms,estadomt alternativa de usar o pacote
# dummies
library(dummies)
dummies <- dummy(estado, drop = FALSE)
colnames(dummies) <- c("estadogo", "estadoms", "estadomt")
dados <- cbind(dados, dummies)
# o pacote cria dummies usando o nome da variável justaposto com o codigo
# das observacoes: estadogo, estadoms,estadomt
print(dados)
   ano   Qalg   Aalg      Palg      Psoja DMS DMT estado estadogo estadoms
1 1990  59754  35459 0.3565725 0.12972536   0   0     go        1        0
2 1991  83650  42990 0.2854849 0.11612162   0   0     go        1        0
3 1992  83710  53772 0.1846042 0.11262011   0   0     go        1        0
4 1993  94560  38172 0.2064167 0.08739698   0   0     go        1        0
5 1994 101368  53773 0.4159618 0.17697215   0   0     go        1        0
6 1995 157031  69533 0.3069402 0.10376969   0   0     go        1        0
7 1996 173796  81659 0.3554439 0.14961345   0   0     go        1        0
8 1997 189699  83234 0.4262906 0.16638610   0   0     go        1        0
9 1998 260452 186661 0.3454607 0.14301199   0   0     go        1        0
  estadomt
1        0
2        0
3        0
4        0
5        0
6        0
7        0
8        0
9        0
 [ reached 'max' / getOption("max.print") -- omitted 24 rows ]

3 Usando a Tendência para calcular a TGC

Agora calcularei a TGC (taxa geométrica de crescimento) para a variável QAlg. Também chamado de “growth model” em Gujarati (2015,p.33-35, Econometrics by example), para o modelo log-linear (ou modelo semilog) do tipo:

\[ \ln Qalg_t= \beta_{1}+ \beta_{2}t+\epsilon_t \]

em que t é a variável tendência para os anos de 1990 a 2000. O parâmetro \(\beta_{2}\) é o coeficiente de interesse, da inclinação, o qual mede a mudança relativa no regressando para uma dada mudança absoluta no regressor - é a taxa instantânea de crescimento. A TGC será a taxa composta (para um período de tempo) de crescimento. A TGC será

\[ TGC = [e^{\beta_{2}}-1)]*100 \]

# sejam as variáveis v para a serie que se quer a TGC e t para o ano

# para Qalg MT
vmt <- dados[23:33, 2]
t <- dados[23:33, 1]  # anos 1990 a 2000
logv <- log(vmt)
eq = lm(logv ~ t)
# pego o segundo parâmetro - o primeiro é o intercepto
beta <- summary(eq)$coefficients[2]
# Calculo da TGC
(TGC = I((exp(beta) - 1) * 100))
[1] 27.39809
summary(eq)

Call:
lm(formula = logv ~ t)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.99807 -0.25869  0.05916  0.38977  0.82456 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)   
(Intercept) -471.29928  113.40011  -4.156  0.00246 **
t              0.24215    0.05684   4.260  0.00211 **
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.5962 on 9 degrees of freedom
Multiple R-squared:  0.6685,    Adjusted R-squared:  0.6316 
F-statistic: 18.15 on 1 and 9 DF,  p-value: 0.002111

Ou seja, neste caso temos uma TGC de 27.39% ao ano paa QAlg de MT. Deve-se atentar que o parâmetro de \(t\) na regressão (\(\beta_{2}\)) foi estatisticamente significativo.

4 Refazendo com logs

attach(dados)
# sem dummies
mod1 <- lm(log(Qalg) ~ log(Aalg) + log(Palg) + log(Psoja), data = dados)
mod1$AIC <- AIC(mod1)
mod1$BIC <- BIC(mod1)
# alterando somente intercepto
mod2 <- lm(log(Qalg) ~ log(Aalg) + log(Palg) + log(Psoja) + estado, data = dados)
mod2$AIC <- AIC(mod2)
mod2$BIC <- BIC(mod2)
# alterando intercepto e inclinacao de Aalg
mod3 <- lm(log(Qalg) ~ log(Aalg) + log(Palg) + log(Psoja) + estado + I(log(Aalg) * 
    DMS) + I(log(Aalg) * DMT), data = dados)
mod3$AIC <- AIC(mod3)
mod3$BIC <- BIC(mod3)
# consolidando a tabela comparativa
stargazer(list(mod1, mod2, mod3), title = "Título: Resultados das Regressões - com logs", 
    align = TRUE, type = "text", style = "commadefault", keep.stat = c("aic", 
        "bic", "rsq", "adj.rsq", "n"))

Título: Resultados das Regressões - com logs
=================================================
                         Dependent variable:     
                    -----------------------------
                              log(Qalg)          
                       (1)       (2)       (3)   
-------------------------------------------------
log(Aalg)           1,155***  1,205***  0,926*** 
                     (0,098)   (0,104)   (0,134) 
                                                 
log(Palg)            0,637**   0,653**   0,499** 
                     (0,264)   (0,258)   (0,207) 
                                                 
log(Psoja)           -0,352    -0,476    -0,339  
                     (0,333)   (0,337)   (0,272) 
                                                 
estadoms                       -0,003     2,855  
                               (0,121)   (3,272) 
                                                 
estadomt                       -0,203*  -7,201***
                               (0,115)   (1,952) 
                                                 
I(log(Aalg) * DMS)                       -0,276  
                                         (0,301) 
                                                 
I(log(Aalg) * DMT)                      0,624*** 
                                         (0,174) 
                                                 
Constant             -1,089    -1,801     1,408  
                     (1,109)   (1,251)   (1,625) 
                                                 
-------------------------------------------------
Observations           33        33        33    
R2                    0,854     0,871     0,926  
Adjusted R2           0,839     0,848     0,906  
Akaike Inf. Crit.    13,233    13,061    -1,353  
Bayesian Inf. Crit.  20,716    23,536    12,115  
=================================================
Note:                 *p<0,1; **p<0,05; ***p<0,01

É importante salientar que não se pode comparar os AIC e BIC entre os modelos com logs e sem logs. Desta forma, a medida de comparação será o \(R^2\) ajustado. O modelo com logs permite liberar a restrição de linearidade por meio da transformação das variáveis e o ajuste pode ser considerado satisfatório, agora com \(R^2\) de 0,926 e \(R^2\) ajustado de 0,906 para o modelo com alteração no intercepto e em Aalg, e os parâmetros significativos a 5% de significância para Aalg, Palg, e os termos de Mato Grosso. Ou seja, para GO e MS tem-se uma só equação enquanto para MT a equação altera o intercepto e a inclinação de Aalg.

LS0tDQp0aXRsZTogIkVjb25vbWV0cmlhOiBleGVyY8OtY2lvIGRhIHF1YW50aWRhZGUgcHJvZHV6aWRhIGRlIGFsZ29kw6NvIGVtIE1TLCBNVCBlIEdPIg0KYXV0aG9yOiAiQWRyaWFubyBNYXJjb3MgUm9kcmlndWVzIEZpZ3VlaXJlZG8sICplLW1haWw6IGFkcmlhbm8uZmlndWVpcmVkb0B1Zm1zLmJyKiINCmFic3RyYWN0OiANCiAgV2UgYW5hbHlzZSBkaWZmZXJlbnQgc3BlY2lmaWNhdGlvbnMgb2YgZHVtbXkgdmFyaWFibGVzIGZvciB0aGUgc3RhdGVzIGluIHRoZSBleHBsYW5hdGlvbiBvZiB0aGUgcHJvZHVjZWQgY290dG9uLiBUaGUgZXhhbXBsZSBpcyBhIHNpbXBsaWZpZWQgZXhlcmNpc2UgdXNpbmcgYSBsaW5lYXIgbXVsdGlwbGUgcmVncmVzc2lvbi4gDQpkYXRlOiAiYHIgZm9ybWF0KFN5cy5EYXRlKCksICclZCAlQiAlWScpYCINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQogICAgdGhlbWU6IGRlZmF1bHQNCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUNCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDogeWVzDQogICAgZGZfcHJpbnQ6IHBhZ2VkDQogICAgZmlnX2NhcHRpb246IHRydWUNCiAgcGRmX2RvY3VtZW50Og0KICAgIHRvYzogeWVzDQotLS0NCg0KYGBge3Iga25pdHJfaW5pdCwgZWNobz1GQUxTRSwgY2FjaGU9RkFMU0V9DQpsaWJyYXJ5KGtuaXRyKQ0KbGlicmFyeShybWFya2Rvd24pDQpsaWJyYXJ5KHJtZGZvcm1hdHMpDQoNCiMjIEdsb2JhbCBvcHRpb25zDQpvcHRpb25zKG1heC5wcmludD0iMTAwIikNCm9wdHNfY2h1bmskc2V0KGVjaG89VFJVRSwNCgkgICAgICAgICAgICAgY2FjaGU9VFJVRSwNCiAgICAgICAgICAgICAgIHByb21wdD1GQUxTRSwNCiAgICAgICAgICAgICAgIHRpZHk9VFJVRSwNCiAgICAgICAgICAgICAgIGNvbW1lbnQ9TkEsDQogICAgICAgICAgICAgICBtZXNzYWdlPUZBTFNFLA0KICAgICAgICAgICAgICAgd2FybmluZz1GQUxTRSwNCiAgICAgICAgICAgICAgIG91dC53aWR0aD03NTAsIA0KICAgICAgICAgICAgICAgZmlnLmhlaWdodD04LCANCiAgICAgICAgICAgICAgIGZpZy53aWR0aD04KQ0Kb3B0c19rbml0JHNldCh3aWR0aD0xMDApDQpgYGANCg0KDQpMaWNlbsOnYSB7LSNMaWNlbsOnYX0NCj09PT09PT09PT09PT09PT09PT0NCg0KVGhpcyB3b3JrIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBDcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uLVNoYXJlQWxpa2UgNC4wIEludGVybmF0aW9uYWwgTGljZW5zZS4gVG8gdmlldyBhIGNvcHkgb2YgdGhpcyBsaWNlbnNlLCB2aXNpdCA8aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLz4gb3Igc2VuZCBhIGxldHRlciB0byBDcmVhdGl2ZSBDb21tb25zLCBQTyBCb3ggMTg2NiwgTW91bnRhaW4gVmlldywgQ0EgOTQwNDIsIFVTQS4NCg0KIVtMaWNlbnNlOiBDQyBCWS1TQSA0LjBdKGh0dHBzOi8vbWlycm9ycy5jcmVhdGl2ZWNvbW1vbnMub3JnL3ByZXNza2l0L2J1dHRvbnMvODh4MzEvcG5nL2J5LXNhLnBuZyl7IHdpZHRoPTI1JSB9DQoNCkNpdGHDp8OjbyB7LSNDaXRhw6fDo299DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQpTdWdlc3TDo28gZGUgY2l0YcOnw6NvOg0KRklHVUVJUkVETywgQWRyaWFubyBNYXJjb3MgUm9kcmlndWVzLiBFY29ub21ldHJpYTogZXhlcmPDrWNpbyBkYSBxdWFudGlkYWRlIHByb2R1emlkYSBkZSBhbGdvZMOjbyBlbSBNUywgTVQgZSBHTy4gQ2FtcG8gR3JhbmRlLU1TLEJyYXNpbDogUlN0dWRpby9ScHVicywgMjAxOS4gRGlzcG9uw612ZWwgZW0gPGh0dHA6Ly9ycHVicy5jb20vYW1yb2ZpL2NvdHRvbl9leGVyY2lzZT4uIA0KDQpJbnRyb2R1w6fDo28NCj09PT09PT09PT09PT09PT09PT0NCg0KT3MgcHJpbWVpcm9zIHBhc3NvcyBzw6NvIGNyaWFyIG91IGFicmlyIHVtIGRpcmV0w7NyaW8gZGUgdHJhYmFsaG8uIFNlIG9wdGFyIHBvciBjcmlhciB1bSBub3ZvIHByb2pldG8sIGhhdmVyw6EgYSBwb3NzaWJpbGlkYWRlIGRlIGNyaWFyIGVtIHVtYSBwYXN0YSB2YXppYS4gRW0gc2VndWlkYSwgc3VnZXJlLXNlIHF1ZSBjb2xvcXVlIG9zIGRhZG9zIG5lc3RhIHBhc3RhLCBzZSBwb3Nzw612ZWwgZW0gdW0gYXJxdWl2byBNUyBFeGNlbCBlIGNoYW1lIGEgcGxhbmlsaGEgZGUgJ2RhZG9zJy5OZXN0ZSBjYXNvLCBhIHBsYW5pbGhhIGNoYW1hLXNlICpkYWRvc19jZW50cm9fb2VzdGUueGxzeCouIE9zIGRhZG9zIGZvcmFtIGNvbGV0YWRvcyBlbSAyMDAyIGUgc29mcmVyYW0gcmV2aXPDtWVzIHBlbG8gSUJHRSwgZGUgbW9kbyBhIG7Do28gZXN0YXJlbSBwZXJmZWl0YW1lbnRlIGlkw6pudGljb3MgYW9zIGRvIFNJRFJBLUlCR0UgKFRhYmVsYSAxNjEyIGRhIFBBTSAtIFBlc3F1aXNhIEFncsOtY29sYSBNdW5pY2lwYWw6IGh0dHA6Ly9hcGkuc2lkcmEuaWJnZS5nb3YuYnIvdmFsdWVzL3QvMTYxMi9uMy81MSw1Miw1MC92LzEwOSwyMTQsMjE1LDIxNi9wL2FsbC9jODEvMjY4OSkuDQoNCj4gU2VqYSB1bWEgZXN0aW1hw6fDo28gZGEgcXVhbnRpZGFkZSBkZSBhbGdvZMOjbyAoUUFMRykgZW0gZnVuw6fDo28gZGEgw6FyZWEgZGUgYWxnb2TDo28gKEFBTEcpLCBkbyBwcmXDp28gZG8gYWxnb2TDo28gKFBBTEcpLCBkbyBwcmXDp28gZGEgc29qYSAoUFNPSkEpLCBwYXJhIG11bmljw61waW9zIGRlIE1hdG8gR3Jvc3NvIGRvIFN1bCAoTVMpLCBNYXRvIEdyb3NzbyAoTVQpIGUgR29pw6FzIChHTykuIMOJIHBvc3PDrXZlbCBkaXplciBxdWUgYSBxdWFudGlkYWRlIGRlIGFsZ29kw6NvIHRlbSB1bSBjb21wb3J0YW1lbnRvIGRpc3RpbnRvIGVudHJlIG9zIGVzdGFkb3MgTVMsIE1UIGUgR08/ICAgDQoNCk5lc3RlIGV4ZXJjw61jaW8sIHBhcmEgbT0zIHJlc3Bvc3RhcyAoTVMsIE1UIG91IEdPKSwgY29sb2NhbS1zZSBkdWFzIChtLTE9MikgZHVtbWllczogRE1TIGUgRE1ULg0KDQpBIHJvdGluYSBwYXJhIGNoYW1hciBvcyBkYWRvcyBkZSB1bWEgYXJxdWl2byBFeGNlbCBlbmNvbnRyYS1zZSBhIHNlZ3VpciwgcG9yw6ltLCBvcHRhbW9zIHBvciBjb2xvY8OhLWxvcyBkZW50cm8gZG8gYXJxdWl2byBSTWFya2Rvd24uIEEgcm90aW5hIGRvICplbWJlZGVkIGRhdGEqIGVzdMOhIGxvZ28gbmEgc2VxdcOqbmNpYS4NCg0KYGBge3IsIGV2YWw9RkFMU0V9DQojZXhlcmNpY2lvIHBhcmEgdHJhYmFsaGFyIGR1bW1pZXMNCiNjaGFtYW5kbyBvcyBkYWRvcyBkZSBwcm9kdWNhbyBkZSBhbGdvZGFvIGRvcyBlc3RhZG9zIGRvIGNlbnRyby1vZXN0ZSBjb20gZGFkb3MgZGEgUEFNIElCR0UNCiMxOTkwIGEgMjAwMCwgcGFyYSBjYWRhIGVzdGFkbyBNUyBNVCBHTyBvdSBzZWphIDMzIG9ic2VydmFjb2VzDQpsaWJyYXJ5KHJlYWR4bCk7IGxpYnJhcnkoZm9yZWlnbikNCmRhZG9zIDwtIHJlYWRfZXhjZWwoImRhZG9zX2NlbnRyb19vZXN0ZS54bHN4IiwgDQogICAgICAgICAgICAgICAgICAgIHNoZWV0ID0gImRhZG9zIikNCiMgUWFsZyA9IHF1YW50aWRhZGUgcHJvZHV6aWRhIGRlIGFsZ29kYW8NCiMgQWFsZyA9IMOhcmVhIHRvdGFsIGNvbGhpZGEgZGUgYWxnb2RhbyANCiMgUGFsZyA9IHByZWNvIGRvIGFsZ29kYW8NCiMgUHNvamEgPSBwcmVjbyBkYSBzb2phIA0KIyBETVMgZSBETVQgc2FvIGR1bW1pZXMgcGFyYSBvcyBlc3RhZG9zIGVtIHF1ZSBHTyDDqSBhIGJhc2UNCiMgZXN0YWRvIMOpIHVtYSB2YXJpw6F2ZWwgaW5kaWNhZG9yYSBjb250ZW5kbyBhIHNpZ2xhIGRvIGVzdGFkbw0KYGBgDQoNCkEgb3DDp8OjbyBnZXJhZGEgcGVsbyBgZHB1dCgpYCBkb3MgZGFkb3MgYsOhc2ljb3MgZXN0w6EgYWJhaXhvOg0KDQpgYGB7ciwgZXZhbD1UUlVFfQ0KZGFkb3M8LXN0cnVjdHVyZShsaXN0KGFubyA9IGMoMTk5MCwgMTk5MSwgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgDQoxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAxOTkwLCAxOTkxLCAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCANCjE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDE5OTAsIDE5OTEsIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIA0KMTk5NywgMTk5OCwgMTk5OSwgMjAwMCksIFFhbGcgPSBjKDU5NzU0LCA4MzY1MCwgODM3MTAsIDk0NTYwLCANCjEwMTM2OCwgMTU3MDMxLCAxNzM3OTYsIDE4OTY5OSwgMjYwNDUyLCAyNzgzNjMsIDI1NDQ3NiwgNzM1NTksIA0KOTA1NjEsIDg1MTE5LCA2NDczNSwgNzc0MDksIDEwNTc5MSwgODc5NTIsIDU2MDI3LCA5MzIyOSwgMTE0NTIxLCANCjEyNzgzOSwgNTc2MzQsIDczNDU4LCA2Nzg2MiwgODU2NDEsIDkxODI4LCA4NzQ1OCwgNzM1NTMsIDc4Mzc2LCANCjI3MTAzOCwgNjMwNDA2LCAxMDAyODM2KSwgQWFsZyA9IGMoMzU0NTksIDQyOTkwLCA1Mzc3MiwgMzgxNzIsIA0KNTM3NzMsIDY5NTMzLCA4MTY1OSwgODMyMzQsIDE4NjY2MSwgMTE3MDU2LCA5NjcxOCwgNDQ1NzAsIDUxODg4LCANCjczMzMzLCAzOTY0MywgNDExMzUsIDYwMDExLCA1OTYzNywgMjY2MDQsIDQ5MTUxLCA0NjIzMSwgNDg0NTAsIA0KNDM0MjIsIDY4NDQzLCA1MzgzNiwgNjk1ODQsIDY2MDU5LCA2OTM5MCwgNTUwNzUsIDQyMjU5LCAxMDY0ODMsIA0KMjAwMTgyLCAyNTc3NjIpLCBQYWxnID0gYygwLjM1NjU3MjQ4NDU5MzY5MSwgMC4yODU0ODQ4NjM0ODIxMiwgDQowLjE4NDYwNDIxODQ0NjMzLCAwLjIwNjQxNjczNzIyODA0OCwgMC40MTU5NjE4Mjc3OTE5NDEsIDAuMzA2OTQwMjE0ODMwMjMyLCANCjAuMzU1NDQzODY0MDgxNTYyLCAwLjQyNjI5MDU3OTk3MTU3NSwgMC4zNDU0NjA2OTA0MTA1MDMsIDAuMzY5NDI1OTUyMzE0NzYzLCANCjAuMzcyODI2OTEzNTI3NjUzLCAwLjM3MDExMDgzNjk3ODI2NiwgMC4zMzc2MzQ4MjkyNTEyNDUsIDAuMTkwMTIwNzA5NjM5ODMsIA0KMC4xODg4MzUzMjE1MDQ2MywgMC41MTQ4MjM5MDQ5MTQ2MTIsIDAuMzQwMTk2ODEyNDI0NjY3LCAwLjMwMzk1MDYwODQ0MjQ5OSwgDQowLjM5OTEyOTI4OTYwNDY4OSwgMC4zNDAyMTU4MTY4NjIyMTUsIDAuNDA3OTkyNDg5OTIyODY4LCAwLjM2MjUxODU0OTkxOTY0OCwgDQowLjI2ODQzMjExNDE4ODQ2NywgMC4yNDgzNzg0NDE3MjIwMDMsIDAuMTcxNTgzNzU5OTk3NDEyLCAwLjIxNDc4ODYxODQ2Nzc0OCwgDQowLjUxMTQ5NzY2MTM2OTU2NSwgMC4zMDQ5MDY5NjMxNTM5ODcsIDAuMjgzNDE3MTUyNzg4ODIsIDAuMzU5NzMwNzcyMDAwOTI4LCANCjAuMzU1MjYyODM0NzMzMjIzLCAwLjM2OTU0MDMzMTE2MTA0MywgMC4zMjY0NzkwMzE0NDIzMDEpLCBQc29qYSA9IGMoMC4xMjk3MjUzNjM0OTg0MzMsIA0KMC4xMTYxMjE2MTYzMjUxNTksIDAuMTEyNjIwMTExNTkyMjI2LCAwLjA4NzM5Njk4MjgzMjc0ODMsIDAuMTc2OTcyMTQ2NDQxNzE0LCANCjAuMTAzNzY5Njk0NTIwMDA5LCAwLjE0OTYxMzQ1Mjg3MDk2NywgMC4xNjYzODYxMDQ5MDk2LCAwLjE0MzAxMTk4NzUyODA2OCwgDQowLjE0MTc1OTkzMDg0OTYyLCAwLjEzNzUzMzExMTI1NjYxMSwgMC4xNTA4NzMwNTE4NjA0MTUsIDAuMTM4MjM2MjEzOTc1MDMzLCANCjAuMTIxNjc2MDI5MjE2ODcsIDAuMTI5ODc0MDIyNzc1Mzk2LCAwLjIwNzUxMTE5OTE1MjczOCwgMC4xMDgwMDg3MDYzNjc4ODMsIA0KMC4xNTQ5NDY4MjA3NzgxMjcsIDAuMTcyOTIyOTk3OTQ5NTA1LCAwLjEzODg3MjM2NzM4MzIzNSwgMC4xNDg1MTU2NTU1Mjk2OTMsIA0KMC4xMzY1NDk4MjYyNDM5NDksIDAuMTEzNTM1NjA1NjI5NTY0LCAwLjExNzIxOTI2ODgyODY1NiwgMC4wOTY4NDk4NzA2Nzk2MTk5LCANCjAuMDcxOTI1ODQ0MzE5MjgyMSwgMC4yMDg0MjIxMTg3NDk3MzcsIDAuMTA0ODk2MTM4MjMxOTExLCAwLjEzNTEzNjQzNjA1MjkyOSwgDQowLjE1MDQ4ODA0NDAzMjAxOCwgMC4xMjMwOTEyNjg2NzEzMzMsIDAuMTE5NTcyOTU0NDk1NDYsIDAuMTMwNTgwNjk3MDQ3OTk3DQopLCBETVMgPSBjKDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDEsIDEsIDEsIDEsIDEsIA0KMSwgMSwgMSwgMSwgMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCksIERNVCA9IGMoMCwgMCwgDQowLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxLCANCjEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEpLCBlc3RhZG8gPSBjKCJnbyIsICJnbyIsICJnbyIsICJnbyIsIA0KImdvIiwgImdvIiwgImdvIiwgImdvIiwgImdvIiwgImdvIiwgImdvIiwgIm1zIiwgIm1zIiwgIm1zIiwgIm1zIiwgDQoibXMiLCAibXMiLCAibXMiLCAibXMiLCAibXMiLCAibXMiLCAibXMiLCAibXQiLCAibXQiLCAibXQiLCAibXQiLCANCiJtdCIsICJtdCIsICJtdCIsICJtdCIsICJtdCIsICJtdCIsICJtdCIpKSwgcm93Lm5hbWVzID0gYyhOQSwgDQotMzNMKSwgY2xhc3MgPSBjKCJ0YmxfZGYiLCAidGJsIiwgImRhdGEuZnJhbWUiKSkNCmF0dGFjaChkYWRvcykNCmBgYA0KDQpWYW1vcyB2ZXIgY29tbyBlc3TDoSBhIHRhYmVsYSBpbXBvcnRhZGE6DQoNCmBgYHtyfQ0KbGlicmFyeShrbml0cikNCmthYmxlKGRhZG9zLGNhcHRpb249IkRhZG9zIGRvIEV4ZXJjw61jaW8iKQ0KYGBgDQoNClJlc3VsdGFkb3MgDQo9PT09PT09PT09PT09PT09PT09DQoNCiMjIEVzdGF0w61zdGljYXMgZGVzY3JpdGl2YXMNCg0KYGBge3J9DQpsaWJyYXJ5KGtuaXRyKQ0Ka2FibGUoc3VtbWFyeShkYWRvcyksIGNhcHRpb24gPSAiRXN0YXTDrXN0aWNhcyBkZXNjcml0aXZhcyIpDQpgYGANCg0KIyMjIEhldGVyb2dlbmVpZGFkZSBlbnRyZSBlc3RhZG9zDQoNCmBgYHtyfQ0KbGlicmFyeShncGxvdHMpDQpwbG90bWVhbnMoUWFsZyB+IGVzdGFkbywgbWFpbiA9ICJIZXRlcm9nZW5laWRhZGUgZW50cmUgZXN0YWRvcyIsIGRhdGEgPSBkYWRvcykNCnBsb3RtZWFucyhQYWxnIH4gZXN0YWRvLCBtYWluID0gIkhldGVyb2dlbmVpZGFkZSBlbnRyZSBlc3RhZG9zIiwgZGF0YSA9IGRhZG9zKQ0KcGxvdG1lYW5zKFBzb2phIH4gZXN0YWRvLCBtYWluID0gIkhldGVyb2dlbmVpZGFkZSBlbnRyZSBlc3RhZG9zIiwgZGF0YSA9IGRhZG9zKQ0KYGBgDQoNCiMjIyBDb3JyZWxhw6fDo28NCg0KDQpgYGB7cn0NCmNvcnJlbGFjYW88LWNvcihkYWRvc1ssMjo1XSkNCmNvcnJlbGFjYW8NCmBgYA0KDQpWYW1vcyBlc3RpbWFyIG8gbW9kZWxvIGxpbmVhciBtw7psdGlwbG8gZmF6ZW5kbyBhcyByZWdyZXNzb2VzIGRlIFFBbGcgY29udHJhIEFhbGcsIFBhbGcsIFBzb2phIGUgYXMgZHVtbWllcyBkb3MgZXN0YWRvcy4NCg0KIyMgUmVncmVzc8OjbyBub3MgZGFkb3MgZW1waWxoYWRvcw0KDQpgYGB7ciB9DQphdHRhY2goZGFkb3MpDQpyZWcuZW1waWxoYWRhPC1sbShRYWxnfkFhbGcrUGFsZytQc29qYSkNCnN1bW1hcnkocmVnLmVtcGlsaGFkYSkNCiMgaW5jbHVpbmRvIEFrYWlrZSBlIFNjaHdhcnogbm8gb2JqZXRvIHJlZy5lbXBpbGhhZGENCnJlZy5lbXBpbGhhZGEkQUlDPC0gQUlDKHJlZy5lbXBpbGhhZGEpDQpyZWcuZW1waWxoYWRhJEJJQzwtIEJJQyhyZWcuZW1waWxoYWRhKQ0KDQpsaWJyYXJ5KHN0YXJnYXplcikNCnN0YXJnYXplcihsaXN0KHJlZy5lbXBpbGhhZGEpLA0KICAgICAgICAgIHRpdGxlPSJUw610dWxvOiBSZXN1bHRhZG8gZGEgUmVncmVzc8OjbyIsDQogICAgICAgICAgYWxpZ249VFJVRSwNCiAgICAgICAgICB0eXBlID0gInRleHQiLCANCiAgICAgICAgICBzdHlsZSA9ICJhbGwiLA0KICAgICAgICAgIGtlZXAuc3RhdD1jKCJhaWMiLCJiaWMiLCJyc3EiLCAiYWRqLnJzcSIsIm4iKQ0KICAgICAgICAgICkNCmBgYA0KDQojIyBSZWdyZXNzw6NvIGNvbSBkdW1taWVzIGFsdGVyYW5kbyBpbnRlcmNlcHRvDQoNCmBgYHtyfQ0KcmVnLmRpbnQ8LWxtKFFhbGd+QWFsZytQYWxnK1Bzb2phK0RNUytETVQsIGRhdGE9ZGFkb3MpDQpzdW1tYXJ5KHJlZy5kaW50KQ0KcmVnLmRpbnQkQUlDPC0gQUlDKHJlZy5kaW50KQ0KcmVnLmRpbnQkQklDPC0gQklDKHJlZy5kaW50KQ0KDQpzdGFyZ2F6ZXIobGlzdChyZWcuZW1waWxoYWRhLHJlZy5kaW50KSwNCiAgICAgICAgICB0aXRsZT0iVMOtdHVsbzogUmVzdWx0YWRvcyBkYXMgUmVncmVzc8O1ZXMiLA0KICAgICAgICAgIGFsaWduPVRSVUUsDQogICAgICAgICAgdHlwZSA9ICJ0ZXh0IiwgDQogICAgICAgICAgc3R5bGU9ImNvbW1hZGVmYXVsdCIsDQogICAgICAgICAga2VlcC5zdGF0PWMoImFpYyIsImJpYyIsInJzcSIsICJhZGoucnNxIiwibiIpDQogICAgICAgICAgKQ0KDQpgYGANCg0KIyMjIFZhcmnDoXZlbCBgZXN0YWRvYCBhbyBpbnbDqXMgZGFzIGR1bW1pZXMNCg0KYGBge3J9IA0KcmVnLmRpbnQyPC1sbShRYWxnfkFhbGcrUGFsZytQc29qYStlc3RhZG8sIGRhdGE9ZGFkb3MpDQpzdW1tYXJ5KHJlZy5kaW50MikNCnJlZy5kaW50MiRBSUM8LSBBSUMocmVnLmRpbnQyKQ0KcmVnLmRpbnQyJEJJQzwtIEJJQyhyZWcuZGludDIpDQpzdGFyZ2F6ZXIobGlzdChyZWcuZGludCxyZWcuZGludDIpLA0KICAgICAgICAgIHRpdGxlPSJUw610dWxvOiBSZXN1bHRhZG9zIGRhcyBSZWdyZXNzw7VlcyIsDQogICAgICAgICAgYWxpZ249VFJVRSwNCiAgICAgICAgICB0eXBlID0gInRleHQiLCANCiAgICAgICAgICBzdHlsZT0iY29tbWFkZWZhdWx0IiwNCiAgICAgICAgICBrZWVwLnN0YXQ9YygiYWljIiwiYmljIiwicnNxIiwgImFkai5yc3EiLCJuIikNCiAgICAgICAgICApDQpgYGANCg0KIyMgQWx0ZXJhbmRvIGEgaW5jbGluYWNhbyBkYSBBYWxnIHBhcmEgb3MgZXN0YWRvcw0KDQpgYGB7cn0NCnJlZy5kdW08LWxtKFFhbGd+QWFsZytQYWxnK1Bzb2phK2VzdGFkbytJKEFhbGcqRE1TKStJKEFhbGcqRE1UKSwgZGF0YT1kYWRvcykNCnJlZy5kdW0kQUlDPC0gQUlDKHJlZy5kdW0pDQpyZWcuZHVtJEJJQzwtIEJJQyhyZWcuZHVtKQ0KI3N1bW1hcnkocmVnLmR1bSkNCnJlZy5kdW0yPC1sbShRYWxnfkFhbGcrUGFsZytQc29qYStETVMrRE1UK0koQWFsZypETVMpK0koQWFsZypETVQpLCBkYXRhPWRhZG9zKQ0KcmVnLmR1bTIkQUlDPC0gQUlDKHJlZy5kdW0yKQ0KcmVnLmR1bTIkQklDPC0gQklDKHJlZy5kdW0yKQ0Kc3RhcmdhemVyKGxpc3QocmVnLmR1bSxyZWcuZHVtMiksDQogICAgICAgICAgdGl0bGU9IlTDrXR1bG86IFJlc3VsdGFkb3MgZGFzIFJlZ3Jlc3PDtWVzIiwNCiAgICAgICAgICBhbGlnbj1UUlVFLA0KICAgICAgICAgIHR5cGUgPSAidGV4dCIsIA0KICAgICAgICAgIHN0eWxlPSJjb21tYWRlZmF1bHQiLA0KICAgICAgICAgIGtlZXAuc3RhdD1jKCJhaWMiLCJiaWMiLCJyc3EiLCAiYWRqLnJzcSIsIm4iKQ0KICAgICAgICAgICkNCmBgYA0KDQojIyBBbHRlcm5hdGl2YSBkZSB1c2FyIG8gcGFjb3RlIGR1bW1pZXMNCg0KYGBge3IsIGV2YWw9VFJVRX0NCmF0dGFjaChkYWRvcykNCmxpYnJhcnkoZHVtbWllcykNCg0KIyBvIHBhY290ZSBjcmlhIGR1bW1pZXMgdXNhbmRvIG8gbm9tZSBkYSB2YXJpw6F2ZWwganVzdGFwb3N0byBjb20gbyBjb2RpZ28gZGFzIG9ic2VydmFjb2VzOiANCiMgZXN0YWRvZ28sIGVzdGFkb21zLGVzdGFkb210DQojIGFsdGVybmF0aXZhIGRlIHVzYXIgbyBwYWNvdGUgZHVtbWllcw0KbGlicmFyeShkdW1taWVzKQ0KZHVtbWllczwtZHVtbXkoZXN0YWRvLCBkcm9wPUZBTFNFKQ0KY29sbmFtZXMoZHVtbWllcyk8LWMoImVzdGFkb2dvIiwgImVzdGFkb21zIiwiZXN0YWRvbXQiKQ0KZGFkb3M8LWNiaW5kKGRhZG9zLGR1bW1pZXMpDQojIG8gcGFjb3RlIGNyaWEgZHVtbWllcyB1c2FuZG8gbyBub21lIGRhIHZhcmnDoXZlbCBqdXN0YXBvc3RvIGNvbSBvIGNvZGlnbyBkYXMgb2JzZXJ2YWNvZXM6IA0KIyBlc3RhZG9nbywgZXN0YWRvbXMsZXN0YWRvbXQNCnByaW50KGRhZG9zKQ0KYGBgDQoNClVzYW5kbyBhICBUZW5kw6puY2lhIHBhcmEgY2FsY3VsYXIgYSBUR0MgDQo9PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQpBZ29yYSBjYWxjdWxhcmVpIGEgVEdDICgqdGF4YSBnZW9tw6l0cmljYSBkZSBjcmVzY2ltZW50byopIHBhcmEgYSB2YXJpw6F2ZWwgUUFsZy4gVGFtYsOpbSBjaGFtYWRvIGRlIOKAnGdyb3d0aCBtb2RlbOKAnSBlbSBHdWphcmF0aSAoMjAxNSxwLjMzLTM1LCBFY29ub21ldHJpY3MgYnkgZXhhbXBsZSksIHBhcmEgbyBtb2RlbG8gbG9nLWxpbmVhciAob3UgbW9kZWxvIHNlbWlsb2cpIGRvIHRpcG86DQoNClxbDQpcbG4gUWFsZ190PSBcYmV0YV97MX0rIFxiZXRhX3syfXQrXGVwc2lsb25fdA0KXF0NCg0KZW0gcXVlIHQgw6kgYSB2YXJpw6F2ZWwgdGVuZMOqbmNpYSBwYXJhIG9zIGFub3MgZGUgMTk5MCBhIDIwMDAuIE8gcGFyw6JtZXRybyAkXGJldGFfezJ9JCDDqSBvIGNvZWZpY2llbnRlIGRlIGludGVyZXNzZSwgZGEgaW5jbGluYcOnw6NvLCBvIHF1YWwgbWVkZSBhIG11ZGFuw6dhIHJlbGF0aXZhIG5vIHJlZ3Jlc3NhbmRvIHBhcmEgdW1hIGRhZGEgbXVkYW7Dp2EgYWJzb2x1dGEgbm8gcmVncmVzc29yIC0gw6kgYSB0YXhhICppbnN0YW50w6JuZWEqIGRlIGNyZXNjaW1lbnRvLiBBIFRHQyBzZXLDoSBhIHRheGEgKmNvbXBvc3RhKiAocGFyYSB1bSBwZXLDrW9kbyBkZSB0ZW1wbykgZGUgY3Jlc2NpbWVudG8uIEEgVEdDIHNlcsOhIA0KDQpcWw0KVEdDID0gW2Vee1xiZXRhX3syfX0tMSldKjEwMA0KXF0NCg0KYGBge3J9DQojIHNlamFtIGFzIHZhcmnDoXZlaXMgdiBwYXJhIGEgc2VyaWUgcXVlIHNlIHF1ZXIgYSBUR0MgZSB0IHBhcmEgbyBhbm8NCg0KIyBwYXJhIFFhbGcgTVQNCnZtdDwtZGFkb3NbMjM6MzMsMl0NCnQ8LWRhZG9zWzIzOjMzLDFdICAgIyBhbm9zIDE5OTAgYSAyMDAwDQpsb2d2PC1sb2codm10KQ0KZXE9bG0obG9ndn50KQ0KIyBwZWdvIG8gc2VndW5kbyBwYXLDom1ldHJvIC0gbyBwcmltZWlybyDDqSBvIGludGVyY2VwdG8NCmJldGEgPC0gc3VtbWFyeShlcSkkY29lZmZpY2llbnRzWzJdICANCiMgQ2FsY3VsbyBkYSBUR0MNCihUR0M9SSgoZXhwKGJldGEpLTEpKjEwMCkpDQpzdW1tYXJ5KGVxKQ0KYGBgDQoNCk91IHNlamEsIG5lc3RlIGNhc28gdGVtb3MgdW1hIFRHQyBkZSAyNy4zOSUgYW8gYW5vIHBhYSBRQWxnIGRlIE1ULiBEZXZlLXNlIGF0ZW50YXIgcXVlIG8gcGFyw6JtZXRybyBkZSAkdCQgbmEgcmVncmVzc8OjbyAoJFxiZXRhX3syfSQpIGZvaSBlc3RhdGlzdGljYW1lbnRlIHNpZ25pZmljYXRpdm8uDQoNClJlZmF6ZW5kbyBjb20gbG9ncw0KPT09PT09PT09PT09PT09PT09PT09PT0NCg0KYGBge3J9DQphdHRhY2goZGFkb3MpDQojIHNlbSBkdW1taWVzDQptb2QxPC1sbShsb2coUWFsZyl+bG9nKEFhbGcpK2xvZyhQYWxnKStsb2coUHNvamEpLCBkYXRhPWRhZG9zKQ0KbW9kMSRBSUM8LSBBSUMobW9kMSkNCm1vZDEkQklDPC0gQklDKG1vZDEpDQojIGFsdGVyYW5kbyBzb21lbnRlIGludGVyY2VwdG8NCm1vZDI8LWxtKGxvZyhRYWxnKX5sb2coQWFsZykrbG9nKFBhbGcpK2xvZyhQc29qYSkrZXN0YWRvLCBkYXRhPWRhZG9zKQ0KbW9kMiRBSUM8LSBBSUMobW9kMikNCm1vZDIkQklDPC0gQklDKG1vZDIpDQojIGFsdGVyYW5kbyBpbnRlcmNlcHRvIGUgaW5jbGluYWNhbyBkZSBBYWxnDQptb2QzPC1sbShsb2coUWFsZyl+bG9nKEFhbGcpK2xvZyhQYWxnKStsb2coUHNvamEpK2VzdGFkbytJKGxvZyhBYWxnKSpETVMpK0kobG9nKEFhbGcpKkRNVCksIGRhdGE9ZGFkb3MpDQptb2QzJEFJQzwtIEFJQyhtb2QzKQ0KbW9kMyRCSUM8LSBCSUMobW9kMykNCiMgY29uc29saWRhbmRvIGEgdGFiZWxhIGNvbXBhcmF0aXZhDQpzdGFyZ2F6ZXIobGlzdChtb2QxLCBtb2QyLCBtb2QzKSwNCiAgICAgICAgICB0aXRsZT0iVMOtdHVsbzogUmVzdWx0YWRvcyBkYXMgUmVncmVzc8O1ZXMgLSBjb20gbG9ncyIsDQogICAgICAgICAgYWxpZ249VFJVRSwNCiAgICAgICAgICB0eXBlID0gInRleHQiLCANCiAgICAgICAgICBzdHlsZT0iY29tbWFkZWZhdWx0IiwNCiAgICAgICAgICBrZWVwLnN0YXQ9YygiYWljIiwiYmljIiwicnNxIiwgImFkai5yc3EiLCJuIikNCiAgICAgICAgICApDQpgYGANCg0Kw4kgaW1wb3J0YW50ZSBzYWxpZW50YXIgcXVlIG7Do28gc2UgcG9kZSBjb21wYXJhciBvcyBBSUMgZSBCSUMgZW50cmUgb3MgbW9kZWxvcyBjb20gbG9ncyBlIHNlbSBsb2dzLiBEZXN0YSBmb3JtYSwgYSBtZWRpZGEgZGUgY29tcGFyYcOnw6NvIHNlcsOhIG8gJFJeMiQgYWp1c3RhZG8uIE8gbW9kZWxvIGNvbSBsb2dzIHBlcm1pdGUgbGliZXJhciBhIHJlc3RyacOnw6NvIGRlIGxpbmVhcmlkYWRlIHBvciBtZWlvIGRhIHRyYW5zZm9ybWHDp8OjbyBkYXMgdmFyacOhdmVpcyBlIG8gYWp1c3RlIHBvZGUgc2VyIGNvbnNpZGVyYWRvIHNhdGlzZmF0w7NyaW8sIGFnb3JhIGNvbSAkUl4yJCBkZSAwLDkyNiBlICRSXjIkIGFqdXN0YWRvIGRlIDAsOTA2IHBhcmEgbyBtb2RlbG8gY29tIGFsdGVyYcOnw6NvIG5vIGludGVyY2VwdG8gZSBlbSBBYWxnLCBlIG9zIHBhcsOibWV0cm9zIHNpZ25pZmljYXRpdm9zIGEgNSUgZGUgc2lnbmlmaWPDom5jaWEgcGFyYSBBYWxnLCBQYWxnLCBlIG9zIHRlcm1vcyBkZSBNYXRvIEdyb3Nzby4gT3Ugc2VqYSwgcGFyYSBHTyBlIE1TIHRlbS1zZSB1bWEgc8OzIGVxdWHDp8OjbyBlbnF1YW50byBwYXJhIE1UIGEgZXF1YcOnw6NvIGFsdGVyYSBvIGludGVyY2VwdG8gZSBhIGluY2xpbmHDp8OjbyBkZSBBYWxnLg0K