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: exemplo_soja_apostila. Campo Grande-MS,Brasil: RStudio/Rpubs, 2020. Disponível em http://rpubs.com/amrofi/exemplo_soja_apostila.

1 Exercício

Sabendo que a variável dependente Qsoja é a quantidade produzida de soja, a variável FERTILIZANTE é a quantidade utilizada de fertilizantes, a variável TRATOR é o número de horas-máquina utilizadas, e MO é a quantidade de mão-de-obra em número de pessoas.

Pede-se:

  1. Quais os parâmetros significativos a 10% de significância? Explique e mostre seus valores.
  2. Sabendo que o desejável numa função de produção é que o aumento no uso de insumos leve a uma produção maior, o resultado é coerente com a teoria econômica? Justifique sua resposta.
  3. Qual a hipótese nula no teste de significância global do modelo? Qual a probabilidade de erro desse teste para essa regressão?
library(readxl)
# library(foreign)
# dados <- read_excel("soja_apostila.xlsx", 
#                     sheet = "dados")
dados<-structure(list(OBS = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 
29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 
45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 
61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 
77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 
93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 
107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117), QSOJA = c(436.631327347, 
373.648319403, 394.422208122, 343.569529223, 303.766149519, 301.164159253, 
288.948162961, 330.653425923, 312.790481897, 326.337437514, 393.924244131, 
472.095484821, 506.519816219, 351.622349614, 381.683735178, 383.16244294, 
411.039886175, 393.721292241, 434.570723074, 433.61603289, 397.521061235, 
392.667303139, 388.161060061, 370.962499467, 392.989989558, 364.608287145, 
346.432408617, 418.249947335, 406.403616915, 335.565654517, 372.389277147, 
355.138034335, 350.368666514, 333.22912698, 331.404160354, 350.215587437, 
347.930917294, 429.353837601, 312.648633868, 320.1290397, 367.600375264, 
370.58115319, 318.293875369, 360.716491231, 344.127888634, 348.460445231, 
339.909909323, 355.115806958, 333.991242698, 324.352196839, 326.362748629, 
337.522873509, 326.439134587, 315.883680773, 309.389262881, 309.992167966, 
294.858595183, 319.126938705, 321.075126328, 324.617110436, 326.498169984, 
323.024096765, 306.607962724, 316.685380598, 306.63234033, 347.051171678, 
281.018277888, 306.438241825, 310.158071775, 308.554712739, 317.988817729, 
309.3024648, 301.907326808, 293.695986672, 286.246007121, 284.741951642, 
281.541824884, 276.076484065, 225.250102468, 221.579142339, 222.819046328, 
210.465091286, 204.579726173, 210.208100729, 214.619137203, 249.68373735, 
234.056997721, 237.782743552, 247.783594823, 243.326935015, 250.517759798, 
245.477283956, 242.547637962, 235.139515392, 246.077631412, 300.660379261, 
311.547314244, 311.592498254, 311.661546245, 313.521069724, 324.623216411, 
325.219601572, 316.051963666, 315.23510561, 313.039404973, 311.256344161, 
314.759829619, 319.859862035, 315.86486682, 313.067146865, 305.235250016, 
299.911393983, 292.819273066, 288.374750217, 282.574142328, 280.040196223, 
272.093598783), FERTILIZANTE = c(19.0271541214, 17.896131535, 
16.7816326404, 13.4907436954, 9.8792199643, 9.47578570764, 11.3642792008, 
15.1279345194, 15.3328667597, 12.851502126, 11.5137639555, 12.855099231, 
13.0130463524, 13.4551480743, 14.3478259384, 13.4461834272, 12.8505836532, 
11.878680085, 8.97428388969, 11.2853667097, 10.3459526645, 10.1678109845, 
12.599515057, 18.0635955859, 22.5905514861, 27.0789975599, 25.8933999151, 
24.670302157, 22.3482879799, 23.0661021802, 23.46202603, 23.3742807993, 
23.6293106114, 21.5085651347, 20.4244350802, 18.8640383209, 18.2649424041, 
16.1258445984, 15.3872613296, 15.7475620647, 14.8983557849, 18.5713738614, 
19.782502768, 19.9334418708, 20.8217736318, 20.2664704198, 18.7039332243, 
16.9397047639, 15.2224405941, 15.3900606317, 15.4866979181, 14.1888364722, 
17.5057959027, 18.4499760981, 18.0443380567, 18.7653974258, 17.733992169, 
14.4708212634, 19.1906127545, 23.6107568782, 22.4809389477, 19.9623501966, 
24.292193006, 23.7774100871, 20.902854945, 17.6135324226, 18.2422805406, 
18.4963907183, 20.1887054098, 17.2164566133, 18.2228548842, 17.63412, 
17.3651340732, 21.165752859, 20.6546570465, 20.5382250175, 20.2625821575, 
20.0316705895, 19.6747891284, 19.2320746157, 19.1556951795, 18.6659751037, 
18.2573530021, 18.0250472242, 18.2220357618, 18.1808546614, 17.9427350427, 
17.8936494922, 17.5782913467, 17.4452921577, 17.4075434149, 17.287132673, 
17.0010026609, 16.7956796708, 16.6141444443, 16.6135183413, 16.5922588804, 
22.0744924554, 22.0123280182, 21.8207871467, 21.4818658909, 21.3918043526, 
21.1455500396, 21.0219803014, 20.9587175263, 20.8135574015, 22.8749876176, 
22.8850270408, 22.7508743781, 22.6733292656, 22.4866071739, 22.3322073706, 
22.1375395445, 22.1331443789, 22.081593902, 22.1113459316, 22.0611011027
), TRATOR = c(3.1712177231, 2.9130726375, 2.79693877341, 2.89345709284, 
3.09884379577, 3.55341964037, 3.9774977203, 4.86255038122, 5.27067294863, 
5.29179499304, 4.38619579258, 3.61549665871, 3.18096688613, 3.31203644906, 
3.58695648459, 3.36154585679, 2.79360514201, 3.25443289999, 2.69228516691, 
2.90195143963, 2.95598647557, 2.98255788878, 3.23987530037, 3.18769333868, 
3.80472446082, 4.16599962459, 4.25644930111, 3.65485957882, 3.42843054238, 
3.56476124603, 4.10585455524, 4.23376550096, 4.21951975203, 4.45534563505, 
4.22104991658, 3.77280766418, 4.05887608981, 4.35397804157, 3.71858815465, 
3.9194002239, 3.86253116707, 3.4489694314, 3.40698658782, 3.10590838452, 
3.40719932157, 3.89739815766, 3.58705568686, 3.06139242721, 2.56377946849, 
3.27038788423, 3.61356284755, 2.9212310384, 3.72808616447, 4.09999468846, 
4.00985290148, 3.12756623763, 3.66502504826, 3.61770531584, 2.74151610779, 
3.07966394064, 2.24809389477, 2.21803891073, 3.23895906746, 3.26939388698, 
2.71737114285, 3.52270648453, 2.63499607808, 2.84559857204, 3.02830581147, 
2.75463305812, 3.79642810087, 3.673775, 4.3412835183, 4.23315057181, 
5.50790854573, 5.47686000466, 5.40335524199, 6.67722352984, 6.5582630428, 
6.41069153856, 6.3852317265, 6.22199170124, 6.08578433403, 6.00834907473, 
6.07401192061, 6.06028488713, 5.98091168091, 5.96454983075, 5.85943044889, 
5.8150973859, 5.80251447164, 5.76237755766, 5.66700088697, 5.59855989028, 
5.53804814809, 5.53783944709, 5.53075296013, 5.51862311384, 5.50308200454, 
5.45519678667, 5.37046647273, 5.34795108814, 5.28638750989, 5.25549507535, 
5.23967938158, 5.20338935039, 5.19886082219, 5.20114250927, 5.17065326775, 
5.15302937855, 5.11059253952, 5.07550167513, 6.03751078486, 6.03631210335, 
6.02225288236, 6.03036707224, 6.01666393711), MO = c(0.0680761131536, 
0.0680761131536, 0.0680761131536, 0.0680761131536, 0.0715237353179, 
0.0833559863149, 0.0985723372523, 0.111410334113, 0.114487135409, 
0.102686021888, 0.121305727388, 0.123194700963, 0.113382190903, 
0.0988435877764, 0.0807663035114, 0.0622686351567, 0.083800394246, 
0.0765243736067, 0.0574877668834, 0.0653655605136, 0.0725099376921, 
0.0780548956575, 0.0806568955951, 0.0816669323964, 0.0822771664653, 
0.0801052294483, 0.0750435658726, 0.0703103611476, 0.0796030780377, 
0.0830484524405, 0.093584156327, 0.100913962297, 0.108669511694, 
0.111606408158, 0.118828985067, 0.120133794043, 0.118234214897, 
0.105740298613, 0.093457488034, 0.0841934657141, 0.0798233440708, 
0.0747407520408, 0.0708495225001, 0.0672990598108, 0.0611103807825, 
0.055394759321, 0.0660366632049, 0.0689438046948, 0.0669589093824, 
0.0638618759693, 0.0596771157157, 0.0549263770463, 0.073413760912, 
0.0823331322263, 0.0834334103063, 0.079906745817, 0.0716246518416, 
0.0633701381158, 0.0934971222594, 0.104075531949, 0.100833255886, 
0.0930097649901, 0.0813417334974, 0.0695736926403, 0.21049581374, 
0.261260874072, 0.258725366517, 0.236599269382, 0.206871841743, 
0.167746823366, 0.126327870706, 0.114329213918, 0.104788717578, 
0.0945762804116, 0.0848737411962, 0.0770183438155, 0.0741085180759, 
0.071409196083, 0.0683152400292, 0.0649972892104, 0.0629654795252, 
0.0596274204703, 0.0578149511733, 0.0565786204537, 0.0566907779257, 
0.0560576352059, 0.0548250237417, 0.0541779942959, 0.0539450091897, 
0.0542532433056, 0.0548506857575, 0.0551811677564, 0.0549659731863, 
0.0549918545222, 0.0547197615699, 0.0550399709491, 0.0552913982385, 
0.0554912883605, 0.0556552669895, 0.0554884433151, 0.0541104333052, 
0.0533695807757, 0.0522471298894, 0.0514366981903, 0.0507783150735, 
0.049926520817, 0.049902565317, 0.0499439709453, 0.0496705879533, 
0.0495206123279, 0.0491319590269, 0.0488136373605, 0.0483839405954, 
0.0483701426115, 0.0482533012199, 0.0483141284115, 0.0482001633184
)), row.names = c(NA, -117L), class = c("tbl_df", "tbl", "data.frame"
))
attach(dados)
# QSOJA = quantidade produzida de soja; 
# FERTILIZANTE = quantidade utilizada de fertilizantes, 
# TRATOR = número de horas-máquina utilizadas, e 
# MO = quantidade de mão-de-obra em número de pessoas 
dados

