ANÁLISIS FACTORIAL
Se realiza el análisis en aproximación a los datos de un estudio que estoy realizando sobre actitudes de jóvenes en su entorno social. Para la presente tarea se estudia una de las muestras que consta de 47 participantes cuyas actitudes fueron medidas a través de una encuesta de 20 ítems, cada ítem con puntuación entre 1 y 5. La base de datos la he llamado VARIABLES_PSICOLÓGICAS.
El estudio del fenómeno ha considerado que variables subyacentes estarían influyendo en las actitudes de los jóvenes.
Los siguientes son los datos:
VARIABLES_PSICOLOGICAS
A continuación se presenta el summary y la correlación de los datos
Previo al análisis factorial asignamos a la variable psico1. Luego utilizamos el factanal, considerando el VARIMAX.
Toma con 5 factores para este estudio (referentes teóricos).
psico1 <-VARIABLES_PSICOLOGICAS
psico1
summary(psico1)
ítem 1 ítem 2 ítem 3
Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:2.000 1st Qu.:2.000 1st Qu.:2.000
Median :2.000 Median :3.000 Median :3.000
Mean :2.766 Mean :3.191 Mean :3.191
3rd Qu.:3.500 3rd Qu.:4.500 3rd Qu.:4.000
Max. :5.000 Max. :5.000 Max. :5.000
ítem 4 ítem 5 ítem 6
Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:1.000 1st Qu.:3.000 1st Qu.:2.500
Median :2.000 Median :4.000 Median :3.000
Mean :2.362 Mean :3.532 Mean :3.277
3rd Qu.:3.000 3rd Qu.:5.000 3rd Qu.:4.000
Max. :5.000 Max. :5.000 Max. :5.000
ítem 7 ítem 8 ítem 9
Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:1.000 1st Qu.:3.000 1st Qu.:1.000
Median :2.000 Median :4.000 Median :3.000
Mean :2.362 Mean :3.489 Mean :3.043
3rd Qu.:4.000 3rd Qu.:5.000 3rd Qu.:4.000
Max. :5.000 Max. :5.000 Max. :5.000
ítem 10 ítem 11 ítem 12
Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000
Median :3.000 Median :1.000 Median :2.000
Mean :2.766 Mean :2.191 Mean :2.213
3rd Qu.:4.000 3rd Qu.:3.500 3rd Qu.:3.000
Max. :5.000 Max. :5.000 Max. :5.000
ítem 13 ítem 14 ítem 15
Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:2.000 1st Qu.:2.500 1st Qu.:3.000
Median :3.000 Median :3.000 Median :4.000
Mean :3.149 Mean :3.277 Mean :3.957
3rd Qu.:5.000 3rd Qu.:4.000 3rd Qu.:5.000
Max. :5.000 Max. :5.000 Max. :5.000
ítem 16 ítem 17 ítem 18 ítem 19
Min. :1.000 Min. :1.000 Min. :1.00 Min. :1.000
1st Qu.:3.000 1st Qu.:1.000 1st Qu.:3.00 1st Qu.:3.000
Median :4.000 Median :3.000 Median :3.00 Median :4.000
Mean :3.681 Mean :2.681 Mean :3.34 Mean :3.383
3rd Qu.:5.000 3rd Qu.:4.000 3rd Qu.:4.50 3rd Qu.:4.000
Max. :5.000 Max. :5.000 Max. :5.00 Max. :5.000
ítem 20
Min. :1.000
1st Qu.:4.000
Median :5.000
Mean :4.085
3rd Qu.:5.000
Max. :5.000
Correlación
correl=cor(psico1,use="pairwise.complete.obs")
correl
ítem 1 ítem 2 ítem 3 ítem 4
ítem 1 1.00000000 0.28250081 -0.16161961 -0.06468315
ítem 2 0.28250081 1.00000000 -0.31123753 -0.25676566
ítem 3 -0.16161961 -0.31123753 1.00000000 0.39174702
ítem 4 -0.06468315 -0.25676566 0.39174702 1.00000000
ítem 5 0.03172092 -0.31675083 0.42860832 0.25146523
ítem 6 -0.06445497 -0.27352415 0.28037798 0.23421483
ítem 7 -0.19235293 -0.51865873 0.46774764 0.45028794
ítem 8 -0.18962880 -0.37650746 0.21868089 0.48126201
ítem 9 -0.06148621 -0.39204591 0.40053863 0.32036000
ítem 10 0.01524391 0.03932827 -0.09110778 -0.27394498
ítem 11 -0.10533504 -0.28347341 0.29814071 0.40513355
ítem 12 0.00441277 -0.18476470 0.28666772 0.31116545
ítem 13 -0.09292011 -0.16263144 0.43284819 0.13640498
ítem 14 -0.18146979 -0.34339174 0.36756547 0.09341359
ítem 15 -0.35001967 -0.25975427 0.42358650 0.14912834
ítem 16 -0.01979372 -0.37702670 0.43772944 0.32798381
ítem 17 -0.31435466 -0.61534639 0.30510578 0.33102365
ítem 18 -0.14714887 -0.14125715 0.28726173 0.11857813
ítem 19 -0.30418247 -0.22865441 0.30213902 0.15111306
ítem 20 -0.15461334 -0.16949212 0.23615117 0.19624416
ítem 5 ítem 6 ítem 7 ítem 8
ítem 1 0.03172092 -0.06445497 -0.19235293 -0.18962880
ítem 2 -0.31675083 -0.27352415 -0.51865873 -0.37650746
ítem 3 0.42860832 0.28037798 0.46774764 0.21868089
ítem 4 0.25146523 0.23421483 0.45028794 0.48126201
ítem 5 1.00000000 0.69743310 0.36265056 0.24010465
ítem 6 0.69743310 1.00000000 0.39557982 0.38206345
ítem 7 0.36265056 0.39557982 1.00000000 0.43051390
ítem 8 0.24010465 0.38206345 0.43051390 1.00000000
ítem 9 0.64206749 0.62341674 0.46491457 0.41899885
ítem 10 0.02592410 -0.12705582 -0.27060180 -0.11256565
ítem 11 0.19349141 0.37084159 0.46128692 0.37102819
ítem 12 0.37123557 0.28638113 0.45873327 0.32266896
ítem 13 0.29553701 0.33196794 0.24899758 0.12752636
ítem 14 0.34365928 0.19901045 0.28952020 0.04690083
ítem 15 0.30551686 0.42651579 0.06002515 0.16957512
ítem 16 0.52341418 0.50971062 0.32520469 0.25125622
ítem 17 0.29127938 0.33096248 0.36749254 0.23044281
ítem 18 0.29447469 0.16335241 0.19423467 0.20960360
ítem 19 0.26659160 0.07301102 0.23264130 0.16237130
ítem 20 0.22746275 0.25334500 0.16260467 0.30551058
ítem 9 ítem 10 ítem 11 ítem 12
ítem 1 -0.06148621 0.01524391 -0.10533504 0.004412770
ítem 2 -0.39204591 0.03932827 -0.28347341 -0.184764704
ítem 3 0.40053863 -0.09110778 0.29814071 0.286667715
ítem 4 0.32036000 -0.27394498 0.40513355 0.311165449
ítem 5 0.64206749 0.02592410 0.19349141 0.371235567
ítem 6 0.62341674 -0.12705582 0.37084159 0.286381131
ítem 7 0.46491457 -0.27060180 0.46128692 0.458733274
ítem 8 0.41899885 -0.11256565 0.37102819 0.322668963
ítem 9 1.00000000 -0.11383543 0.49918994 0.402724349
ítem 10 -0.11383543 1.00000000 -0.05704717 -0.049362048
ítem 11 0.49918994 -0.05704717 1.00000000 0.564199405
ítem 12 0.40272435 -0.04936205 0.56419940 1.000000000
ítem 13 0.25205865 -0.02144855 -0.01348313 -0.005387318
ítem 14 0.10433360 -0.23331247 -0.04106551 0.131817535
ítem 15 0.34519120 -0.26059217 0.23102137 0.176331718
ítem 16 0.43005659 -0.12326054 0.46104199 0.288058686
ítem 17 0.42357250 -0.05146108 0.40206181 0.319127979
ítem 18 0.39223836 0.10411768 0.22409087 0.266749881
ítem 19 0.17693203 0.19388864 0.17951963 0.335888488
ítem 20 0.27031833 -0.25204860 0.09552296 0.052677620
ítem 13 ítem 14 ítem 15 ítem 16
ítem 1 -0.092920110 -0.18146979 -0.35001967 -0.01979372
ítem 2 -0.162631439 -0.34339174 -0.25975427 -0.37702670
ítem 3 0.432848189 0.36756547 0.42358650 0.43772944
ítem 4 0.136404983 0.09341359 0.14912834 0.32798381
ítem 5 0.295537006 0.34365928 0.30551686 0.52341418
ítem 6 0.331967940 0.19901045 0.42651579 0.50971062
ítem 7 0.248997583 0.28952020 0.06002515 0.32520469
ítem 8 0.127526358 0.04690083 0.16957512 0.25125622
ítem 9 0.252058651 0.10433360 0.34519120 0.43005659
ítem 10 -0.021448549 -0.23331247 -0.26059217 -0.12326054
ítem 11 -0.013483126 -0.04106551 0.23102137 0.46104199
ítem 12 -0.005387318 0.13181754 0.17633172 0.28805869
ítem 13 1.000000000 0.51968371 0.36116751 0.18065379
ítem 14 0.519683710 1.00000000 0.41103607 0.24931498
ítem 15 0.361167514 0.41103607 1.00000000 0.27084702
ítem 16 0.180653789 0.24931498 0.27084702 1.00000000
ítem 17 0.206065561 0.28554573 0.38584812 0.39148290
ítem 18 0.295537135 0.04643520 0.27521186 0.10612840
ítem 19 0.376797467 0.21841433 0.13529986 0.04021932
ítem 20 0.385363636 0.31701995 0.33829571 0.19606214
ítem 17 ítem 18 ítem 19 ítem 20
ítem 1 -0.31435466 -0.1471489 -0.30418247 -0.15461334
ítem 2 -0.61534639 -0.1412571 -0.22865441 -0.16949212
ítem 3 0.30510578 0.2872617 0.30213902 0.23615117
ítem 4 0.33102365 0.1185781 0.15111306 0.19624416
ítem 5 0.29127938 0.2944747 0.26659160 0.22746275
ítem 6 0.33096248 0.1633524 0.07301102 0.25334500
ítem 7 0.36749254 0.1942347 0.23264130 0.16260467
ítem 8 0.23044281 0.2096036 0.16237130 0.30551058
ítem 9 0.42357250 0.3922384 0.17693203 0.27031833
ítem 10 -0.05146108 0.1041177 0.19388864 -0.25204860
ítem 11 0.40206181 0.2240909 0.17951963 0.09552296
ítem 12 0.31912798 0.2667499 0.33588849 0.05267762
ítem 13 0.20606556 0.2955371 0.37679747 0.38536364
ítem 14 0.28554573 0.0464352 0.21841433 0.31701995
ítem 15 0.38584812 0.2752119 0.13529986 0.33829571
ítem 16 0.39148290 0.1061284 0.04021932 0.19606214
ítem 17 1.00000000 0.1268030 0.27787420 0.18217260
ítem 18 0.12680298 1.0000000 0.64145451 0.20025752
ítem 19 0.27787420 0.6414545 1.00000000 0.16437230
ítem 20 0.18217260 0.2002575 0.16437230 1.00000000
La prueba de esfericidad de Bartlett plantea a la hipótesis nula de que la matriz de correlaciones es una matriz identidad, en tal caso caso no existirían correlaciones significativas entre las variables y el modelo factorial no sería pertinente.
##(Se cargan, psych y ejecutamos cortest.bartlett a los datos)
library(psych)
cortest.bartlett(psico1)
R was not square, finding R from data
$chisq
[1] 399.0146
$p.value
[1] 6.137337e-17
$df
[1] 190
Por consiguiente procedemos al análisis
##Análisis factorial (confactanal)
psico1.fa <-factanal(psico1, factors=5)
psico1.fa
Call:
factanal(x = psico1, factors = 5)
Uniquenesses:
ítem 1 ítem 2 ítem 3 ítem 4 ítem 5 ítem 6 ítem 7 ítem 8
0.731 0.605 0.570 0.666 0.005 0.379 0.276 0.676
ítem 9 ítem 10 ítem 11 ítem 12 ítem 13 ítem 14 ítem 15 ítem 16
0.361 0.744 0.301 0.571 0.590 0.374 0.005 0.572
ítem 17 ítem 18 ítem 19 ítem 20
0.611 0.500 0.005 0.804
Loadings:
Factor1 Factor2 Factor3 Factor4 Factor5
ítem 1 -0.162 0.170 -0.295 -0.200 -0.295
ítem 2 -0.470 -0.141 -0.390
ítem 3 0.359 0.260 0.433 0.129 0.173
ítem 4 0.542 0.129 0.150
ítem 5 0.164 0.923 0.270 0.198
ítem 6 0.344 0.664 0.159 0.189
ítem 7 0.735 0.145 0.352 -0.197
ítem 8 0.540 0.134
ítem 9 0.522 0.576 0.101 0.149
ítem 10 -0.204 -0.258 0.329 -0.191
ítem 11 0.765 0.117 -0.170 0.119 0.239
ítem 12 0.534 0.254 0.274
ítem 13 0.106 0.585 0.206 0.102
ítem 14 0.152 0.773
ítem 15 0.261 0.400 0.872
ítem 16 0.422 0.466 0.154
ítem 17 0.467 0.137 0.295 0.125 0.222
ítem 18 0.184 0.138 0.634 0.191
ítem 19 0.172 0.311 0.931
ítem 20 0.142 0.122 0.359 0.174
Factor1 Factor2 Factor3 Factor4 Factor5
SS loadings 3.319 2.251 2.222 1.642 1.221
Proportion Var 0.166 0.113 0.111 0.082 0.061
Cumulative Var 0.166 0.278 0.390 0.472 0.533
Test of the hypothesis that 5 factors are sufficient.
The chi square statistic is 87.23 on 100 degrees of freedom.
The p-value is 0.815
#DESCRIPCIÓN
Se muestra en el resultado del análisis factorial los 20 ítems. Se muestran los resultaados para cada uno de los 5 factores.
Para el Factor1 los ítems con los valores más altos (mayores a 0.4) son: 4, 7, 8, 9, 11, 12, 16 y 17.
Para el Factor2 los ítems con los valores más altos son: 5, 6, 9 y 16.
Los ítems con los valores más altos en el Factor3: 3, 13, 14 y 15.
En el Factor4: 18 y 19.
En el Factor5: el 15.
La estabilidad nos permite evidenciar que la cantidad de estos ítems con valores más altos coincide con el total de ítems de la encuesta: 20.
Revisamos la varianza acumulada con relación a los factores.
Se observa que con un solo factor (Factor1) la varianza acumulada es muy baja (0.166). Lo mismo con sólo dos factores (hasta el Factor2 la varianza acumulada es 0.278).
Pero con los 5 facores la varianza acumulada llega 0.533.
En contraste se observa el siguiente análisis que considera sólo un factor:
psico1.fa <-factanal(psico1, factors=1)
psico1.fa
Call:
factanal(x = psico1, factors = 1)
Uniquenesses:
ítem 1 ítem 2 ítem 3 ítem 4 ítem 5 ítem 6 ítem 7 ítem 8
0.951 0.676 0.627 0.748 0.527 0.531 0.576 0.729
ítem 9 ítem 10 ítem 11 ítem 12 ítem 13 ítem 14 ítem 15 ítem 16
0.430 0.970 0.676 0.726 0.830 0.850 0.756 0.620
ítem 17 ítem 18 ítem 19 ítem 20
0.651 0.844 0.868 0.859
Loadings:
Factor1
ítem 1 -0.221
ítem 2 -0.569
ítem 3 0.610
ítem 4 0.502
ítem 5 0.688
ítem 6 0.685
ítem 7 0.651
ítem 8 0.520
ítem 9 0.755
ítem 10 -0.174
ítem 11 0.570
ítem 12 0.524
ítem 13 0.412
ítem 14 0.388
ítem 15 0.494
ítem 16 0.616
ítem 17 0.590
ítem 18 0.395
ítem 19 0.364
ítem 20 0.375
Factor1
SS loadings 5.555
Proportion Var 0.278
Test of the hypothesis that 1 factor is sufficient.
The chi square statistic is 216.92 on 170 degrees of freedom.
The p-value is 0.00871
Con un factor el p valor es inferior a 0.05.
Prueba de la hipótesis de que con un factor essuficiente.
Consideraremos el análisis con la librería psych, calculando el gráfico de autovalor para el criterio de contraste de caida.
fa.parallel(psico1)
Parallel analysis suggests that the number of factors = 1 and the number of components = 1