1.1 Estimação

1.1.1 PASSO 1: estimar o modelo

# 
regressao1<-lm(QSOJA~FERTILIZANTE+TRATOR+MO)
summary(regressao1)
## 
## Call:
## lm(formula = QSOJA ~ FERTILIZANTE + TRATOR + MO)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -66.714 -33.171   1.768  24.894 149.637 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   494.9657    25.5723  19.356  < 2e-16 ***
## FERTILIZANTE   -0.5535     1.0589  -0.523   0.6022    
## TRATOR        -33.6899     3.7410  -9.006 6.09e-15 ***
## MO           -209.1407   107.8926  -1.938   0.0551 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 41.51 on 113 degrees of freedom
## Multiple R-squared:  0.4651, Adjusted R-squared:  0.4509 
## F-statistic: 32.75 on 3 and 113 DF,  p-value: 2.608e-15
library(stargazer)
## 
## Please cite as:
##  Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
##  R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
stargazer(list(regressao1),type="text",style="all" )
## 
## =======================================================
##                             Dependent variable:        
##                     -----------------------------------
##                                    QSOJA               
## -------------------------------------------------------
## FERTILIZANTE                      -0.554               
##                                   (1.059)              
##                                 t = -0.523             
##                                  p = 0.603             
## TRATOR                          -33.690***             
##                                   (3.741)              
##                                 t = -9.006             
##                                  p = 0.000             
## MO                               -209.141*             
##                                  (107.893)             
##                                 t = -1.938             
##                                  p = 0.056             
## Constant                        494.966***             
##                                  (25.572)              
##                                 t = 19.356             
##                                  p = 0.000             
## -------------------------------------------------------
## Observations                        117                
## R2                                 0.465               
## Adjusted R2                        0.451               
## Residual Std. Error          41.506 (df = 113)         
## F Statistic         32.753*** (df = 3; 113) (p = 0.000)
## =======================================================
## Note:                       *p<0.1; **p<0.05; ***p<0.01

1.1.2 PASSO 2: obtencao dos valores ajustados

1.1.3 PASSO 3: colocar valores ajustados ao quadrado e ao cubo e a quarta potencias

Utilizaremos o recurso I(fitted(regressao1)) para gerar automaticamente e já estimar a regressão de teste

# 
reg_RESET_3<-lm(QSOJA~FERTILIZANTE+TRATOR+MO+I(fitted(regressao1)^2)+
                  I(fitted(regressao1)^3)+I(fitted(regressao1)^4),data=dados)

reg_RESET<-lm(QSOJA~FERTILIZANTE+TRATOR+MO+
                I(fitted(regressao1)^2)+I(fitted(regressao1)^3),data=dados)
results<-stargazer(list(regressao1,reg_RESET_3),type="text",style="all" )
## 
## ==============================================================================================
##                                                  Dependent variable:                          
##                        -----------------------------------------------------------------------
##                                                         QSOJA                                 
##                                        (1)                                 (2)                
## ----------------------------------------------------------------------------------------------
## FERTILIZANTE                         -0.554                             304.130**             
##                                      (1.059)                            (135.047)             
##                                    t = -0.523                           t = 2.252             
##                                     p = 0.603                           p = 0.027             
## TRATOR                             -33.690***                         18,591.290**            
##                                      (3.741)                           (8,231.767)            
##                                    t = -9.006                           t = 2.258             
##                                     p = 0.000                           p = 0.026             
## MO                                  -209.141*                         115,237.700**           
##                                     (107.893)                         (51,069.360)            
##                                    t = -1.938                           t = 2.256             
##                                     p = 0.056                           p = 0.027             
## I(fitted(regressao1)2)                                                   2.665**              
##                                                                          (1.165)              
##                                                                         t = 2.287             
##                                                                         p = 0.025             
## I(fitted(regressao1)3)                                                  -0.006**              
##                                                                          (0.002)              
##                                                                        t = -2.300             
##                                                                         p = 0.024             
## I(fitted(regressao1)4)                                                  0.00000**             
##                                                                         (0.00000)             
##                                                                         t = 2.303             
##                                                                         p = 0.024             
## Constant                           494.966***                        -230,604.700**           
##                                     (25.572)                          (101,861.300)           
##                                    t = 19.356                          t = -2.264             
##                                     p = 0.000                           p = 0.026             
## ----------------------------------------------------------------------------------------------
## Observations                           117                                 117                
## R2                                    0.465                               0.532               
## Adjusted R2                           0.451                               0.507               
## Residual Std. Error             41.506 (df = 113)                   39.331 (df = 110)         
## F Statistic            32.753*** (df = 3; 113) (p = 0.000) 20.879*** (df = 6; 110) (p = 0.000)
## ==============================================================================================
## Note:                                                              *p<0.1; **p<0.05; ***p<0.01

1.1.4 PASSOS 4 A 6: calcular estatisticas de teste

# RESET: H0: o modelo esta bem especificado, ou H0: COEFICIENTES incluindo "fitted" sao nulos
library(car)
## Carregando pacotes exigidos: carData
# RESETH0<-c("I(fitted(regressao1)^2)","I(fitted(regressao1)^3)",
#         "I(fitted(regressao1)^4)")
RESETH0<-c("I(fitted(regressao1)^2)","I(fitted(regressao1)^3)")
Tabela_RESET<-linearHypothesis(reg_RESET,RESETH0)
# outra alternativa é usar a linha abaixo com o matchCoefs
#Tabela_RESET<-linearHypothesis(reg_RESET, matchCoefs(reg_RESET,"fitted"))
Tabela_RESET

1.1.5 RESET pelo comando resettest da library(lmtest)

library(lmtest)
## Carregando pacotes exigidos: zoo
## 
## Anexando pacote: 'zoo'
## Os seguintes objetos são mascarados por 'package:base':
## 
##     as.Date, as.Date.numeric
TesteRESET<-resettest(regressao1, power = 2:3) # default é power = 2:3
TesteRESET
## 
##  RESET test
## 
## data:  regressao1
## RESET = 5.0746, df1 = 2, df2 = 111, p-value = 0.007783
#alterando as potencias
TesteRESET.power<-resettest(regressao1, power = 2:4)
TesteRESET.power
## 
##  RESET test
## 
## data:  regressao1
## RESET = 5.2816, df1 = 3, df2 = 110, p-value = 0.001932

1.1.6 fazendo os criterios de informacao de Akaike e Schwarz

regressao1$AIC <- AIC(regressao1)
regressao1$BIC <- BIC(regressao1)