El análisis paralelo sugiere que el número de factores = 1 y el número de componentes = 2
psico2 <- fa(psico1, fm="minres", nfactors=1, rotate="varimax")
psico2
Análisis factorial usando método = minres
Llamar: fa (r = psico1, nfactors = 1, rotate = “varimax”, fm = “minres”)
Cargas estandarizadas (matriz de patrón) basadas en la matriz de correlación
MR1
SS loadings 5.58
Proportion Var 0.28
Complejidad media del ítem = 1
Prueba de la hipótesis de que 1 factor es suficiente.
Los grados de libertad para el modelo nulo son 190 y la función objetivo fue 10,36 con Chi cuadrado de 399,01
Los grados de libertad del modelo son 170 y la función objetivo fue 5,74
La raíz cuadrada media de los residuos (RMSR) es 0,12
La raíz cuadrada media corregida gl de los residuos es 0.12
El número armónico de observaciones es 47 con el chi cuadrado empírico 240,91 con problema <0,00028
El número total de observaciones fue 47 con probabilidad Chi cuadrado = 217,34 con prob <0,0083
Índice de Tucker Lewis de fiabilidad de factorización = 0,738
Índice RMSEA = 0.074 y los intervalos de confianza del 90% son 0.042 0.107
BIC = -437,18
Ajuste basado en valores fuera de la diagonal = 0,85
Medidas de adecuación de la puntuación de los factores
MR1
Correlación de las puntuaciones (de regresión) con factores 0,95
Múltiple R cuadrado de puntuaciones con factores 0,90
Correlación mínima de posibles puntuaciones factoriales 0,79
> psico2 <- fa (psico1, fm = “minres”, nfactors = 1, rotate = “varimax”)
> psico2
Análisis factorial usando método = minres
Llamar: fa (r = psico1, nfactors = 1, rotate = “varimax”, fm = “minres”)
Cargas estandarizadas (matriz de patrón) basadas en la matriz de correlación
MR1
Cargas SS 5.58
Proporción Var 0.28
Complejidad media del ítem = 1
Prueba de la hipótesis de que 1 factor es suficiente.
Los grados de libertad para el modelo nulo son 190 y la función objetivo fue 10,36 con Chi cuadrado de 399,01
Los grados de libertad del modelo son 170 y la función objetivo fue 5,74
La raíz cuadrada media de los residuos (RMSR) es 0,12
La raíz cuadrada media corregida gl de los residuos es 0.12
El número armónico de observaciones es 47 con el chi cuadrado empírico 240,91 con problema <0,00028
El número total de observaciones fue 47 con probabilidad Chi cuadrado = 217,34 con prob <0,0083
Índice de Tucker Lewis de fiabilidad de factorización = 0,738
Índice RMSEA = 0.074 y los intervalos de confianza del 90% son 0.042 0.107
BIC = -437,18
Ajuste basado en valores fuera de la diagonal = 0,85
Medidas de adecuación de la puntuación de los factores
##Correlación de las puntuaciones (de regresión) con factores 0,95 ## Múltiple R cuadrado de puntuaciones con factores 0,90 ## Correlación mínima de posibles puntuaciones factoriales 0,79 ## > imprimir (psico2) ## Análisis factorial usando método = minres ## Llamar: fa (r = psico1, nfactors = 1, rotate = “varimax”, fm = “minres”) ## Cargas estandarizadas (matriz de patrón) basadas en la matriz de correlación
MR1
Cargas SS 5.58
Proporción Var 0.28
Complejidad media del ítem = 1
Prueba de la hipótesis de que 1 factor es suficiente.
Los grados de libertad para el modelo nulo son 190 y la función objetivo fue 10,36 con Chi cuadrado de 399,01
Los grados de libertad del modelo son 170 y la función objetivo fue 5,74
La raíz cuadrada media de los residuos (RMSR) es 0,12
La raíz cuadrada media corregida gl de los residuos es 0.12
El número armónico de observaciones es 47 con el chi cuadrado empírico 240,91 con problema <0,00028
El número total de observaciones fue 47 con probabilidad Chi cuadrado = 217,34 con prob <0,0083
Índice de Tucker Lewis de fiabilidad de factorización = 0,738
Índice RMSEA = 0.074 y los intervalos de confianza del 90% son 0.042 0.107
BIC = -437,18
Ajuste basado en valores fuera de la diagonal = 0,85
Medidas de adecuación de la puntuación de los factores
MR1
Correlación de las puntuaciones (de regresión) con factores 0,95
Múltiple R cuadrado de puntuaciones con factores 0,90
Correlación mínima de posibles puntuaciones factoriales 0,79
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQKICB3b3JkX2RvY3VtZW50OiBkZWZhdWx0CiAgcGRmX2RvY3VtZW50OiBkZWZhdWx0CiAgaHRtbF9kb2N1bWVudDoKICAgIGRmX3ByaW50OiBwYWdlZAotLS0KCiMgQU7DgUxJU0lTIEZBQ1RPUklBTAoKIyMgU2UgcmVhbGl6YSBlbCBhbsOhbGlzaXMgZW4gYXByb3hpbWFjacOzbiBhIGxvcyBkYXRvcyBkZSB1biBlc3R1ZGlvIHF1ZSBlc3RveSByZWFsaXphbmRvIHNvYnJlIGFjdGl0dWRlcyBkZSBqw7N2ZW5lcyBlbiBzdSBlbnRvcm5vIHNvY2lhbC4gUGFyYSBsYSBwcmVzZW50ZSB0YXJlYSBzZSBlc3R1ZGlhIHVuYSBkZSBsYXMgbXVlc3RyYXMgcXVlIGNvbnN0YSBkZSA0NyBwYXJ0aWNpcGFudGVzIGN1eWFzIGFjdGl0dWRlcyBmdWVyb24gbWVkaWRhcyBhIHRyYXbDqXMgZGUgdW5hIGVuY3Vlc3RhIGRlIDIwIMOtdGVtcywgY2FkYSDDrXRlbSBjb24gcHVudHVhY2nDs24gZW50cmUgMSB5IDUuIExhIGJhc2UgZGUgZGF0b3MgbGEgaGUgbGxhbWFkbyBWQVJJQUJMRVNfUFNJQ09Mw5NHSUNBUy4KIyMgRWwgZXN0dWRpbyBkZWwgZmVuw7NtZW5vIGhhIGNvbnNpZGVyYWRvIHF1ZSB2YXJpYWJsZXMgc3VieWFjZW50ZXMgZXN0YXLDrWFuIGluZmx1eWVuZG8gZW4gbGFzIGFjdGl0dWRlcyBkZSBsb3MgasOzdmVuZXMuIAoKIyMgTG9zIHNpZ3VpZW50ZXMgc29uIGxvcyBkYXRvczoKCgpgYGB7cn0KVkFSSUFCTEVTX1BTSUNPTE9HSUNBUwpgYGAKCgojIyBBIGNvbnRpbnVhY2nDs24gc2UgcHJlc2VudGEgZWwgc3VtbWFyeSB5IGxhIGNvcnJlbGFjacOzbiBkZSBsb3MgZGF0b3MKIyMgUHJldmlvIGFsIGFuw6FsaXNpcyBmYWN0b3JpYWwgYXNpZ25hbW9zIGEgbGEgdmFyaWFibGUgcHNpY28xLiBMdWVnbyB1dGlsaXphbW9zIGVsIGZhY3RhbmFsLCBjb25zaWRlcmFuZG8gZWwgVkFSSU1BWC4gCiMjIFRvbWEgY29uIDUgZmFjdG9yZXMgcGFyYSBlc3RlIGVzdHVkaW8gKHJlZmVyZW50ZXMgdGXDs3JpY29zKS4KCgpgYGB7cn0KcHNpY28xIDwtVkFSSUFCTEVTX1BTSUNPTE9HSUNBUwpwc2ljbzEKYGBgCgoKYGBge3J9CnN1bW1hcnkocHNpY28xKQpgYGAKCiMjIENvcnJlbGFjacOzbgoKYGBge3J9CmNvcnJlbD1jb3IocHNpY28xLHVzZT0icGFpcndpc2UuY29tcGxldGUub2JzIikgCmNvcnJlbApgYGAKCiMjIExhIHBydWViYSBkZSBlc2ZlcmljaWRhZCBkZSBCYXJ0bGV0dCBwbGFudGVhIGEgbGEgaGlww7N0ZXNpcyBudWxhIGRlIHF1ZSBsYSBtYXRyaXogZGUgY29ycmVsYWNpb25lcyBlcyB1bmEgbWF0cml6IGlkZW50aWRhZCwgZW4gdGFsIGNhc28gY2FzbyBubyBleGlzdGlyw61hbiBjb3JyZWxhY2lvbmVzIHNpZ25pZmljYXRpdmFzIGVudHJlIGxhcyB2YXJpYWJsZXMgeSBlbCBtb2RlbG8gZmFjdG9yaWFsIG5vIHNlcsOtYSBwZXJ0aW5lbnRlLgojIyhTZSBjYXJnYW4sIHBzeWNoIHkgZWplY3V0YW1vcyBjb3J0ZXN0LmJhcnRsZXR0IGEgbG9zIGRhdG9zKQoKYGBge3J9CmxpYnJhcnkocHN5Y2gpCmNvcnRlc3QuYmFydGxldHQocHNpY28xKQpgYGAKIyMgUG9yIGNvbnNpZ3VpZW50ZSBwcm9jZWRlbW9zIGFsIGFuw6FsaXNpcwoKIyNBbsOhbGlzaXMgZmFjdG9yaWFsIChjb25mYWN0YW5hbCkKCmBgYHtyfQpwc2ljbzEuZmEgPC1mYWN0YW5hbChwc2ljbzEsIGZhY3RvcnM9NSkKcHNpY28xLmZhCmBgYAoKI0RFU0NSSVBDScOTTgoKIyMgU2UgbXVlc3RyYSBlbiBlbCByZXN1bHRhZG8gZGVsIGFuw6FsaXNpcyBmYWN0b3JpYWwgbG9zIDIwIMOtdGVtcy4gU2UgbXVlc3RyYW4gbG9zIHJlc3VsdGFhZG9zIHBhcmEgY2FkYSB1bm8gZGUgbG9zIDUgZmFjdG9yZXMuCgojIyBQYXJhIGVsIEZhY3RvcjEgbG9zIMOtdGVtcyBjb24gbG9zIHZhbG9yZXMgbcOhcyBhbHRvcyAobWF5b3JlcyBhIDAuNCkgc29uOiA0LCA3LCA4LCA5LCAxMSwgMTIsIDE2IHkgMTcuICAgCgojIyBQYXJhIGVsIEZhY3RvcjIgbG9zIMOtdGVtcyBjb24gbG9zIHZhbG9yZXMgbcOhcyBhbHRvcyBzb246IDUsIDYsIDkgeSAxNi4KCiMjIExvcyDDrXRlbXMgY29uIGxvcyB2YWxvcmVzIG3DoXMgYWx0b3MgZW4gZWwgRmFjdG9yMzogMywgMTMsIDE0IHkgMTUuCgojIyBFbiBlbCBGYWN0b3I0OiAxOCB5IDE5LgoKIyMgRW4gZWwgRmFjdG9yNTogZWwgMTUuCgojIyBMYSBlc3RhYmlsaWRhZCBub3MgcGVybWl0ZSBldmlkZW5jaWFyIHF1ZSBsYSBjYW50aWRhZCBkZSBlc3RvcyDDrXRlbXMgY29uIHZhbG9yZXMgbcOhcyBhbHRvcyBjb2luY2lkZSBjb24gZWwgdG90YWwgZGUgw610ZW1zIGRlIGxhIGVuY3Vlc3RhOiAyMC4KCiMgUmV2aXNhbW9zIGxhIHZhcmlhbnphIGFjdW11bGFkYSBjb24gcmVsYWNpw7NuIGEgbG9zIGZhY3RvcmVzLiAKIyMgU2Ugb2JzZXJ2YSBxdWUgY29uIHVuIHNvbG8gZmFjdG9yIChGYWN0b3IxKSBsYSB2YXJpYW56YSBhY3VtdWxhZGEgZXMgbXV5IGJhamEgKDAuMTY2KS4gTG8gbWlzbW8gY29uIHPDs2xvIGRvcyBmYWN0b3JlcyAoaGFzdGEgZWwgRmFjdG9yMiBsYSB2YXJpYW56YSBhY3VtdWxhZGEgZXMgMC4yNzgpLgojIyBQZXJvIGNvbiBsb3MgNSBmYWNvcmVzIGxhIHZhcmlhbnphIGFjdW11bGFkYSBsbGVnYSAwLjUzMy4KCiMjIEVuIGNvbnRyYXN0ZSBzZSBvYnNlcnZhIGVsIHNpZ3VpZW50ZSBhbsOhbGlzaXMgcXVlIGNvbnNpZGVyYSBzw7NsbyB1biBmYWN0b3I6CgoKYGBge3J9CnBzaWNvMS5mYSA8LWZhY3RhbmFsKHBzaWNvMSwgZmFjdG9ycz0xKQpwc2ljbzEuZmEKYGBgCgojIyBDb24gdW4gZmFjdG9yIGVsIHAgdmFsb3IgZXMgaW5mZXJpb3IgYSAwLjA1LgojIyBQcnVlYmEgZGUgbGEgaGlww7N0ZXNpcyBkZSBxdWUgY29uIHVuIGZhY3RvciBlc3N1ZmljaWVudGUuCgoKIyMgQ29uc2lkZXJhcmVtb3MgZWwgYW7DoWxpc2lzIGNvbiBsYSBsaWJyZXLDrWEgcHN5Y2gsIGNhbGN1bGFuZG8gZWwgIGdyw6FmaWNvIGRlIGF1dG92YWxvciBwYXJhIGVsIGNyaXRlcmlvIGRlIGNvbnRyYXN0ZSBkZSBjYWlkYS4KCmBgYHtyfQpmYS5wYXJhbGxlbChwc2ljbzEpCmBgYAoKIyMgRWwgYW7DoWxpc2lzIHBhcmFsZWxvIHN1Z2llcmUgcXVlIGVsIG7Dum1lcm8gZGUgZmFjdG9yZXMgPSAxIHkgZWwgbsO6bWVybyBkZSBjb21wb25lbnRlcyA9IDIKCgpgYGB7cn0KcHNpY28yIDwtIGZhKHBzaWNvMSwgZm09Im1pbnJlcyIsIG5mYWN0b3JzPTEsIHJvdGF0ZT0idmFyaW1heCIpCnBzaWNvMgpgYGAKCiMjIEFuw6FsaXNpcyBmYWN0b3JpYWwgdXNhbmRvIG3DqXRvZG8gPSBtaW5yZXMKIyMgTGxhbWFyOiBmYSAociA9IHBzaWNvMSwgbmZhY3RvcnMgPSAxLCByb3RhdGUgPSAidmFyaW1heCIsIGZtID0gIm1pbnJlcyIpCiMjIENhcmdhcyBlc3RhbmRhcml6YWRhcyAobWF0cml6IGRlIHBhdHLDs24pIGJhc2FkYXMgZW4gbGEgbWF0cml6IGRlIGNvcnJlbGFjacOzbgoKIyMgICAgICAgICAgICAgICAgIE1SMQojIyBTUyBsb2FkaW5ncyAgICA1LjU4CiMjIFByb3BvcnRpb24gVmFyIDAuMjgKCiMjIENvbXBsZWppZGFkIG1lZGlhIGRlbCDDrXRlbSA9IDEKCiMjIFBydWViYSBkZSBsYSBoaXDDs3Rlc2lzIGRlIHF1ZSAxIGZhY3RvciBlcyBzdWZpY2llbnRlLgojIyBMb3MgZ3JhZG9zIGRlIGxpYmVydGFkIHBhcmEgZWwgbW9kZWxvIG51bG8gc29uIDE5MCB5IGxhIGZ1bmNpw7NuIG9iamV0aXZvIGZ1ZSAxMCwzNiBjb24gQ2hpIGN1YWRyYWRvIGRlIDM5OSwwMQojIyBMb3MgZ3JhZG9zIGRlIGxpYmVydGFkIGRlbCBtb2RlbG8gc29uIDE3MCB5IGxhIGZ1bmNpw7NuIG9iamV0aXZvIGZ1ZSA1LDc0CgojIyBMYSByYcOteiBjdWFkcmFkYSBtZWRpYSBkZSBsb3MgcmVzaWR1b3MgKFJNU1IpIGVzIDAsMTIKIyMgTGEgcmHDrXogY3VhZHJhZGEgbWVkaWEgY29ycmVnaWRhIGdsIGRlIGxvcyByZXNpZHVvcyBlcyAwLjEyCgojIyBFbCBuw7ptZXJvIGFybcOzbmljbyBkZSBvYnNlcnZhY2lvbmVzIGVzIDQ3IGNvbiBlbCBjaGkgY3VhZHJhZG8gZW1ww61yaWNvIDI0MCw5MSBjb24gcHJvYmxlbWEgPDAsMDAwMjgKIyMgRWwgbsO6bWVybyB0b3RhbCBkZSBvYnNlcnZhY2lvbmVzIGZ1ZSA0NyBjb24gcHJvYmFiaWxpZGFkIENoaSBjdWFkcmFkbyA9IDIxNywzNCBjb24gcHJvYiA8MCwwMDgzCgojIyDDjW5kaWNlIGRlIFR1Y2tlciBMZXdpcyBkZSBmaWFiaWxpZGFkIGRlIGZhY3Rvcml6YWNpw7NuID0gMCw3MzgKIyMgw41uZGljZSBSTVNFQSA9IDAuMDc0IHkgbG9zIGludGVydmFsb3MgZGUgY29uZmlhbnphIGRlbCA5MCUgc29uIDAuMDQyIDAuMTA3CiMjIEJJQyA9IC00MzcsMTgKCiMjIEFqdXN0ZSBiYXNhZG8gZW4gdmFsb3JlcyBmdWVyYSBkZSBsYSBkaWFnb25hbCA9IDAsODUKIyMgTWVkaWRhcyBkZSBhZGVjdWFjacOzbiBkZSBsYSBwdW50dWFjacOzbiBkZSBsb3MgZmFjdG9yZXMKCiMjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNUjEKIyMgQ29ycmVsYWNpw7NuIGRlIGxhcyBwdW50dWFjaW9uZXMgKGRlIHJlZ3Jlc2nDs24pIGNvbiBmYWN0b3JlcyAwLDk1CiMjIE3Dumx0aXBsZSBSIGN1YWRyYWRvIGRlIHB1bnR1YWNpb25lcyBjb24gZmFjdG9yZXMgICAgICAgICAgICAwLDkwCiMjIENvcnJlbGFjacOzbiBtw61uaW1hIGRlIHBvc2libGVzIHB1bnR1YWNpb25lcyBmYWN0b3JpYWxlcyAgICAgMCw3OQoKIyMgPiBwc2ljbzIgPC0gZmEgKHBzaWNvMSwgZm0gPSAibWlucmVzIiwgbmZhY3RvcnMgPSAxLCByb3RhdGUgPSAidmFyaW1heCIpCiMjID4gcHNpY28yCiMjIEFuw6FsaXNpcyBmYWN0b3JpYWwgdXNhbmRvIG3DqXRvZG8gPSBtaW5yZXMKIyMgTGxhbWFyOiBmYSAociA9IHBzaWNvMSwgbmZhY3RvcnMgPSAxLCByb3RhdGUgPSAidmFyaW1heCIsIGZtID0gIm1pbnJlcyIpCiMjIENhcmdhcyBlc3RhbmRhcml6YWRhcyAobWF0cml6IGRlIHBhdHLDs24pIGJhc2FkYXMgZW4gbGEgbWF0cml6IGRlIGNvcnJlbGFjacOzbgoKIyMgICAgICAgICAgICAgICAgIE1SMQojIyBDYXJnYXMgU1MgICAgICA1LjU4CiMjIFByb3BvcmNpw7NuIFZhciAwLjI4CgojIyBDb21wbGVqaWRhZCBtZWRpYSBkZWwgw610ZW0gPSAxCiMjIFBydWViYSBkZSBsYSBoaXDDs3Rlc2lzIGRlIHF1ZSAxIGZhY3RvciBlcyBzdWZpY2llbnRlLgoKIyMgTG9zIGdyYWRvcyBkZSBsaWJlcnRhZCBwYXJhIGVsIG1vZGVsbyBudWxvIHNvbiAxOTAgeSBsYSBmdW5jacOzbiBvYmpldGl2byBmdWUgMTAsMzYgY29uIENoaSBjdWFkcmFkbyBkZSAzOTksMDEKIyMgTG9zIGdyYWRvcyBkZSBsaWJlcnRhZCBkZWwgbW9kZWxvIHNvbiAxNzAgeSBsYSBmdW5jacOzbiBvYmpldGl2byBmdWUgNSw3NAoKIyMgTGEgcmHDrXogY3VhZHJhZGEgbWVkaWEgZGUgbG9zIHJlc2lkdW9zIChSTVNSKSBlcyAwLDEyCiMjIExhIHJhw616IGN1YWRyYWRhIG1lZGlhIGNvcnJlZ2lkYSBnbCBkZSBsb3MgcmVzaWR1b3MgZXMgMC4xMgoKIyMgRWwgbsO6bWVybyBhcm3Ds25pY28gZGUgb2JzZXJ2YWNpb25lcyBlcyA0NyBjb24gZWwgY2hpIGN1YWRyYWRvIGVtcMOtcmljbyAyNDAsOTEgY29uIHByb2JsZW1hIDwwLDAwMDI4CiMjIEVsIG7Dum1lcm8gdG90YWwgZGUgb2JzZXJ2YWNpb25lcyBmdWUgNDcgY29uIHByb2JhYmlsaWRhZCBDaGkgY3VhZHJhZG8gPSAyMTcsMzQgY29uIHByb2IgPDAsMDA4MwoKIyMgw41uZGljZSBkZSBUdWNrZXIgTGV3aXMgZGUgZmlhYmlsaWRhZCBkZSBmYWN0b3JpemFjacOzbiA9IDAsNzM4CiMjIMONbmRpY2UgUk1TRUEgPSAwLjA3NCB5IGxvcyBpbnRlcnZhbG9zIGRlIGNvbmZpYW56YSBkZWwgOTAlIHNvbiAwLjA0MiAwLjEwNwojIyBCSUMgPSAtNDM3LDE4CiMjIEFqdXN0ZSBiYXNhZG8gZW4gdmFsb3JlcyBmdWVyYSBkZSBsYSBkaWFnb25hbCA9IDAsODUKIyMgTWVkaWRhcyBkZSBhZGVjdWFjacOzbiBkZSBsYSBwdW50dWFjacOzbiBkZSBsb3MgZmFjdG9yZXMKCiMjQ29ycmVsYWNpw7NuIGRlIGxhcyBwdW50dWFjaW9uZXMgKGRlIHJlZ3Jlc2nDs24pIGNvbiBmYWN0b3JlcyAwLDk1CiMjIE3Dumx0aXBsZSBSIGN1YWRyYWRvIGRlIHB1bnR1YWNpb25lcyBjb24gZmFjdG9yZXMgMCw5MAojIyBDb3JyZWxhY2nDs24gbcOtbmltYSBkZSBwb3NpYmxlcyBwdW50dWFjaW9uZXMgZmFjdG9yaWFsZXMgMCw3OQojIyA+IGltcHJpbWlyIChwc2ljbzIpCiMjIEFuw6FsaXNpcyBmYWN0b3JpYWwgdXNhbmRvIG3DqXRvZG8gPSBtaW5yZXMKIyMgTGxhbWFyOiBmYSAociA9IHBzaWNvMSwgbmZhY3RvcnMgPSAxLCByb3RhdGUgPSAidmFyaW1heCIsIGZtID0gIm1pbnJlcyIpCiMjIENhcmdhcyBlc3RhbmRhcml6YWRhcyAobWF0cml6IGRlIHBhdHLDs24pIGJhc2FkYXMgZW4gbGEgbWF0cml6IGRlIGNvcnJlbGFjacOzbgoKIyMgICAgICAgICAgICAgICAgIE1SMQojIyBDYXJnYXMgU1MgICAgICA1LjU4CiMjIFByb3BvcmNpw7NuIFZhciAwLjI4CgojIyBDb21wbGVqaWRhZCBtZWRpYSBkZWwgw610ZW0gPSAxCiMjIFBydWViYSBkZSBsYSBoaXDDs3Rlc2lzIGRlIHF1ZSAxIGZhY3RvciBlcyBzdWZpY2llbnRlLgoKIyMgTG9zIGdyYWRvcyBkZSBsaWJlcnRhZCBwYXJhIGVsIG1vZGVsbyBudWxvIHNvbiAxOTAgeSBsYSBmdW5jacOzbiBvYmpldGl2byBmdWUgMTAsMzYgY29uIENoaSBjdWFkcmFkbyBkZSAzOTksMDEKIyMgTG9zIGdyYWRvcyBkZSBsaWJlcnRhZCBkZWwgbW9kZWxvIHNvbiAxNzAgeSBsYSBmdW5jacOzbiBvYmpldGl2byBmdWUgNSw3NAoKIyMgTGEgcmHDrXogY3VhZHJhZGEgbWVkaWEgZGUgbG9zIHJlc2lkdW9zIChSTVNSKSBlcyAwLDEyCiMjIExhIHJhw616IGN1YWRyYWRhIG1lZGlhIGNvcnJlZ2lkYSBnbCBkZSBsb3MgcmVzaWR1b3MgZXMgMC4xMgoKIyMgRWwgbsO6bWVybyBhcm3Ds25pY28gZGUgb2JzZXJ2YWNpb25lcyBlcyA0NyBjb24gZWwgY2hpIGN1YWRyYWRvIGVtcMOtcmljbyAyNDAsOTEgY29uIHByb2JsZW1hIDwwLDAwMDI4CiMjIEVsIG7Dum1lcm8gdG90YWwgZGUgb2JzZXJ2YWNpb25lcyBmdWUgNDcgY29uIHByb2JhYmlsaWRhZCBDaGkgY3VhZHJhZG8gPSAyMTcsMzQgY29uIHByb2IgPDAsMDA4MwoKIyMgw41uZGljZSBkZSBUdWNrZXIgTGV3aXMgZGUgZmlhYmlsaWRhZCBkZSBmYWN0b3JpemFjacOzbiA9IDAsNzM4CiMjIMONbmRpY2UgUk1TRUEgPSAwLjA3NCB5IGxvcyBpbnRlcnZhbG9zIGRlIGNvbmZpYW56YSBkZWwgOTAlIHNvbiAwLjA0MiAwLjEwNwojIyBCSUMgPSAtNDM3LDE4CiMjIEFqdXN0ZSBiYXNhZG8gZW4gdmFsb3JlcyBmdWVyYSBkZSBsYSBkaWFnb25hbCA9IDAsODUKIyMgTWVkaWRhcyBkZSBhZGVjdWFjacOzbiBkZSBsYSBwdW50dWFjacOzbiBkZSBsb3MgZmFjdG9yZXMKCiMjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNUjEKIyMgQ29ycmVsYWNpw7NuIGRlIGxhcyBwdW50dWFjaW9uZXMgKGRlIHJlZ3Jlc2nDs24pIGNvbiBmYWN0b3JlcyAwLDk1CiMjIE3Dumx0aXBsZSBSIGN1YWRyYWRvIGRlIHB1bnR1YWNpb25lcyBjb24gZmFjdG9yZXMgICAgICAgICAgICAwLDkwCiMjIENvcnJlbGFjacOzbiBtw61uaW1hIGRlIHBvc2libGVzIHB1bnR1YWNpb25lcyBmYWN0b3JpYWxlcyAgICAgMCw3OQoKCgo=