#mostrando os valores de AIC e SIC
library(stargazer)
star.1 <- stargazer(regressao1,
                    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:    
##                     ---------------------------
##                                QSOJA           
## -----------------------------------------------
## FERTILIZANTE                  -0.554           
##                               (1.059)          
##                             t = -0.523         
##                              p = 0.603         
## TRATOR                      -33.690***         
##                               (3.741)          
##                             t = -9.006         
##                              p = 0.000         
## MO                           -209.141*         
##                              (107.893)         
##                             t = -1.938         
##                              p = 0.056         
## Constant                    494.966***         
##                              (25.572)          
##                             t = 19.356         
##                              p = 0.000         
## -----------------------------------------------
## Observations                    117            
## R2                             0.465           
## Adjusted R2                    0.451           
## Akaike Inf. Crit.            1,209.807         
## Bayesian Inf. Crit.          1,223.617         
## ===============================================
## Note:               *p<0.1; **p<0.05; ***p<0.01
LS0tDQp0aXRsZTogIkVjb25vbWV0cmlhOiBleGVtcGxvX3NvamFfYXBvc3RpbGEiDQphdXRob3I6ICJBZHJpYW5vIE1hcmNvcyBSb2RyaWd1ZXMgRmlndWVpcmVkbywgKmUtbWFpbDogYWRyaWFuby5maWd1ZWlyZWRvQHVmbXMuYnIqIg0KYWJzdHJhY3Q6IA0KICBUaGlzIGlzIGFuIHVuZGVyZ3JhZCBzdHVkZW50IGxldmVsIGV4ZXJjaXNlIGZvciBjbGFzcyB1c2UuIFdlIGFuYWx5c2Ugc295IGRhdGEsIDExNyBvYnNlcnZhdGlvbnMuIA0KZGF0ZTogImByIGZvcm1hdChTeXMuRGF0ZSgpLCAnJWQgJUIgJVknKWAiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgY29kZV9kb3dubG9hZDogeWVzDQogICAgdGhlbWU6IGRlZmF1bHQNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIHRvYzogeWVzDQogICAgdG9jX2Zsb2F0OiB5ZXMNCiAgICBkZl9wcmludDogcGFnZWQNCiAgICBmaWdfY2FwdGlvbjogeWVzDQogIHBkZl9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KICB3b3JkX2RvY3VtZW50Og0KICAgIHRvYzogeWVzDQotLS0NCg0KIyBMaWNlbsOnYSB7I0xpY2Vuw6dhIC51bm51bWJlcmVkfQ0KDQpUaGlzIHdvcmsgaXMgbGljZW5zZWQgdW5kZXIgdGhlIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiBUbyB2aWV3IGEgY29weSBvZiB0aGlzIGxpY2Vuc2UsIHZpc2l0IDxodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvPiBvciBzZW5kIGEgbGV0dGVyIHRvIENyZWF0aXZlIENvbW1vbnMsIFBPIEJveCAxODY2LCBNb3VudGFpbiBWaWV3LCBDQSA5NDA0MiwgVVNBLg0KDQohW0xpY2Vuc2U6IENDIEJZLVNBIDQuMF0oaHR0cHM6Ly9taXJyb3JzLmNyZWF0aXZlY29tbW9ucy5vcmcvcHJlc3NraXQvYnV0dG9ucy84OHgzMS9wbmcvYnktc2EucG5nKXt3aWR0aD0iMjUlIn0NCg0KIyBDaXRhw6fDo28geyNDaXRhw6fDo28gLnVubnVtYmVyZWR9DQoNClN1Z2VzdMOjbyBkZSBjaXRhw6fDo286IEZJR1VFSVJFRE8sIEFkcmlhbm8gTWFyY29zIFJvZHJpZ3Vlcy4gRWNvbm9tZXRyaWE6IGV4ZW1wbG9cX3NvamFcX2Fwb3N0aWxhLiBDYW1wbyBHcmFuZGUtTVMsQnJhc2lsOiBSU3R1ZGlvL1JwdWJzLCAyMDIwLiBEaXNwb27DrXZlbCBlbSA8aHR0cDovL3JwdWJzLmNvbS9hbXJvZmkvZXhlbXBsb19zb2phX2Fwb3N0aWxhPi4NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCg0KIyBFeGVyY8OtY2lvDQoNClNhYmVuZG8gcXVlIGEgdmFyacOhdmVsIGRlcGVuZGVudGUgUXNvamEgw6kgYSBxdWFudGlkYWRlIHByb2R1emlkYSBkZSBzb2phLCBhIHZhcmnDoXZlbCBGRVJUSUxJWkFOVEUgw6kgYSBxdWFudGlkYWRlIHV0aWxpemFkYSBkZSBmZXJ0aWxpemFudGVzLCBhIHZhcmnDoXZlbCBUUkFUT1Igw6kgbyBuw7ptZXJvIGRlIGhvcmFzLW3DoXF1aW5hIHV0aWxpemFkYXMsIGUgTU8gw6kgYSBxdWFudGlkYWRlIGRlIG3Do28tZGUtb2JyYSBlbSBuw7ptZXJvIGRlIHBlc3NvYXMuDQoNClBlZGUtc2U6DQoNCmEuICBRdWFpcyBvcyBwYXLDom1ldHJvcyBzaWduaWZpY2F0aXZvcyBhIDEwJSBkZSBzaWduaWZpY8OibmNpYT8gRXhwbGlxdWUgZSBtb3N0cmUgc2V1cyB2YWxvcmVzLlwNCmIuICBTYWJlbmRvIHF1ZSBvIGRlc2Vqw6F2ZWwgbnVtYSBmdW7Dp8OjbyBkZSBwcm9kdcOnw6NvIMOpIHF1ZSBvIGF1bWVudG8gbm8gdXNvIGRlIGluc3Vtb3MgbGV2ZSBhIHVtYSBwcm9kdcOnw6NvIG1haW9yLCBvIHJlc3VsdGFkbyDDqSBjb2VyZW50ZSBjb20gYSB0ZW9yaWEgZWNvbsO0bWljYT8gSnVzdGlmaXF1ZSBzdWEgcmVzcG9zdGEuXA0KYy4gIFF1YWwgYSBoaXDDs3Rlc2UgbnVsYSBubyB0ZXN0ZSBkZSBzaWduaWZpY8OibmNpYSBnbG9iYWwgZG8gbW9kZWxvPyBRdWFsIGEgcHJvYmFiaWxpZGFkZSBkZSBlcnJvIGRlc3NlIHRlc3RlIHBhcmEgZXNzYSByZWdyZXNzw6NvPw0KDQpgYGB7cn0NCmxpYnJhcnkocmVhZHhsKQ0KIyBsaWJyYXJ5KGZvcmVpZ24pDQojIGRhZG9zIDwtIHJlYWRfZXhjZWwoInNvamFfYXBvc3RpbGEueGxzeCIsIA0KIyAgICAgICAgICAgICAgICAgICAgIHNoZWV0ID0gImRhZG9zIikNCmRhZG9zPC1zdHJ1Y3R1cmUobGlzdChPQlMgPSBjKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIA0KMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIA0KMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIA0KNDUsIDQ2LCA0NywgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDU4LCA1OSwgNjAsIA0KNjEsIDYyLCA2MywgNjQsIDY1LCA2NiwgNjcsIDY4LCA2OSwgNzAsIDcxLCA3MiwgNzMsIDc0LCA3NSwgNzYsIA0KNzcsIDc4LCA3OSwgODAsIDgxLCA4MiwgODMsIDg0LCA4NSwgODYsIDg3LCA4OCwgODksIDkwLCA5MSwgOTIsIA0KOTMsIDk0LCA5NSwgOTYsIDk3LCA5OCwgOTksIDEwMCwgMTAxLCAxMDIsIDEwMywgMTA0LCAxMDUsIDEwNiwgDQoxMDcsIDEwOCwgMTA5LCAxMTAsIDExMSwgMTEyLCAxMTMsIDExNCwgMTE1LCAxMTYsIDExNyksIFFTT0pBID0gYyg0MzYuNjMxMzI3MzQ3LCANCjM3My42NDgzMTk0MDMsIDM5NC40MjIyMDgxMjIsIDM0My41Njk1MjkyMjMsIDMwMy43NjYxNDk1MTksIDMwMS4xNjQxNTkyNTMsIA0KMjg4Ljk0ODE2Mjk2MSwgMzMwLjY1MzQyNTkyMywgMzEyLjc5MDQ4MTg5NywgMzI2LjMzNzQzNzUxNCwgMzkzLjkyNDI0NDEzMSwgDQo0NzIuMDk1NDg0ODIxLCA1MDYuNTE5ODE2MjE5LCAzNTEuNjIyMzQ5NjE0LCAzODEuNjgzNzM1MTc4LCAzODMuMTYyNDQyOTQsIA0KNDExLjAzOTg4NjE3NSwgMzkzLjcyMTI5MjI0MSwgNDM0LjU3MDcyMzA3NCwgNDMzLjYxNjAzMjg5LCAzOTcuNTIxMDYxMjM1LCANCjM5Mi42NjczMDMxMzksIDM4OC4xNjEwNjAwNjEsIDM3MC45NjI0OTk0NjcsIDM5Mi45ODk5ODk1NTgsIDM2NC42MDgyODcxNDUsIA0KMzQ2LjQzMjQwODYxNywgNDE4LjI0OTk0NzMzNSwgNDA2LjQwMzYxNjkxNSwgMzM1LjU2NTY1NDUxNywgMzcyLjM4OTI3NzE0NywgDQozNTUuMTM4MDM0MzM1LCAzNTAuMzY4NjY2NTE0LCAzMzMuMjI5MTI2OTgsIDMzMS40MDQxNjAzNTQsIDM1MC4yMTU1ODc0MzcsIA0KMzQ3LjkzMDkxNzI5NCwgNDI5LjM1MzgzNzYwMSwgMzEyLjY0ODYzMzg2OCwgMzIwLjEyOTAzOTcsIDM2Ny42MDAzNzUyNjQsIA0KMzcwLjU4MTE1MzE5LCAzMTguMjkzODc1MzY5LCAzNjAuNzE2NDkxMjMxLCAzNDQuMTI3ODg4NjM0LCAzNDguNDYwNDQ1MjMxLCANCjMzOS45MDk5MDkzMjMsIDM1NS4xMTU4MDY5NTgsIDMzMy45OTEyNDI2OTgsIDMyNC4zNTIxOTY4MzksIDMyNi4zNjI3NDg2MjksIA0KMzM3LjUyMjg3MzUwOSwgMzI2LjQzOTEzNDU4NywgMzE1Ljg4MzY4MDc3MywgMzA5LjM4OTI2Mjg4MSwgMzA5Ljk5MjE2Nzk2NiwgDQoyOTQuODU4NTk1MTgzLCAzMTkuMTI2OTM4NzA1LCAzMjEuMDc1MTI2MzI4LCAzMjQuNjE3MTEwNDM2LCAzMjYuNDk4MTY5OTg0LCANCjMyMy4wMjQwOTY3NjUsIDMwNi42MDc5NjI3MjQsIDMxNi42ODUzODA1OTgsIDMwNi42MzIzNDAzMywgMzQ3LjA1MTE3MTY3OCwgDQoyODEuMDE4Mjc3ODg4LCAzMDYuNDM4MjQxODI1LCAzMTAuMTU4MDcxNzc1LCAzMDguNTU0NzEyNzM5LCAzMTcuOTg4ODE3NzI5LCANCjMwOS4zMDI0NjQ4LCAzMDEuOTA3MzI2ODA4LCAyOTMuNjk1OTg2NjcyLCAyODYuMjQ2MDA3MTIxLCAyODQuNzQxOTUxNjQyLCANCjI4MS41NDE4MjQ4ODQsIDI3Ni4wNzY0ODQwNjUsIDIyNS4yNTAxMDI0NjgsIDIyMS41NzkxNDIzMzksIDIyMi44MTkwNDYzMjgsIA0KMjEwLjQ2NTA5MTI4NiwgMjA0LjU3OTcyNjE3MywgMjEwLjIwODEwMDcyOSwgMjE0LjYxOTEzNzIwMywgMjQ5LjY4MzczNzM1LCANCjIzNC4wNTY5OTc3MjEsIDIzNy43ODI3NDM1NTIsIDI0Ny43ODM1OTQ4MjMsIDI0My4zMjY5MzUwMTUsIDI1MC41MTc3NTk3OTgsIA0KMjQ1LjQ3NzI4Mzk1NiwgMjQyLjU0NzYzNzk2MiwgMjM1LjEzOTUxNTM5MiwgMjQ2LjA3NzYzMTQxMiwgMzAwLjY2MDM3OTI2MSwgDQozMTEuNTQ3MzE0MjQ0LCAzMTEuNTkyNDk4MjU0LCAzMTEuNjYxNTQ2MjQ1LCAzMTMuNTIxMDY5NzI0LCAzMjQuNjIzMjE2NDExLCANCjMyNS4yMTk2MDE1NzIsIDMxNi4wNTE5NjM2NjYsIDMxNS4yMzUxMDU2MSwgMzEzLjAzOTQwNDk3MywgMzExLjI1NjM0NDE2MSwgDQozMTQuNzU5ODI5NjE5LCAzMTkuODU5ODYyMDM1LCAzMTUuODY0ODY2ODIsIDMxMy4wNjcxNDY4NjUsIDMwNS4yMzUyNTAwMTYsIA0KMjk5LjkxMTM5Mzk4MywgMjkyLjgxOTI3MzA2NiwgMjg4LjM3NDc1MDIxNywgMjgyLjU3NDE0MjMyOCwgMjgwLjA0MDE5NjIyMywgDQoyNzIuMDkzNTk4NzgzKSwgRkVSVElMSVpBTlRFID0gYygxOS4wMjcxNTQxMjE0LCAxNy44OTYxMzE1MzUsIA0KMTYuNzgxNjMyNjQwNCwgMTMuNDkwNzQzNjk1NCwgOS44NzkyMTk5NjQzLCA5LjQ3NTc4NTcwNzY0LCAxMS4zNjQyNzkyMDA4LCANCjE1LjEyNzkzNDUxOTQsIDE1LjMzMjg2Njc1OTcsIDEyLjg1MTUwMjEyNiwgMTEuNTEzNzYzOTU1NSwgMTIuODU1MDk5MjMxLCANCjEzLjAxMzA0NjM1MjQsIDEzLjQ1NTE0ODA3NDMsIDE0LjM0NzgyNTkzODQsIDEzLjQ0NjE4MzQyNzIsIDEyLjg1MDU4MzY1MzIsIA0KMTEuODc4NjgwMDg1LCA4Ljk3NDI4Mzg4OTY5LCAxMS4yODUzNjY3MDk3LCAxMC4zNDU5NTI2NjQ1LCAxMC4xNjc4MTA5ODQ1LCANCjEyLjU5OTUxNTA1NywgMTguMDYzNTk1NTg1OSwgMjIuNTkwNTUxNDg2MSwgMjcuMDc4OTk3NTU5OSwgMjUuODkzMzk5OTE1MSwgDQoyNC42NzAzMDIxNTcsIDIyLjM0ODI4Nzk3OTksIDIzLjA2NjEwMjE4MDIsIDIzLjQ2MjAyNjAzLCAyMy4zNzQyODA3OTkzLCANCjIzLjYyOTMxMDYxMTQsIDIxLjUwODU2NTEzNDcsIDIwLjQyNDQzNTA4MDIsIDE4Ljg2NDAzODMyMDksIDE4LjI2NDk0MjQwNDEsIA0KMTYuMTI1ODQ0NTk4NCwgMTUuMzg3MjYxMzI5NiwgMTUuNzQ3NTYyMDY0NywgMTQuODk4MzU1Nzg0OSwgMTguNTcxMzczODYxNCwgDQoxOS43ODI1MDI3NjgsIDE5LjkzMzQ0MTg3MDgsIDIwLjgyMTc3MzYzMTgsIDIwLjI2NjQ3MDQxOTgsIDE4LjcwMzkzMzIyNDMsIA0KMTYuOTM5NzA0NzYzOSwgMTUuMjIyNDQwNTk0MSwgMTUuMzkwMDYwNjMxNywgMTUuNDg2Njk3OTE4MSwgMTQuMTg4ODM2NDcyMiwgDQoxNy41MDU3OTU5MDI3LCAxOC40NDk5NzYwOTgxLCAxOC4wNDQzMzgwNTY3LCAxOC43NjUzOTc0MjU4LCAxNy43MzM5OTIxNjksIA0KMTQuNDcwODIxMjYzNCwgMTkuMTkwNjEyNzU0NSwgMjMuNjEwNzU2ODc4MiwgMjIuNDgwOTM4OTQ3NywgMTkuOTYyMzUwMTk2NiwgDQoyNC4yOTIxOTMwMDYsIDIzLjc3NzQxMDA4NzEsIDIwLjkwMjg1NDk0NSwgMTcuNjEzNTMyNDIyNiwgMTguMjQyMjgwNTQwNiwgDQoxOC40OTYzOTA3MTgzLCAyMC4xODg3MDU0MDk4LCAxNy4yMTY0NTY2MTMzLCAxOC4yMjI4NTQ4ODQyLCAxNy42MzQxMiwgDQoxNy4zNjUxMzQwNzMyLCAyMS4xNjU3NTI4NTksIDIwLjY1NDY1NzA0NjUsIDIwLjUzODIyNTAxNzUsIDIwLjI2MjU4MjE1NzUsIA0KMjAuMDMxNjcwNTg5NSwgMTkuNjc0Nzg5MTI4NCwgMTkuMjMyMDc0NjE1NywgMTkuMTU1Njk1MTc5NSwgMTguNjY1OTc1MTAzNywgDQoxOC4yNTczNTMwMDIxLCAxOC4wMjUwNDcyMjQyLCAxOC4yMjIwMzU3NjE4LCAxOC4xODA4NTQ2NjE0LCAxNy45NDI3MzUwNDI3LCANCjE3Ljg5MzY0OTQ5MjIsIDE3LjU3ODI5MTM0NjcsIDE3LjQ0NTI5MjE1NzcsIDE3LjQwNzU0MzQxNDksIDE3LjI4NzEzMjY3MywgDQoxNy4wMDEwMDI2NjA5LCAxNi43OTU2Nzk2NzA4LCAxNi42MTQxNDQ0NDQzLCAxNi42MTM1MTgzNDEzLCAxNi41OTIyNTg4ODA0LCANCjIyLjA3NDQ5MjQ1NTQsIDIyLjAxMjMyODAxODIsIDIxLjgyMDc4NzE0NjcsIDIxLjQ4MTg2NTg5MDksIDIxLjM5MTgwNDM1MjYsIA0KMjEuMTQ1NTUwMDM5NiwgMjEuMDIxOTgwMzAxNCwgMjAuOTU4NzE3NTI2MywgMjAuODEzNTU3NDAxNSwgMjIuODc0OTg3NjE3NiwgDQoyMi44ODUwMjcwNDA4LCAyMi43NTA4NzQzNzgxLCAyMi42NzMzMjkyNjU2LCAyMi40ODY2MDcxNzM5LCAyMi4zMzIyMDczNzA2LCANCjIyLjEzNzUzOTU0NDUsIDIyLjEzMzE0NDM3ODksIDIyLjA4MTU5MzkwMiwgMjIuMTExMzQ1OTMxNiwgMjIuMDYxMTAxMTAyNw0KKSwgVFJBVE9SID0gYygzLjE3MTIxNzcyMzEsIDIuOTEzMDcyNjM3NSwgMi43OTY5Mzg3NzM0MSwgMi44OTM0NTcwOTI4NCwgDQozLjA5ODg0Mzc5NTc3LCAzLjU1MzQxOTY0MDM3LCAzLjk3NzQ5NzcyMDMsIDQuODYyNTUwMzgxMjIsIDUuMjcwNjcyOTQ4NjMsIA0KNS4yOTE3OTQ5OTMwNCwgNC4zODYxOTU3OTI1OCwgMy42MTU0OTY2NTg3MSwgMy4xODA5NjY4ODYxMywgMy4zMTIwMzY0NDkwNiwgDQozLjU4Njk1NjQ4NDU5LCAzLjM2MTU0NTg1Njc5LCAyLjc5MzYwNTE0MjAxLCAzLjI1NDQzMjg5OTk5LCAyLjY5MjI4NTE2NjkxLCANCjIuOTAxOTUxNDM5NjMsIDIuOTU1OTg2NDc1NTcsIDIuOTgyNTU3ODg4NzgsIDMuMjM5ODc1MzAwMzcsIDMuMTg3NjkzMzM4NjgsIA0KMy44MDQ3MjQ0NjA4MiwgNC4xNjU5OTk2MjQ1OSwgNC4yNTY0NDkzMDExMSwgMy42NTQ4NTk1Nzg4MiwgMy40Mjg0MzA1NDIzOCwgDQozLjU2NDc2MTI0NjAzLCA0LjEwNTg1NDU1NTI0LCA0LjIzMzc2NTUwMDk2LCA0LjIxOTUxOTc1MjAzLCA0LjQ1NTM0NTYzNTA1LCANCjQuMjIxMDQ5OTE2NTgsIDMuNzcyODA3NjY0MTgsIDQuMDU4ODc2MDg5ODEsIDQuMzUzOTc4MDQxNTcsIDMuNzE4NTg4MTU0NjUsIA0KMy45MTk0MDAyMjM5LCAzLjg2MjUzMTE2NzA3LCAzLjQ0ODk2OTQzMTQsIDMuNDA2OTg2NTg3ODIsIDMuMTA1OTA4Mzg0NTIsIA0KMy40MDcxOTkzMjE1NywgMy44OTczOTgxNTc2NiwgMy41ODcwNTU2ODY4NiwgMy4wNjEzOTI0MjcyMSwgMi41NjM3Nzk0Njg0OSwgDQozLjI3MDM4Nzg4NDIzLCAzLjYxMzU2Mjg0NzU1LCAyLjkyMTIzMTAzODQsIDMuNzI4MDg2MTY0NDcsIDQuMDk5OTk0Njg4NDYsIA0KNC4wMDk4NTI5MDE0OCwgMy4xMjc1NjYyMzc2MywgMy42NjUwMjUwNDgyNiwgMy42MTc3MDUzMTU4NCwgMi43NDE1MTYxMDc3OSwgDQozLjA3OTY2Mzk0MDY0LCAyLjI0ODA5Mzg5NDc3LCAyLjIxODAzODkxMDczLCAzLjIzODk1OTA2NzQ2LCAzLjI2OTM5Mzg4Njk4LCANCjIuNzE3MzcxMTQyODUsIDMuNTIyNzA2NDg0NTMsIDIuNjM0OTk2MDc4MDgsIDIuODQ1NTk4NTcyMDQsIDMuMDI4MzA1ODExNDcsIA0KMi43NTQ2MzMwNTgxMiwgMy43OTY0MjgxMDA4NywgMy42NzM3NzUsIDQuMzQxMjgzNTE4MywgNC4yMzMxNTA1NzE4MSwgDQo1LjUwNzkwODU0NTczLCA1LjQ3Njg2MDAwNDY2LCA1LjQwMzM1NTI0MTk5LCA2LjY3NzIyMzUyOTg0LCA2LjU1ODI2MzA0MjgsIA0KNi40MTA2OTE1Mzg1NiwgNi4zODUyMzE3MjY1LCA2LjIyMTk5MTcwMTI0LCA2LjA4NTc4NDMzNDAzLCA2LjAwODM0OTA3NDczLCANCjYuMDc0MDExOTIwNjEsIDYuMDYwMjg0ODg3MTMsIDUuOTgwOTExNjgwOTEsIDUuOTY0NTQ5ODMwNzUsIDUuODU5NDMwNDQ4ODksIA0KNS44MTUwOTczODU5LCA1LjgwMjUxNDQ3MTY0LCA1Ljc2MjM3NzU1NzY2LCA1LjY2NzAwMDg4Njk3LCA1LjU5ODU1OTg5MDI4LCANCjUuNTM4MDQ4MTQ4MDksIDUuNTM3ODM5NDQ3MDksIDUuNTMwNzUyOTYwMTMsIDUuNTE4NjIzMTEzODQsIDUuNTAzMDgyMDA0NTQsIA0KNS40NTUxOTY3ODY2NywgNS4zNzA0NjY0NzI3MywgNS4zNDc5NTEwODgxNCwgNS4yODYzODc1MDk4OSwgNS4yNTU0OTUwNzUzNSwgDQo1LjIzOTY3OTM4MTU4LCA1LjIwMzM4OTM1MDM5LCA1LjE5ODg2MDgyMjE5LCA1LjIwMTE0MjUwOTI3LCA1LjE3MDY1MzI2Nzc1LCANCjUuMTUzMDI5Mzc4NTUsIDUuMTEwNTkyNTM5NTIsIDUuMDc1NTAxNjc1MTMsIDYuMDM3NTEwNzg0ODYsIDYuMDM2MzEyMTAzMzUsIA0KNi4wMjIyNTI4ODIzNiwgNi4wMzAzNjcwNzIyNCwgNi4wMTY2NjM5MzcxMSksIE1PID0gYygwLjA2ODA3NjExMzE1MzYsIA0KMC4wNjgwNzYxMTMxNTM2LCAwLjA2ODA3NjExMzE1MzYsIDAuMDY4MDc2MTEzMTUzNiwgMC4wNzE1MjM3MzUzMTc5LCANCjAuMDgzMzU1OTg2MzE0OSwgMC4wOTg1NzIzMzcyNTIzLCAwLjExMTQxMDMzNDExMywgMC4xMTQ0ODcxMzU0MDksIA0KMC4xMDI2ODYwMjE4ODgsIDAuMTIxMzA1NzI3Mzg4LCAwLjEyMzE5NDcwMDk2MywgMC4xMTMzODIxOTA5MDMsIA0KMC4wOTg4NDM1ODc3NzY0LCAwLjA4MDc2NjMwMzUxMTQsIDAuMDYyMjY4NjM1MTU2NywgMC4wODM4MDAzOTQyNDYsIA0KMC4wNzY1MjQzNzM2MDY3LCAwLjA1NzQ4Nzc2Njg4MzQsIDAuMDY1MzY1NTYwNTEzNiwgMC4wNzI1MDk5Mzc2OTIxLCANCjAuMDc4MDU0ODk1NjU3NSwgMC4wODA2NTY4OTU1OTUxLCAwLjA4MTY2NjkzMjM5NjQsIDAuMDgyMjc3MTY2NDY1MywgDQowLjA4MDEwNTIyOTQ0ODMsIDAuMDc1MDQzNTY1ODcyNiwgMC4wNzAzMTAzNjExNDc2LCAwLjA3OTYwMzA3ODAzNzcsIA0KMC4wODMwNDg0NTI0NDA1LCAwLjA5MzU4NDE1NjMyNywgMC4xMDA5MTM5NjIyOTcsIDAuMTA4NjY5NTExNjk0LCANCjAuMTExNjA2NDA4MTU4LCAwLjExODgyODk4NTA2NywgMC4xMjAxMzM3OTQwNDMsIDAuMTE4MjM0MjE0ODk3LCANCjAuMTA1NzQwMjk4NjEzLCAwLjA5MzQ1NzQ4ODAzNCwgMC4wODQxOTM0NjU3MTQxLCAwLjA3OTgyMzM0NDA3MDgsIA0KMC4wNzQ3NDA3NTIwNDA4LCAwLjA3MDg0OTUyMjUwMDEsIDAuMDY3Mjk5MDU5ODEwOCwgMC4wNjExMTAzODA3ODI1LCANCjAuMDU1Mzk0NzU5MzIxLCAwLjA2NjAzNjY2MzIwNDksIDAuMDY4OTQzODA0Njk0OCwgMC4wNjY5NTg5MDkzODI0LCANCjAuMDYzODYxODc1OTY5MywgMC4wNTk2NzcxMTU3MTU3LCAwLjA1NDkyNjM3NzA0NjMsIDAuMDczNDEzNzYwOTEyLCANCjAuMDgyMzMzMTMyMjI2MywgMC4wODM0MzM0MTAzMDYzLCAwLjA3OTkwNjc0NTgxNywgMC4wNzE2MjQ2NTE4NDE2LCANCjAuMDYzMzcwMTM4MTE1OCwgMC4wOTM0OTcxMjIyNTk0LCAwLjEwNDA3NTUzMTk0OSwgMC4xMDA4MzMyNTU4ODYsIA0KMC4wOTMwMDk3NjQ5OTAxLCAwLjA4MTM0MTczMzQ5NzQsIDAuMDY5NTczNjkyNjQwMywgMC4yMTA0OTU4MTM3NCwgDQowLjI2MTI2MDg3NDA3MiwgMC4yNTg3MjUzNjY1MTcsIDAuMjM2NTk5MjY5MzgyLCAwLjIwNjg3MTg0MTc0MywgDQowLjE2Nzc0NjgyMzM2NiwgMC4xMjYzMjc4NzA3MDYsIDAuMTE0MzI5MjEzOTE4LCAwLjEwNDc4ODcxNzU3OCwgDQowLjA5NDU3NjI4MDQxMTYsIDAuMDg0ODczNzQxMTk2MiwgMC4wNzcwMTgzNDM4MTU1LCAwLjA3NDEwODUxODA3NTksIA0KMC4wNzE0MDkxOTYwODMsIDAuMDY4MzE1MjQwMDI5MiwgMC4wNjQ5OTcyODkyMTA0LCAwLjA2Mjk2NTQ3OTUyNTIsIA0KMC4wNTk2Mjc0MjA0NzAzLCAwLjA1NzgxNDk1MTE3MzMsIDAuMDU2NTc4NjIwNDUzNywgMC4wNTY2OTA3Nzc5MjU3LCANCjAuMDU2MDU3NjM1MjA1OSwgMC4wNTQ4MjUwMjM3NDE3LCAwLjA1NDE3Nzk5NDI5NTksIDAuMDUzOTQ1MDA5MTg5NywgDQowLjA1NDI1MzI0MzMwNTYsIDAuMDU0ODUwNjg1NzU3NSwgMC4wNTUxODExNjc3NTY0LCAwLjA1NDk2NTk3MzE4NjMsIA0KMC4wNTQ5OTE4NTQ1MjIyLCAwLjA1NDcxOTc2MTU2OTksIDAuMDU1MDM5OTcwOTQ5MSwgMC4wNTUyOTEzOTgyMzg1LCANCjAuMDU1NDkxMjg4MzYwNSwgMC4wNTU2NTUyNjY5ODk1LCAwLjA1NTQ4ODQ0MzMxNTEsIDAuMDU0MTEwNDMzMzA1MiwgDQowLjA1MzM2OTU4MDc3NTcsIDAuMDUyMjQ3MTI5ODg5NCwgMC4wNTE0MzY2OTgxOTAzLCAwLjA1MDc3ODMxNTA3MzUsIA0KMC4wNDk5MjY1MjA4MTcsIDAuMDQ5OTAyNTY1MzE3LCAwLjA0OTk0Mzk3MDk0NTMsIDAuMDQ5NjcwNTg3OTUzMywgDQowLjA0OTUyMDYxMjMyNzksIDAuMDQ5MTMxOTU5MDI2OSwgMC4wNDg4MTM2MzczNjA1LCAwLjA0ODM4Mzk0MDU5NTQsIA0KMC4wNDgzNzAxNDI2MTE1LCAwLjA0ODI1MzMwMTIxOTksIDAuMDQ4MzE0MTI4NDExNSwgMC4wNDgyMDAxNjMzMTg0DQopKSwgcm93Lm5hbWVzID0gYyhOQSwgLTExN0wpLCBjbGFzcyA9IGMoInRibF9kZiIsICJ0YmwiLCAiZGF0YS5mcmFtZSINCikpDQphdHRhY2goZGFkb3MpDQojIFFTT0pBID0gcXVhbnRpZGFkZSBwcm9kdXppZGEgZGUgc29qYTsgDQojIEZFUlRJTElaQU5URSA9IHF1YW50aWRhZGUgdXRpbGl6YWRhIGRlIGZlcnRpbGl6YW50ZXMsIA0KIyBUUkFUT1IgPSBuw7ptZXJvIGRlIGhvcmFzLW3DoXF1aW5hIHV0aWxpemFkYXMsIGUgDQojIE1PID0gcXVhbnRpZGFkZSBkZSBtw6NvLWRlLW9icmEgZW0gbsO6bWVybyBkZSBwZXNzb2FzIA0KZGFkb3MNCg0KYGBgDQoNCiMjIEVzdGltYcOnw6NvDQoNCiMjIyBQQVNTTyAxOiBlc3RpbWFyIG8gbW9kZWxvDQoNCmBgYHtyfQ0KDQojIA0KcmVncmVzc2FvMTwtbG0oUVNPSkF+RkVSVElMSVpBTlRFK1RSQVRPUitNTykNCnN1bW1hcnkocmVncmVzc2FvMSkNCmxpYnJhcnkoc3RhcmdhemVyKQ0Kc3RhcmdhemVyKGxpc3QocmVncmVzc2FvMSksdHlwZT0idGV4dCIsc3R5bGU9ImFsbCIgKQ0KYGBgDQoNCiMjIyBQQVNTTyAyOiBvYnRlbmNhbyBkb3MgdmFsb3JlcyBhanVzdGFkb3MNCg0KIyMjIFBBU1NPIDM6IGNvbG9jYXIgdmFsb3JlcyBhanVzdGFkb3MgYW8gcXVhZHJhZG8gZSBhbyBjdWJvIGUgYSBxdWFydGEgcG90ZW5jaWFzDQoNClV0aWxpemFyZW1vcyBvIHJlY3Vyc28gSShmaXR0ZWQocmVncmVzc2FvMSkpIHBhcmEgZ2VyYXIgYXV0b21hdGljYW1lbnRlIGUgasOhIGVzdGltYXIgYSByZWdyZXNzw6NvIGRlIHRlc3RlDQoNCmBgYHtyfQ0KIyANCnJlZ19SRVNFVF8zPC1sbShRU09KQX5GRVJUSUxJWkFOVEUrVFJBVE9SK01PK0koZml0dGVkKHJlZ3Jlc3NhbzEpXjIpKw0KICAgICAgICAgICAgICAgICAgSShmaXR0ZWQocmVncmVzc2FvMSleMykrSShmaXR0ZWQocmVncmVzc2FvMSleNCksZGF0YT1kYWRvcykNCg0KcmVnX1JFU0VUPC1sbShRU09KQX5GRVJUSUxJWkFOVEUrVFJBVE9SK01PKw0KICAgICAgICAgICAgICAgIEkoZml0dGVkKHJlZ3Jlc3NhbzEpXjIpK0koZml0dGVkKHJlZ3Jlc3NhbzEpXjMpLGRhdGE9ZGFkb3MpDQpyZXN1bHRzPC1zdGFyZ2F6ZXIobGlzdChyZWdyZXNzYW8xLHJlZ19SRVNFVF8zKSx0eXBlPSJ0ZXh0IixzdHlsZT0iYWxsIiApDQpgYGANCg0KIyMjIFBBU1NPUyA0IEEgNjogY2FsY3VsYXIgZXN0YXRpc3RpY2FzIGRlIHRlc3RlDQoNCmBgYHtyfQ0KIyBSRVNFVDogSDA6IG8gbW9kZWxvIGVzdGEgYmVtIGVzcGVjaWZpY2Fkbywgb3UgSDA6IENPRUZJQ0lFTlRFUyBpbmNsdWluZG8gImZpdHRlZCIgc2FvIG51bG9zDQpsaWJyYXJ5KGNhcikNCiMgUkVTRVRIMDwtYygiSShmaXR0ZWQocmVncmVzc2FvMSleMikiLCJJKGZpdHRlZChyZWdyZXNzYW8xKV4zKSIsDQojICAgICAgICAgIkkoZml0dGVkKHJlZ3Jlc3NhbzEpXjQpIikNClJFU0VUSDA8LWMoIkkoZml0dGVkKHJlZ3Jlc3NhbzEpXjIpIiwiSShmaXR0ZWQocmVncmVzc2FvMSleMykiKQ0KVGFiZWxhX1JFU0VUPC1saW5lYXJIeXBvdGhlc2lzKHJlZ19SRVNFVCxSRVNFVEgwKQ0KIyBvdXRyYSBhbHRlcm5hdGl2YSDDqSB1c2FyIGEgbGluaGEgYWJhaXhvIGNvbSBvIG1hdGNoQ29lZnMNCiNUYWJlbGFfUkVTRVQ8LWxpbmVhckh5cG90aGVzaXMocmVnX1JFU0VULCBtYXRjaENvZWZzKHJlZ19SRVNFVCwiZml0dGVkIikpDQpUYWJlbGFfUkVTRVQNCmBgYA0KDQojIyMgUkVTRVQgcGVsbyBjb21hbmRvIHJlc2V0dGVzdCBkYSBsaWJyYXJ5KGxtdGVzdCkNCg0KYGBge3J9DQpsaWJyYXJ5KGxtdGVzdCkNClRlc3RlUkVTRVQ8LXJlc2V0dGVzdChyZWdyZXNzYW8xLCBwb3dlciA9IDI6MykgIyBkZWZhdWx0IMOpIHBvd2VyID0gMjozDQpUZXN0ZVJFU0VUDQoNCiNhbHRlcmFuZG8gYXMgcG90ZW5jaWFzDQpUZXN0ZVJFU0VULnBvd2VyPC1yZXNldHRlc3QocmVncmVzc2FvMSwgcG93ZXIgPSAyOjQpDQpUZXN0ZVJFU0VULnBvd2VyDQpgYGANCg0KIyMjIGZhemVuZG8gb3MgY3JpdGVyaW9zIGRlIGluZm9ybWFjYW8gZGUgQWthaWtlIGUgU2Nod2Fyeg0KDQpgYGB7cn0NCnJlZ3Jlc3NhbzEkQUlDIDwtIEFJQyhyZWdyZXNzYW8xKQ0KcmVncmVzc2FvMSRCSUMgPC0gQklDKHJlZ3Jlc3NhbzEpDQoNCg0KI21vc3RyYW5kbyBvcyB2YWxvcmVzIGRlIEFJQyBlIFNJQw0KbGlicmFyeShzdGFyZ2F6ZXIpDQpzdGFyLjEgPC0gc3RhcmdhemVyKHJlZ3Jlc3NhbzEsDQogICAgICAgICAgICAgICAgICAgIHRpdGxlPSJUw610dWxvOiBSZXN1bHRhZG8gZGEgUmVncmVzc8OjbyIsDQogICAgICAgICAgICAgICAgICAgIGFsaWduPVRSVUUsDQogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAidGV4dCIsIHN0eWxlID0gImFsbCIsDQogICAgICAgICAgICAgICAgICAgIGtlZXAuc3RhdD1jKCJhaWMiLCJiaWMiLCJyc3EiLCAiYWRqLnJzcSIsIm4iKQ0KKQ0KYGBgDQo=