1 Basic Descriptives

1.1 Cases by Ethnic Conflict and Cases by levels of Coethnicity in Ethnic Conflicts

Percentage wise distribution of the type of Civil Wars (Ethnic/Non-Ethnic)
conflict_ethnic total_cases percentage_of_cases
0 40 25.15723
1 119 74.84277
Distribution by Co-ethnicity Status in Ethnic Civil Wars
coethnic_rebel_pgm_nachiket total_cases percentage_of_cases
0.0 86 72.268908
0.5 9 7.563025
1.0 24 20.168067

1.2 Basic CrossTabs on Rebel Strength (Nachiket) and Coethnicity (Nachiket and DK)

## 
##    Cell Contents
## |-------------------------|
## |                   Count |
## |             Row Percent |
## |          Column Percent |
## |-------------------------|
## 
## Total Observations in Table:  115 
## 
##                           | Coethnicity_Nachiket_Variable Binary 
## Rebel Strength (Nachiket) |        0  |        1  | Row Total | 
## --------------------------|-----------|-----------|-----------|
##                         1 |       51  |       22  |       73  | 
##                           |   69.863% |   30.137% |   63.478% | 
##                           |   60.714% |   70.968% |           | 
## --------------------------|-----------|-----------|-----------|
##                         2 |       11  |        4  |       15  | 
##                           |   73.333% |   26.667% |   13.043% | 
##                           |   13.095% |   12.903% |           | 
## --------------------------|-----------|-----------|-----------|
##                         3 |       19  |        4  |       23  | 
##                           |   82.609% |   17.391% |   20.000% | 
##                           |   22.619% |   12.903% |           | 
## --------------------------|-----------|-----------|-----------|
##                         4 |        0  |        1  |        1  | 
##                           |    0.000% |  100.000% |    0.870% | 
##                           |    0.000% |    3.226% |           | 
## --------------------------|-----------|-----------|-----------|
##                         5 |        3  |        0  |        3  | 
##                           |  100.000% |    0.000% |    2.609% | 
##                           |    3.571% |    0.000% |           | 
## --------------------------|-----------|-----------|-----------|
##              Column Total |       84  |       31  |      115  | 
##                           |   73.043% |   26.957% |           | 
## --------------------------|-----------|-----------|-----------|
## 
## 
## 
##  Pearson's Chi-squared test
## 
## data:  main_civilwars_ethnic$rebel_strength_nachiket_scaled and main_civilwars_ethnic$coethnic_rebel_pgm_nachiket_binary
## X-squared = 5.2612, df = 4, p-value = 0.2615
## 
##    Cell Contents
## |-------------------------|
## |                   Count |
## |             Row Percent |
## |          Column Percent |
## |-------------------------|
## 
## Total Observations in Table:  115 
## 
##                           | Coethnicity_Nachiket_Variable 
## Rebel Strength (Nachiket) |        0  |      0.5  |        1  | Row Total | 
## --------------------------|-----------|-----------|-----------|-----------|
##                         1 |       51  |        7  |       15  |       73  | 
##                           |   69.863% |    9.589% |   20.548% |   63.478% | 
##                           |   60.714% |   77.778% |   68.182% |           | 
## --------------------------|-----------|-----------|-----------|-----------|
##                         2 |       11  |        1  |        3  |       15  | 
##                           |   73.333% |    6.667% |   20.000% |   13.043% | 
##                           |   13.095% |   11.111% |   13.636% |           | 
## --------------------------|-----------|-----------|-----------|-----------|
##                         3 |       19  |        1  |        3  |       23  | 
##                           |   82.609% |    4.348% |   13.043% |   20.000% | 
##                           |   22.619% |   11.111% |   13.636% |           | 
## --------------------------|-----------|-----------|-----------|-----------|
##                         4 |        0  |        0  |        1  |        1  | 
##                           |    0.000% |    0.000% |  100.000% |    0.870% | 
##                           |    0.000% |    0.000% |    4.545% |           | 
## --------------------------|-----------|-----------|-----------|-----------|
##                         5 |        3  |        0  |        0  |        3  | 
##                           |  100.000% |    0.000% |    0.000% |    2.609% | 
##                           |    3.571% |    0.000% |    0.000% |           | 
## --------------------------|-----------|-----------|-----------|-----------|
##              Column Total |       84  |        9  |       22  |      115  | 
##                           |   73.043% |    7.826% |   19.130% |           | 
## --------------------------|-----------|-----------|-----------|-----------|
## 
## 
## 
##  Pearson's Chi-squared test
## 
## data:  main_civilwars_ethnic$rebel_strength_nachiket_scaled and main_civilwars_ethnic$coethnic_rebel_pgm_nachiket
## X-squared = 6.9231, df = 8, p-value = 0.545
## 
##    Cell Contents
## |-------------------------|
## |                   Count |
## |             Row Percent |
## |          Column Percent |
## |-------------------------|
## 
## Total Observations in Table:  94 
## 
##                           | Coethnicity_DK_Variable 
## Rebel Strength (Nachiket) |        0  |      0.5  |        1  | Row Total | 
## --------------------------|-----------|-----------|-----------|-----------|
##                         1 |       42  |       10  |        6  |       58  | 
##                           |   72.414% |   17.241% |   10.345% |   61.702% | 
##                           |   59.155% |   83.333% |   54.545% |           | 
## --------------------------|-----------|-----------|-----------|-----------|
##                         2 |       10  |        1  |        2  |       13  | 
##                           |   76.923% |    7.692% |   15.385% |   13.830% | 
##                           |   14.085% |    8.333% |   18.182% |           | 
## --------------------------|-----------|-----------|-----------|-----------|
##                         3 |       15  |        1  |        3  |       19  | 
##                           |   78.947% |    5.263% |   15.789% |   20.213% | 
##                           |   21.127% |    8.333% |   27.273% |           | 
## --------------------------|-----------|-----------|-----------|-----------|
##                         4 |        1  |        0  |        0  |        1  | 
##                           |  100.000% |    0.000% |    0.000% |    1.064% | 
##                           |    1.408% |    0.000% |    0.000% |           | 
## --------------------------|-----------|-----------|-----------|-----------|
##                         5 |        3  |        0  |        0  |        3  | 
##                           |  100.000% |    0.000% |    0.000% |    3.191% | 
##                           |    4.225% |    0.000% |    0.000% |           | 
## --------------------------|-----------|-----------|-----------|-----------|
##              Column Total |       71  |       12  |       11  |       94  | 
##                           |   75.532% |   12.766% |   11.702% |           | 
## --------------------------|-----------|-----------|-----------|-----------|
## 
## 
## 
##  Pearson's Chi-squared test
## 
## data:  main_civilwars_ethnic$rebel_strength_nachiket_scaled and main_civilwars_ethnic$coethnic_rebel_pgm_dk
## X-squared = 3.9263, df = 8, p-value = 0.8637

1.3 Basic Crosstabs on State Strength and Co-ethnicity

## 
##    Cell Contents
## |-------------------------|
## |                   Count |
## |             Row Percent |
## |          Column Percent |
## |-------------------------|
## 
## Total Observations in Table:  119 
## 
##                | Coethnicity_Nachiket_Variable 
## State Strength |        0  |        1  | Row Total | 
## ---------------|-----------|-----------|-----------|
##              1 |       19  |        5  |       24  | 
##                |   79.167% |   20.833% |   20.168% | 
##                |   22.093% |   15.152% |           | 
## ---------------|-----------|-----------|-----------|
##              2 |       14  |       10  |       24  | 
##                |   58.333% |   41.667% |   20.168% | 
##                |   16.279% |   30.303% |           | 
## ---------------|-----------|-----------|-----------|
##              3 |       18  |        5  |       23  | 
##                |   78.261% |   21.739% |   19.328% | 
##                |   20.930% |   15.152% |           | 
## ---------------|-----------|-----------|-----------|
##              4 |       28  |        3  |       31  | 
##                |   90.323% |    9.677% |   26.050% | 
##                |   32.558% |    9.091% |           | 
## ---------------|-----------|-----------|-----------|
##              5 |        7  |       10  |       17  | 
##                |   41.176% |   58.824% |   14.286% | 
##                |    8.140% |   30.303% |           | 
## ---------------|-----------|-----------|-----------|
##   Column Total |       86  |       33  |      119  | 
##                |   72.269% |   27.731% |           | 
## ---------------|-----------|-----------|-----------|
## 
## 
## 
##  Pearson's Chi-squared test
## 
## data:  main_civilwars_ethnic$state_strength and main_civilwars_ethnic$coethnic_rebel_pgm_nachiket_binary
## X-squared = 16.55, df = 4, p-value = 0.002364
## 
##    Cell Contents
## |-------------------------|
## |                   Count |
## |             Row Percent |
## |          Column Percent |
## |-------------------------|
## 
## Total Observations in Table:  119 
## 
##                | Coethnicity_Nachiket_Variable 
## State Strength |        0  |      0.5  |        1  | Row Total | 
## ---------------|-----------|-----------|-----------|-----------|
##              1 |       19  |        1  |        4  |       24  | 
##                |   79.167% |    4.167% |   16.667% |   20.168% | 
##                |   22.093% |   11.111% |   16.667% |           | 
## ---------------|-----------|-----------|-----------|-----------|
##              2 |       14  |        5  |        5  |       24  | 
##                |   58.333% |   20.833% |   20.833% |   20.168% | 
##                |   16.279% |   55.556% |   20.833% |           | 
## ---------------|-----------|-----------|-----------|-----------|
##              3 |       18  |        1  |        4  |       23  | 
##                |   78.261% |    4.348% |   17.391% |   19.328% | 
##                |   20.930% |   11.111% |   16.667% |           | 
## ---------------|-----------|-----------|-----------|-----------|
##              4 |       28  |        1  |        2  |       31  | 
##                |   90.323% |    3.226% |    6.452% |   26.050% | 
##                |   32.558% |   11.111% |    8.333% |           | 
## ---------------|-----------|-----------|-----------|-----------|
##              5 |        7  |        1  |        9  |       17  | 
##                |   41.176% |    5.882% |   52.941% |   14.286% | 
##                |    8.140% |   11.111% |   37.500% |           | 
## ---------------|-----------|-----------|-----------|-----------|
##   Column Total |       86  |        9  |       24  |      119  | 
##                |   72.269% |    7.563% |   20.168% |           | 
## ---------------|-----------|-----------|-----------|-----------|
## 
## 
## 
##  Pearson's Chi-squared test
## 
## data:  main_civilwars_ethnic$state_strength and main_civilwars_ethnic$coethnic_rebel_pgm_nachiket
## X-squared = 23.877, df = 8, p-value = 0.002403
## 
##    Cell Contents
## |-------------------------|
## |                   Count |
## |             Row Percent |
## |          Column Percent |
## |-------------------------|
## 
## Total Observations in Table:  96 
## 
##                | Coethnicity_DK_Variable 
## State Strength |        0  |      0.5  |        1  | Row Total | 
## ---------------|-----------|-----------|-----------|-----------|
##              1 |       15  |        1  |        2  |       18  | 
##                |   83.333% |    5.556% |   11.111% |   18.750% | 
##                |   20.833% |    8.333% |   16.667% |           | 
## ---------------|-----------|-----------|-----------|-----------|
##              2 |       13  |        5  |        5  |       23  | 
##                |   56.522% |   21.739% |   21.739% |   23.958% | 
##                |   18.056% |   41.667% |   41.667% |           | 
## ---------------|-----------|-----------|-----------|-----------|
##              3 |       17  |        1  |        3  |       21  | 
##                |   80.952% |    4.762% |   14.286% |   21.875% | 
##                |   23.611% |    8.333% |   25.000% |           | 
## ---------------|-----------|-----------|-----------|-----------|
##              4 |       23  |        1  |        0  |       24  | 
##                |   95.833% |    4.167% |    0.000% |   25.000% | 
##                |   31.944% |    8.333% |    0.000% |           | 
## ---------------|-----------|-----------|-----------|-----------|
##              5 |        4  |        4  |        2  |       10  | 
##                |   40.000% |   40.000% |   20.000% |   10.417% | 
##                |    5.556% |   33.333% |   16.667% |           | 
## ---------------|-----------|-----------|-----------|-----------|
##   Column Total |       72  |       12  |       12  |       96  | 
##                |   75.000% |   12.500% |   12.500% |           | 
## ---------------|-----------|-----------|-----------|-----------|
## 
## 
## 
##  Pearson's Chi-squared test
## 
## data:  main_civilwars_ethnic$state_strength and main_civilwars_ethnic$coethnic_rebel_pgm_dk
## X-squared = 20.092, df = 8, p-value = 0.009995

1.4 Basic Crosstab on Threat Perception and Coethnicity

## 
##    Cell Contents
## |-------------------------|
## |                   Count |
## |             Row Percent |
## |          Column Percent |
## |-------------------------|
## 
## Total Observations in Table:  115 
## 
##                 | Coethnicity_Nachiket_Variable 
## Level of Threat |        0  |        1  | Row Total | 
## ----------------|-----------|-----------|-----------|
##               1 |       53  |       21  |       74  | 
##                 |   71.622% |   28.378% |   64.348% | 
##                 |   63.095% |   67.742% |           | 
## ----------------|-----------|-----------|-----------|
##               2 |        6  |        4  |       10  | 
##                 |   60.000% |   40.000% |    8.696% | 
##                 |    7.143% |   12.903% |           | 
## ----------------|-----------|-----------|-----------|
##               3 |       25  |        6  |       31  | 
##                 |   80.645% |   19.355% |   26.957% | 
##                 |   29.762% |   19.355% |           | 
## ----------------|-----------|-----------|-----------|
##    Column Total |       84  |       31  |      115  | 
##                 |   73.043% |   26.957% |           | 
## ----------------|-----------|-----------|-----------|
## 
## 
## 
##  Pearson's Chi-squared test
## 
## data:  main_civilwars_ethnic$Level_of_Threat and main_civilwars_ethnic$coethnic_rebel_pgm_nachiket_binary
## X-squared = 1.8498, df = 2, p-value = 0.3966
## 
##    Cell Contents
## |-------------------------|
## |                   Count |
## |             Row Percent |
## |          Column Percent |
## |-------------------------|
## 
## Total Observations in Table:  115 
## 
##                 | Coethnicity_Nachiket_Variable 
## Level of Threat |        0  |      0.5  |        1  | Row Total | 
## ----------------|-----------|-----------|-----------|-----------|
##               1 |       53  |        7  |       14  |       74  | 
##                 |   71.622% |    9.459% |   18.919% |   64.348% | 
##                 |   63.095% |   77.778% |   63.636% |           | 
## ----------------|-----------|-----------|-----------|-----------|
##               2 |        6  |        1  |        3  |       10  | 
##                 |   60.000% |   10.000% |   30.000% |    8.696% | 
##                 |    7.143% |   11.111% |   13.636% |           | 
## ----------------|-----------|-----------|-----------|-----------|
##               3 |       25  |        1  |        5  |       31  | 
##                 |   80.645% |    3.226% |   16.129% |   26.957% | 
##                 |   29.762% |   11.111% |   22.727% |           | 
## ----------------|-----------|-----------|-----------|-----------|
##    Column Total |       84  |        9  |       22  |      115  | 
##                 |   73.043% |    7.826% |   19.130% |           | 
## ----------------|-----------|-----------|-----------|-----------|
## 
## 
## 
##  Pearson's Chi-squared test
## 
## data:  main_civilwars_ethnic$Level_of_Threat and main_civilwars_ethnic$coethnic_rebel_pgm_nachiket
## X-squared = 2.4149, df = 4, p-value = 0.6599
## 
##    Cell Contents
## |-------------------------|
## |                   Count |
## |             Row Percent |
## |          Column Percent |
## |-------------------------|
## 
## Total Observations in Table:  94 
## 
##                 | Coethnicity_DK_Variable 
## Level of Threat |        0  |      0.5  |        1  | Row Total | 
## ----------------|-----------|-----------|-----------|-----------|
##               1 |       43  |       10  |        5  |       58  | 
##                 |   74.138% |   17.241% |    8.621% |   61.702% | 
##                 |   60.563% |   83.333% |   45.455% |           | 
## ----------------|-----------|-----------|-----------|-----------|
##               2 |        6  |        1  |        3  |       10  | 
##                 |   60.000% |   10.000% |   30.000% |   10.638% | 
##                 |    8.451% |    8.333% |   27.273% |           | 
## ----------------|-----------|-----------|-----------|-----------|
##               3 |       22  |        1  |        3  |       26  | 
##                 |   84.615% |    3.846% |   11.538% |   27.660% | 
##                 |   30.986% |    8.333% |   27.273% |           | 
## ----------------|-----------|-----------|-----------|-----------|
##    Column Total |       71  |       12  |       11  |       94  | 
##                 |   75.532% |   12.766% |   11.702% |           | 
## ----------------|-----------|-----------|-----------|-----------|
## 
## 
## 
##  Pearson's Chi-squared test
## 
## data:  main_civilwars_ethnic$Level_of_Threat and main_civilwars_ethnic$coethnic_rebel_pgm_dk
## X-squared = 6.541, df = 4, p-value = 0.1622

1.5 Basic Crosstabs on Rebel Strength (Adam NSA) and Coethnicity (nachiket and DK)

## 
##    Cell Contents
## |-------------------------|
## |                   Count |
## |             Row Percent |
## |          Column Percent |
## |-------------------------|
## 
## Total Observations in Table:  105 
## 
##                           | Coethnicity_Nachiket_Variable Binary 
## Rebel Strength (Adam NSA) |        0  |        1  | Row Total | 
## --------------------------|-----------|-----------|-----------|
##                         1 |       72  |       26  |       98  | 
##                           |   73.469% |   26.531% |   93.333% | 
##                           |   91.139% |  100.000% |           | 
## --------------------------|-----------|-----------|-----------|
##                         2 |        5  |        0  |        5  | 
##                           |  100.000% |    0.000% |    4.762% | 
##                           |    6.329% |    0.000% |           | 
## --------------------------|-----------|-----------|-----------|
##                         3 |        2  |        0  |        2  | 
##                           |  100.000% |    0.000% |    1.905% | 
##                           |    2.532% |    0.000% |           | 
## --------------------------|-----------|-----------|-----------|
##              Column Total |       79  |       26  |      105  | 
##                           |   75.238% |   24.762% |           | 
## --------------------------|-----------|-----------|-----------|
## 
## 
## 
##  Pearson's Chi-squared test
## 
## data:  main_civilwars_ethnic$rebstrength_adam_nsa and main_civilwars_ethnic$coethnic_rebel_pgm_nachiket_binary
## X-squared = 2.4684, df = 2, p-value = 0.2911
## 
##    Cell Contents
## |-------------------------|
## |                   Count |
## |             Row Percent |
## |          Column Percent |
## |-------------------------|
## 
## Total Observations in Table:  105 
## 
##                           | Coethnicity_Nachiket_Variable Binary 
## Rebel Strength (Adam NSA) |        0  |      0.5  |        1  | Row Total | 
## --------------------------|-----------|-----------|-----------|-----------|
##                         1 |       72  |        8  |       18  |       98  | 
##                           |   73.469% |    8.163% |   18.367% |   93.333% | 
##                           |   91.139% |  100.000% |  100.000% |           | 
## --------------------------|-----------|-----------|-----------|-----------|
##                         2 |        5  |        0  |        0  |        5  | 
##                           |  100.000% |    0.000% |    0.000% |    4.762% | 
##                           |    6.329% |    0.000% |    0.000% |           | 
## --------------------------|-----------|-----------|-----------|-----------|
##                         3 |        2  |        0  |        0  |        2  | 
##                           |  100.000% |    0.000% |    0.000% |    1.905% | 
##                           |    2.532% |    0.000% |    0.000% |           | 
## --------------------------|-----------|-----------|-----------|-----------|
##              Column Total |       79  |        8  |       18  |      105  | 
##                           |   75.238% |    7.619% |   17.143% |           | 
## --------------------------|-----------|-----------|-----------|-----------|
## 
## 
## 
##  Pearson's Chi-squared test
## 
## data:  main_civilwars_ethnic$rebstrength_adam_nsa and main_civilwars_ethnic$coethnic_rebel_pgm_nachiket
## X-squared = 2.4684, df = 4, p-value = 0.6503
## 
##    Cell Contents
## |-------------------------|
## |                   Count |
## |             Row Percent |
## |          Column Percent |
## |-------------------------|
## 
## Total Observations in Table:  85 
## 
##                       | Coethnicity_DK_Variable 
## Rebel Strength (Adam) |        0  |      0.5  |        1  | Row Total | 
## ----------------------|-----------|-----------|-----------|-----------|
##                     1 |       59  |       11  |        9  |       79  | 
##                       |   74.684% |   13.924% |   11.392% |   92.941% | 
##                       |   90.769% |  100.000% |  100.000% |           | 
## ----------------------|-----------|-----------|-----------|-----------|
##                     2 |        4  |        0  |        0  |        4  | 
##                       |  100.000% |    0.000% |    0.000% |    4.706% | 
##                       |    6.154% |    0.000% |    0.000% |           | 
## ----------------------|-----------|-----------|-----------|-----------|
##                     3 |        2  |        0  |        0  |        2  | 
##                       |  100.000% |    0.000% |    0.000% |    2.353% | 
##                       |    3.077% |    0.000% |    0.000% |           | 
## ----------------------|-----------|-----------|-----------|-----------|
##          Column Total |       65  |       11  |        9  |       85  | 
##                       |   76.471% |   12.941% |   10.588% |           | 
## ----------------------|-----------|-----------|-----------|-----------|
## 
## 
## 
##  Pearson's Chi-squared test
## 
## data:  main_civilwars_ethnic$rebstrength_adam_nsa and main_civilwars_ethnic$coethnic_rebel_pgm_dk
## X-squared = 1.9864, df = 4, p-value = 0.7383

1.6 Basic Crosstabs on State Strength and Rebel Strength (Adam NSA and Nachiket Scaled)

## 
##    Cell Contents
## |-------------------------|
## |                   Count |
## |             Row Percent |
## |          Column Percent |
## |-------------------------|
## 
## Total Observations in Table:  105 
## 
##                | Reb Strength ADAM NSA 
## State Strength |        1  |        2  |        3  | Row Total | 
## ---------------|-----------|-----------|-----------|-----------|
##              1 |       14  |        5  |        2  |       21  | 
##                |   66.667% |   23.810% |    9.524% |   20.000% | 
##                |   14.286% |  100.000% |  100.000% |           | 
## ---------------|-----------|-----------|-----------|-----------|
##              2 |       20  |        0  |        0  |       20  | 
##                |  100.000% |    0.000% |    0.000% |   19.048% | 
##                |   20.408% |    0.000% |    0.000% |           | 
## ---------------|-----------|-----------|-----------|-----------|
##              3 |       19  |        0  |        0  |       19  | 
##                |  100.000% |    0.000% |    0.000% |   18.095% | 
##                |   19.388% |    0.000% |    0.000% |           | 
## ---------------|-----------|-----------|-----------|-----------|
##              4 |       28  |        0  |        0  |       28  | 
##                |  100.000% |    0.000% |    0.000% |   26.667% | 
##                |   28.571% |    0.000% |    0.000% |           | 
## ---------------|-----------|-----------|-----------|-----------|
##              5 |       17  |        0  |        0  |       17  | 
##                |  100.000% |    0.000% |    0.000% |   16.190% | 
##                |   17.347% |    0.000% |    0.000% |           | 
## ---------------|-----------|-----------|-----------|-----------|
##   Column Total |       98  |        5  |        2  |      105  | 
##                |   93.333% |    4.762% |    1.905% |           | 
## ---------------|-----------|-----------|-----------|-----------|
## 
## 
## 
##  Pearson's Chi-squared test
## 
## data:  main_civilwars_ethnic$state_strength and main_civilwars_ethnic$rebstrength_adam_nsa
## X-squared = 30, df = 8, p-value = 0.0002114
## 
##    Cell Contents
## |-------------------------|
## |                   Count |
## |             Row Percent |
## |          Column Percent |
## |-------------------------|
## 
## Total Observations in Table:  115 
## 
##                | Rebel Strength Nachiket Scaled 
## State Strength |        1  |        2  |        3  |        4  |        5  | Row Total | 
## ---------------|-----------|-----------|-----------|-----------|-----------|-----------|
##              1 |        1  |        5  |       13  |        1  |        2  |       22  | 
##                |    4.545% |   22.727% |   59.091% |    4.545% |    9.091% |   19.130% | 
##                |    1.370% |   33.333% |   56.522% |  100.000% |   66.667% |           | 
## ---------------|-----------|-----------|-----------|-----------|-----------|-----------|
##              2 |        7  |        8  |        9  |        0  |        0  |       24  | 
##                |   29.167% |   33.333% |   37.500% |    0.000% |    0.000% |   20.870% | 
##                |    9.589% |   53.333% |   39.130% |    0.000% |    0.000% |           | 
## ---------------|-----------|-----------|-----------|-----------|-----------|-----------|
##              3 |       17  |        2  |        1  |        0  |        1  |       21  | 
##                |   80.952% |    9.524% |    4.762% |    0.000% |    4.762% |   18.261% | 
##                |   23.288% |   13.333% |    4.348% |    0.000% |   33.333% |           | 
## ---------------|-----------|-----------|-----------|-----------|-----------|-----------|
##              4 |       31  |        0  |        0  |        0  |        0  |       31  | 
##                |  100.000% |    0.000% |    0.000% |    0.000% |    0.000% |   26.957% | 
##                |   42.466% |    0.000% |    0.000% |    0.000% |    0.000% |           | 
## ---------------|-----------|-----------|-----------|-----------|-----------|-----------|
##              5 |       17  |        0  |        0  |        0  |        0  |       17  | 
##                |  100.000% |    0.000% |    0.000% |    0.000% |    0.000% |   14.783% | 
##                |   23.288% |    0.000% |    0.000% |    0.000% |    0.000% |           | 
## ---------------|-----------|-----------|-----------|-----------|-----------|-----------|
##   Column Total |       73  |       15  |       23  |        1  |        3  |      115  | 
##                |   63.478% |   13.043% |   20.000% |    0.870% |    2.609% |           | 
## ---------------|-----------|-----------|-----------|-----------|-----------|-----------|
## 
## 
## 
##  Pearson's Chi-squared test
## 
## data:  main_civilwars_ethnic$state_strength and main_civilwars_ethnic$rebel_strength_nachiket_scaled
## X-squared = 85.746, df = 16, p-value = 1.509e-11

1.7 Basic crosstabs on Outcome Binary DK and Coethnicity Nachiket/DK

## 
##    Cell Contents
## |-------------------------|
## |                   Count |
## |             Row Percent |
## |          Column Percent |
## |-------------------------|
## 
## Total Observations in Table:  101 
## 
##              | Coethnic Nachiket 
##      Outcome |        0  |        1  | Row Total | 
## -------------|-----------|-----------|-----------|
##            0 |       34  |       17  |       51  | 
##              |   66.667% |   33.333% |   50.495% | 
##              |   44.156% |   70.833% |           | 
## -------------|-----------|-----------|-----------|
##            1 |       43  |        7  |       50  | 
##              |   86.000% |   14.000% |   49.505% | 
##              |   55.844% |   29.167% |           | 
## -------------|-----------|-----------|-----------|
## Column Total |       77  |       24  |      101  | 
##              |   76.238% |   23.762% |           | 
## -------------|-----------|-----------|-----------|
## 
## 
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  main_civilwars_ethnic$outcome_binary_rebel_victory_kaur and main_civilwars_ethnic$coethnic_rebel_pgm_nachiket_binary
## X-squared = 4.1967, df = 1, p-value = 0.0405
## 
##    Cell Contents
## |-------------------------|
## |                   Count |
## |             Row Percent |
## |          Column Percent |
## |-------------------------|
## 
## Total Observations in Table:  82 
## 
##              | Coethnic (DK) 
##      Outcome |        0  |      0.5  |        1  | Row Total | 
## -------------|-----------|-----------|-----------|-----------|
##            0 |       23  |        7  |        5  |       35  | 
##              |   65.714% |   20.000% |   14.286% |   42.683% | 
##              |   35.385% |   77.778% |   62.500% |           | 
## -------------|-----------|-----------|-----------|-----------|
##            1 |       42  |        2  |        3  |       47  | 
##              |   89.362% |    4.255% |    6.383% |   57.317% | 
##              |   64.615% |   22.222% |   37.500% |           | 
## -------------|-----------|-----------|-----------|-----------|
## Column Total |       65  |        9  |        8  |       82  | 
##              |   79.268% |   10.976% |    9.756% |           | 
## -------------|-----------|-----------|-----------|-----------|
## 
## 
## 
##  Pearson's Chi-squared test
## 
## data:  main_civilwars_ethnic$state_strength and main_civilwars_ethnic$coethnic_rebel_pgm_dk
## X-squared = 20.092, df = 8, p-value = 0.009995

2 Regressions

2.1 Regression for co_ethnicity_nachiket as DV

2.1.1 First Model

Simple Linear Model with no fixed effects

## OLS estimation, Dep. Var.: coethnic_rebel_pgm_nachiket_binary
## Observations: 102
## Standard-errors: IID 
##                                 Estimate Std. Error   t value Pr(>|t|)    
## (Intercept)                     0.743683   0.369785  2.011125 0.047146 *  
## polity2                         0.037706   0.010363  3.638399 0.000446 ***
## Level_of_Threat                -0.058620   0.150257 -0.390132 0.697312    
## state_strength                 -0.143922   0.064164 -2.243022 0.027220 *  
## rebel_strength_nachiket_scaled -0.117383   0.105791 -1.109578 0.269982    
## duration_year                   0.008142   0.003666  2.220775 0.028743 *  
## ethpol                          0.291011   0.300164  0.969505 0.334755    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 0.396983   Adj. R2: 0.13917
##                                      model_coethnicity_nachiket_1
## Dependent Var.:                coethnic_rebel_pgm_nachiket_binary
##                                                                  
## Constant                                         0.7437* (0.3698)
## polity2                                        0.0377*** (0.0104)
## Level_of_Threat                                  -0.0586 (0.1503)
## state_strength                                  -0.1439* (0.0642)
## rebel_strength_nachiket_scaled                   -0.1174 (0.1058)
## duration_year                                    0.0081* (0.0037)
## ethpol                                            0.2910 (0.3002)
## ______________________________     ______________________________
## S.E. type                                                     IID
## Observations                                                  102
## R2                                                        0.19031
## Adj. R2                                                   0.13917
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Interpretation:

  1. The model is statistically significant overall (F-statistic p-value = 0.002286), but explains only about 19% of the variance in coethnic rebel PGM formation (R-squared = 0.1903).

  2. The following interpretation for the three significant variables. Polity2 (coefficient: 0.037706, p < 0.001): For each one-unit increase in the Polity2 score (indicating a move towards democracy), the probability of coethnic rebel PGM formation increases by approximately 3.8 percentage points. This suggests that more democratic regimes are associated with a higher likelihood of coethnic rebel PGMs.

State strength (coefficient: -0.143922, p < 0.05): As state strength increases by one unit, the probability of coethnic rebel PGM formation decreases by about 14.4 percentage points. This indicates that stronger states are less likely to experience coethnic rebel PGMs.

Duration_year (coefficient: 0.008142, p < 0.05): For each additional year a conflict lasts, the probability of coethnic rebel PGM formation increases by approximately 0.8 percentage points. This suggests that longer conflicts are associated with a slightly higher likelihood of coethnic rebel PGMs.

  1. Level of threat, rebel strength, and ethpol do not show statistically significant effects on coethnic rebel PGM formation in this model.

2.1.2 Second Model

Simple Model with Interaction Term Removing level of threat because interaction term is there (for synergistic effect)

## OLS estimation, Dep. Var.: coethnic_rebel_pgm_nachiket_binary
## Observations: 102
## Standard-errors: IID 
##                                                Estimate Std. Error   t value
## (Intercept)                                    0.581238   0.333060  1.745142
## polity2                                        0.036072   0.009360  3.853702
## state_strength                                -0.098277   0.091971 -1.068567
## rebel_strength_nachiket_scaled                -0.109395   0.123674 -0.884547
## duration_year                                  0.008743   0.003554  2.459816
## ethpol                                         0.311676   0.312752  0.996559
## state_strength:rebel_strength_nachiket_scaled -0.027475   0.072055 -0.381313
##                                                 Pr(>|t|)    
## (Intercept)                                   0.08419364 .  
## polity2                                       0.00021139 ***
## state_strength                                0.28797276    
## rebel_strength_nachiket_scaled                0.37863432    
## duration_year                                 0.01570876 *  
## ethpol                                        0.32151012    
## state_strength:rebel_strength_nachiket_scaled 0.70382257    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 0.396997   Adj. R2: 0.139109
##                                                       model_coethnicity_nachiket_2
## Dependent Var.:                                 coethnic_rebel_pgm_nachiket_binary
##                                                                                   
## Constant                                                          0.5812. (0.3331)
## polity2                                                         0.0361*** (0.0094)
## state_strength                                                    -0.0983 (0.0920)
## rebel_strength_nachiket_scaled                                    -0.1094 (0.1237)
## duration_year                                                     0.0087* (0.0036)
## ethpol                                                             0.3117 (0.3128)
## state_strength x rebel_strength_nachiket_scaled                   -0.0275 (0.0721)
## ________________________________________            ______________________________
## S.E. type                                                                      IID
## Observations                                                                   102
## R2                                                                         0.19025
## Adj. R2                                                                    0.13911
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

In the regression model examining the likelihood of having coethnic rebel groups, polity2 is significantly positively associated with the outcome, suggesting more democratic regimes increase this likelihood. duration_year also significantly increases the likelihood, indicating longer durations are associated with higher probabilities. The other variables, including state_strength, rebel_strength_nachiket_scaled, and the interaction term, are not statistically significant. The model explains about 19% of the variability in the dependent variable, with the adjusted R² indicating a modest fit.

2.1.3 Third Model

Fixed Effects Ordinary Least Square Models with Clustered errors at the Country/government level

## OLS estimation, Dep. Var.: coethnic_rebel_pgm_nachiket_binary
## Observations: 102
## Fixed-effects: government: 23
## Standard-errors: Clustered (government) 
##                                 Estimate Std. Error   t value Pr(>|t|)    
## polity2                         0.016808   0.011962  1.405152 0.173940    
## Level_of_Threat                -0.231344   0.094563 -2.446442 0.022883 *  
## state_strength                 -0.165242   0.127579 -1.295207 0.208676    
## rebel_strength_nachiket_scaled -0.146684   0.088611 -1.655377 0.112045    
## duration_year                   0.002196   0.008845  0.248262 0.806234    
## ... 1 variable was removed because of collinearity (ethpol)
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 0.277739     Adj. R2: 0.459072
##                  Within R2: 0.067013
##                                      model_coethnicity_nachiket_3
## Dependent Var.:                coethnic_rebel_pgm_nachiket_binary
##                                                                  
## polity2                                           0.0168 (0.0120)
## Level_of_Threat                                 -0.2313* (0.0946)
## state_strength                                   -0.1652 (0.1276)
## rebel_strength_nachiket_scaled                   -0.1467 (0.0886)
## duration_year                                     0.0022 (0.0088)
## Fixed-Effects:                     ------------------------------
## government                                                    Yes
## ______________________________     ______________________________
## S.E.: Clustered                                    by: government
## Observations                                                  102
## R2                                                        0.60368
## Within R2                                                 0.06701
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

In this regression model, Level_of_Threat significantly decreases the likelihood of having coethnic rebel groups, with a coefficient of -0.2313, indicating that higher perceived threats reduce this likelihood. The other variables, including polity2, state_strength, rebel_strength_nachiket_scaled, and duration_year, do not show statistically significant effects. The model includes fixed effects for government, clustering standard errors by government, and has an R² of 0.60368, reflecting a strong overall fit, though the within R² of 0.06701 suggests limited explanatory nature of the model within individual governments (countries).

2.1.4 Fourth Model

Same as the Second model but with FE and clustered errors Level of threat removed because we wish to capture the synergistic effects of interaction term

## OLS estimation, Dep. Var.: coethnic_rebel_pgm_nachiket_binary
## Observations: 102
## Fixed-effects: government: 23
## Standard-errors: Clustered (government) 
##                                                Estimate Std. Error   t value
## polity2                                        0.004994   0.010636  0.469485
## state_strength                                 0.297087   0.097346  3.051878
## rebel_strength_nachiket_scaled                 0.002485   0.125584  0.019785
## duration_year                                  0.005267   0.008815  0.597503
## state_strength:rebel_strength_nachiket_scaled -0.268117   0.058357 -4.594386
##                                                 Pr(>|t|)    
## polity2                                       0.64334301    
## state_strength                                0.00584594 ** 
## rebel_strength_nachiket_scaled                0.98439334    
## duration_year                                 0.55627235    
## state_strength:rebel_strength_nachiket_scaled 0.00014127 ***
## ... 1 variable was removed because of collinearity (ethpol)
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 0.273929     Adj. R2: 0.473812
##                  Within R2: 0.092436
##                                                       model_coethnicity_nachiket_4
## Dependent Var.:                                 coethnic_rebel_pgm_nachiket_binary
##                                                                                   
## polity2                                                            0.0050 (0.0106)
## state_strength                                                   0.2971** (0.0974)
## rebel_strength_nachiket_scaled                                     0.0025 (0.1256)
## duration_year                                                      0.0053 (0.0088)
## state_strength x rebel_strength_nachiket_scaled                -0.2681*** (0.0584)
## Fixed-Effects:                                      ------------------------------
## government                                                                     Yes
## ________________________________________            ______________________________
## S.E.: Clustered                                                     by: government
## Observations                                                                   102
## R2                                                                         0.61448
## Within R2                                                                  0.09244
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

In this model, state_strength is positively associated with the likelihood of having coethnic rebel groups, with a coefficient of 0.2971, suggesting stronger states increase this likelihood. The interaction term between state_strength and rebel_strength_nachiket_scaled is significantly negative (-0.2681), indicating that the combined effect of these two variables reduces the likelihood of coethnic rebel groups. Other vars polity2, rebel_strength_nachiket_scaled, and duration_year, do not have significant effects. The model includes fixed effects for government and clustered standard errors by government, has an R² of 0.61448, showing a strong fit, but a within R² of 0.09244 indicates limited explanatory power at the country level

2.1.5 Fifth Model

Additional Controls FEOLS

Adding Three Variables and Removing State Strength due to possibility of Multicollinearity adn adding outcome binary

## OLS estimation, Dep. Var.: coethnic_rebel_pgm_nachiket_binary
## Observations: 89
## Fixed-effects: government: 22
## Standard-errors: Clustered (government) 
##                                    Estimate Std. Error   t value Pr(>|t|) 
## polity2                           -0.029230   0.024016 -1.217109  0.23706 
## gdpcapita_imputed_entire          -0.089850   0.231036 -0.388902  0.70126 
## lmilper_imputed_entire            -0.017949   0.126140 -0.142291  0.88821 
## ltroopratio_imputed_entire         0.067503   0.068694  0.982661  0.33696 
## rebel_strength_nachiket_scaled    -0.039067   0.135146 -0.289068  0.77536 
## duration_year                     -0.005981   0.006377 -0.937894  0.35896 
## outcome_binary_rebel_victory_kaur -0.233912   0.253693 -0.922027  0.36699 
## ... 1 variable was removed because of collinearity (ethpol)
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 0.22091     Adj. R2: 0.589169
##                 Within R2: 0.039562
##                                         model_coethnicity_nachiket_5
## Dependent Var.:                   coethnic_rebel_pgm_nachiket_binary
##                                                                     
## polity2                                             -0.0292 (0.0240)
## gdpcapita_imputed_entire                            -0.0898 (0.2310)
## lmilper_imputed_entire                              -0.0180 (0.1261)
## ltroopratio_imputed_entire                           0.0675 (0.0687)
## rebel_strength_nachiket_scaled                      -0.0391 (0.1351)
## duration_year                                       -0.0060 (0.0064)
## outcome_binary_rebel_victory_kaur                   -0.2339 (0.2537)
## Fixed-Effects:                        ------------------------------
## government                                                       Yes
## _________________________________     ______________________________
## S.E.: Clustered                                       by: government
## Observations                                                      89
## R2                                                           0.71989
## Within R2                                                    0.03956
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Model has a lot of explanatory power (72%) but nothing is significant.

2.2 Regression for Coethnicity DK as DV

2.2.1 First Model

Simple Linear Model with no fixed effects

##                                model_coethnicity_..1
## Dependent Var.:                coethnic_rebel_pgm_dk
##                                                     
## Constant                            0.5102. (0.3044)
## polity2                             0.0152. (0.0089)
## Level_of_Threat                      0.0031 (0.1233)
## state_strength                     -0.1035. (0.0543)
## rebel_strength_nachiket_scaled      -0.0753 (0.0865)
## duration_year                       0.0061. (0.0033)
## ethpol                               0.0132 (0.2569)
## ______________________________ _____________________
## S.E. type                                        IID
## Observations                                      84
## R2                                           0.11188
## Adj. R2                                      0.04267
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Model has low explanatory power and is also insignificant for everything (Mostly due to missingness in the DV)

2.2.2 Second Model

Simple Model with Interaction Term Removing level of threat because interaction term is there (for synergistic effect)

##                                                 model_coethnicity_..2
## Dependent Var.:                                 coethnic_rebel_pgm_dk
##                                                                      
## Constant                                             0.6108* (0.2827)
## polity2                                              0.0149. (0.0083)
## state_strength                                      -0.1444. (0.0777)
## rebel_strength_nachiket_scaled                       -0.1256 (0.1016)
## duration_year                                        0.0058. (0.0032)
## ethpol                                               -0.0436 (0.2700)
## state_strength x rebel_strength_nachiket_scaled       0.0367 (0.0594)
## ________________________________________        _____________________
## S.E. type                                                         IID
## Observations                                                       84
## R2                                                            0.11626
## Adj. R2                                                       0.04739
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Nothing significant at the conventional level

2.2.3 Third Model

Fixed Effects Ordinary Least Square Models with Clustered errors at the Country/government level

##                                model_coethnicity_..3
## Dependent Var.:                coethnic_rebel_pgm_dk
##                                                     
## polity2                              0.0084 (0.0212)
## Level_of_Threat                     -0.1444 (0.1961)
## state_strength                      -0.2553 (0.2044)
## rebel_strength_nachiket_scaled      -0.1613 (0.1176)
## duration_year                       -0.0026 (0.0087)
## Fixed-Effects:                 ---------------------
## government                                       Yes
## ______________________________ _____________________
## S.E.: Clustered                       by: government
## Observations                                      84
## R2                                           0.48717
## Within R2                                    0.06940
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Model explains almost 48 percent of the variance in the DV but nothing is significant

2.2.4 Fourth Model

Same as the Second model but with FE and clustered errors Level of threat removed because we wish to capture the synergistic effects of interaction term

##                                                 model_coethnicity_..4
## Dependent Var.:                                 coethnic_rebel_pgm_dk
##                                                                      
## polity2                                               0.0030 (0.0199)
## state_strength                                       -0.1364 (0.2402)
## rebel_strength_nachiket_scaled                       -0.1685 (0.1132)
## duration_year                                        -0.0017 (0.0084)
## state_strength x rebel_strength_nachiket_scaled      -0.0428 (0.1218)
## Fixed-Effects:                                  ---------------------
## government                                                        Yes
## ________________________________________        _____________________
## S.E.: Clustered                                        by: government
## Observations                                                       84
## R2                                                            0.48265
## Within R2                                                     0.06121
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Nothing significant in this model too

2.2.5 Fifth Model

Additional Controls FEOLS

Adding Three Variables and Removing State Strength due to possibility of Multicollinearity and adding outcome binary

##                                   model_coethnicity_..5
## Dependent Var.:                   coethnic_rebel_pgm_dk
##                                                        
## polity2                               -0.0875* (0.0358)
## gdpcapita_imputed_entire               -0.3673 (0.4122)
## lmilper_imputed_entire                  0.1657 (0.1937)
## ltroopratio_imputed_entire              0.1690 (0.1131)
## rebel_strength_nachiket_scaled          0.1764 (0.2216)
## duration_year                        -0.0134** (0.0044)
## outcome_binary_rebel_victory_kaur      -0.7411 (0.4345)
## Fixed-Effects:                    ---------------------
## government                                          Yes
## _________________________________ _____________________
## S.E.: Clustered                          by: government
## Observations                                         74
## R2                                              0.62976
## Within R2                                       0.18537
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

In this model, several key variables impact the likelihood of coethnic rebel group formation. Polity2 has a significant negative effect, with a coefficient of -0.0903, indicating that more democratic regimes are associated with a lower likelihood of coethnic rebel groups. Conversely, gdpcapita_imputed_entire shows a significant positive effect, suggesting that higher per capita GDP increases the likelihood of these groups. ltroopratio_imputed_entire also significantly increases the likelihood of coethnic rebel groups, with a coefficient of 0.0852, indicating that a higher troop ratio is associated with a greater probability of coethnic rebel groups. The duration_year variable has a significant negative effect, suggesting that longer conflicts are associated with a reduced likelihood of coethnic rebel groups. Outcome_binary_rebel_victory_kaur significantly decreases the likelihood of coethnic rebel groups, implying that rebel victories are linked to a lower probability of such groups. Other variables, including lmilper_imputed_entire and rebel_strength_nachiket_scaled, do not show significant effects. The model, which includes fixed effects for government and clustered standard errors, has an R² of 0.64615, indicating a strong overall fit, though the within R² of 0.22379 reflects limited strength of the model at within individual countries level.

2.3 Regression for Outcome DK binary (DK Rebel Victory Binary) as DV

2.3.1 First Model

Simple Linear Model with no fixed effects (Coethnicity Nachiket as BINARY)

##                                            model_outcome_binary_dk_1
## Dependent Var.:                    outcome_binary_rebel_victory_kaur
##                                                                     
## Constant                                           -0.7606. (0.4155)
## coethnic_rebel_pgm_nachiket_binary                  -0.0185 (0.1276)
## Level_of_Threat                                      0.1921 (0.1645)
## polity2                                          -0.0540*** (0.0127)
## state_strength                                      0.1711* (0.0790)
## rebel_strength_nachiket_scaled                       0.0520 (0.1149)
## duration_year                                       -0.0080 (0.0052)
## ethpol                                              0.7289* (0.3574)
## __________________________________    ______________________________
## S.E. type                                                        IID
## Observations                                                      89
## R2                                                           0.28963
## Adj. R2                                                      0.22824
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

In this regression model examining the factors influencing rebel victory outcomes, polity2 shows a significant negative effect, with a coefficient of -0.0540, indicating that more democratic regimes are less likely to experience rebel victories. State_strength has a positive and significant impact, with a coefficient of 0.1711, suggesting that stronger states are more susceptible to rebel victories. Ethpol also plays a significant role, with a coefficient of 0.7289, implying that higher levels of ethnic polarization increase the likelihood of rebel victories. Other variables, such as coethnic_rebel_pgm_nachiket_binary, Level_of_Threat, rebel_strength_nachiket_scaled, and duration_year, do not show statistically significant effects on the outcome. The model explains approximately 29% of the variance in rebel victories (R² = 0.28963), with an adjusted R² of 0.22824, indicating a modest fit.

2.3.2 Second Model

Simple Linear Model with no fixed effects (Coethnicity Nachiket as NON BINARY)

##                                        model_outcome_binary_dk_2
## Dependent Var.:                outcome_binary_rebel_victory_kaur
##                                                                 
## Constant                                       -0.7772. (0.4058)
## coethnic_rebel_pgm_nachiket                      0.0097 (0.1450)
## Level_of_Threat                                  0.1926 (0.1646)
## polity2                                      -0.0550*** (0.0127)
## state_strength                                  0.1749* (0.0771)
## rebel_strength_nachiket_scaled                   0.0558 (0.1155)
## duration_year                                   -0.0083 (0.0052)
## ethpol                                          0.7220* (0.3598)
## ______________________________    ______________________________
## S.E. type                                                    IID
## Observations                                                  89
## R2                                                       0.28949
## Adj. R2                                                  0.22809
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

In this model exploring the determinants of rebel victories, polity2 is significantly associated with a reduced likelihood of rebel victories, as indicated by a coefficient of -0.0550. This suggests that more democratic regimes are less prone to rebel victories. The variable state_strength shows a positive and significant relationship, with a coefficient of 0.1749, implying that stronger states tend to see more rebel victories. Additionally, ethpol is positively associated with rebel victories, with a coefficient of 0.7220, indicating that higher ethnic polarization increases the probability of such outcomes. However, other variables, including coethnic_rebel_pgm_nachiket, Level_of_Threat, rebel_strength_nachiket_scaled, and duration_year, do not have significant effects. The model explains around 29% of the variance in the dependent variable (R² = 0.28949), with an adjusted R² of 0.22809, reflecting a moderate model fit.

2.3.3 Third Model

Simple Model with Interaction Term. Removing level of threat because interaction term is there (for synergistic effect). (Coethnicity Nachiket as BINARY)

##                                                         model_outcome_binary_dk_3
## Dependent Var.:                                 outcome_binary_rebel_victory_kaur
##                                                                                  
## Constant                                                         -0.0747 (0.3580)
## coethnic_rebel_pgm_nachiket_binary                               9.26e-5 (0.1260)
## polity2                                                       -0.0505*** (0.0117)
## state_strength                                                   -0.0541 (0.1013)
## rebel_strength_nachiket_scaled                                   -0.0730 (0.1343)
## duration_year                                                   -0.0109* (0.0052)
## ethpol                                                           0.6144. (0.3578)
## state_strength x rebel_strength_nachiket_scaled                  0.1594* (0.0781)
## ________________________________________           ______________________________
## S.E. type                                                                     IID
## Observations                                                                   89
## R2                                                                        0.31304
## Adj. R2                                                                   0.25367
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

In this model investigating the factors influencing rebel victories, polity2 continues to show a significant negative relationship, with a coefficient of -0.0505, indicating that more democratic regimes are less likely to see rebel victories. The interaction between state_strength and rebel_strength_nachiket_scaled is significant and positive (coefficient: 0.1594), suggesting that the combined effect of state and rebel strength increases the likelihood of a rebel victory. Duration_year also has a significant negative impact, with a coefficient of -0.0109, implying that longer conflicts are associated with a reduced probability of rebel success. While ethpol is marginally significant (coefficient: 0.6144), indicating a potential increase in the likelihood of rebel victories with higher ethnic polarization, other variables such as coethnic_rebel_pgm_nachiket_binary, state_strength, and rebel_strength_nachiket_scaled do not show significant effects. The model explains approximately 31% of the variance in rebel victory outcomes (R² = 0.31304), with an adjusted R² of 0.25367, indicating a moderate fit.

2.3.4 Fourth Model

Simple Model with Interaction Term. Removing level of threat because interaction term is there (for synergistic effect). (Coethnicity Nachiket as NON-BINARY)

##                                                         model_outcome_binary_dk_4
## Dependent Var.:                                 outcome_binary_rebel_victory_kaur
##                                                                                  
## Constant                                                         -0.0853 (0.3525)
## coethnic_rebel_pgm_nachiket                                       0.0535 (0.1432)
## polity2                                                       -0.0524*** (0.0118)
## state_strength                                                   -0.0527 (0.1008)
## rebel_strength_nachiket_scaled                                   -0.0717 (0.1339)
## duration_year                                                   -0.0115* (0.0052)
## ethpol                                                            0.5910 (0.3615)
## state_strength x rebel_strength_nachiket_scaled                  0.1629* (0.0782)
## ________________________________________           ______________________________
## S.E. type                                                                     IID
## Observations                                                                   89
## R2                                                                        0.31422
## Adj. R2                                                                   0.25496
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

In this model, we’re looking at the factors that might influence whether a rebel group wins a conflict. One clear finding is that more democratic countries (polity2), with a coefficient of -0.0524, are less likely to experience rebel victories. The model also suggests that longer conflicts tend to be less favorable for rebels, as indicated by the negative effect of duration_year (-0.0115).

Interestingly, the interaction between state strength and rebel strength (state_strength x rebel_strength_nachiket_scaled) is significant, with a positive coefficient of 0.1629. This suggests that when both the state and rebel groups are strong, the chances of a rebel victory increase. However, other factors, like whether the rebel group is coethnic (coethnic_rebel_pgm_nachiket) or the overall strength of the state and rebel forces on their own, don’t seem to play a decisive role in determining the outcome. The model explains about 31% of the variability in whether rebels win or lose, which tells us it captures some of the key dynamics at play, but there’s still a lot more to understand.

2.3.5 Fifth Model

Fixed Effects Ordinary Least Square Models with Clustered errors at the Country/government level. Coethnic Nachiket (BINARY)

##                                            model_outcome_binary_dk_5
## Dependent Var.:                    outcome_binary_rebel_victory_kaur
##                                                                     
## coethnic_rebel_pgm_nachiket_binary                   0.0301 (0.0190)
## polity2                                          -0.0780*** (0.0106)
## Level_of_Threat                                   0.9861*** (0.1337)
## state_strength                                       0.0832 (0.1075)
## rebel_strength_nachiket_scaled                       0.1576 (0.1551)
## duration_year                                        0.0029 (0.0032)
## Fixed-Effects:                        ------------------------------
## government                                                       Yes
## __________________________________    ______________________________
## S.E.: Clustered                                       by: government
## Observations                                                      89
## R2                                                           0.98464
## Within R2                                                    0.90214
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

The negative coefficient for polity2 (-0.0780) indicates that as a regime becomes more democratic, the likelihood of a rebel victory diminishes significantly. On the flip side, Level_of_Threat emerges as a crucial factor, with a strong positive coefficient (0.9861), suggesting that higher perceived threats correlate with a greater chance of a rebel victory.

Other variables, such as coethnic_rebel_pgm_nachiket_binary, state_strength, and rebel_strength_nachiket_scaled, don’t show significant impacts in this model. These factors, while part of the equation, aren’t the key drivers of whether rebels succeed or fail. The model’s high R² (0.98464) indicates it explains almost all of the variance in rebel victory outcomes, implying it captures the primary influences, though there could be more nuanced factors at play that aren’t fully accounted for.

2.3.6 Sixth Model

Fixed Effects Ordinary Least Square Models with Clustered errors at the Country/government level. Coethnic Nachiket (NON BINARY)

##                                        model_outcome_binary_dk_6
## Dependent Var.:                outcome_binary_rebel_victory_kaur
##                                                                 
## coethnic_rebel_pgm_nachiket                      0.0312 (0.0191)
## polity2                                      -0.0780*** (0.0106)
## Level_of_Threat                               0.9864*** (0.1335)
## state_strength                                   0.0833 (0.1075)
## rebel_strength_nachiket_scaled                   0.1577 (0.1551)
## duration_year                                    0.0029 (0.0032)
## Fixed-Effects:                    ------------------------------
## government                                                   Yes
## ______________________________    ______________________________
## S.E.: Clustered                                   by: government
## Observations                                                  89
## R2                                                       0.98465
## Within R2                                                0.90217
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

this model points us toward some compelling dynamics in the realm of rebel victories. Notably, the democracy level (polity2) plays a significant role, with a sharp decrease in the likelihood of a rebel win as democratic traits rise, evidenced by a coefficient of -0.0780. Conversely, the level of threat faced by a regime (Level_of_Threat) is a powerful predictor of rebel success, with a robust positive effect (0.9864), suggesting that higher threats considerably tilt the odds in favor of the rebels.

Other factors, like whether the rebels are coethnic (coethnic_rebel_pgm_nachiket), the strength of the state, and the strength of the rebels themselves, appear less influential in this particular model. Although they contribute to the broader picture, they don’t seem to carry as much weight in determining the outcome. The near-perfect R² value (0.98465) signals that this model captures most of the variability in whether a rebellion ends in victory, although the nuances of conflict outcomes likely extend beyond what’s quantified here.

2.3.7 Seventh Model

Same as the Third and Fourth models but with FE and clustered errors Coethnic NACHIKET (BINARY) Level of threat removed because we wish to capture the synergistic effects of interaction term

##                                                         model_outcome_binary_dk_7
## Dependent Var.:                                 outcome_binary_rebel_victory_kaur
##                                                                                  
## coethnic_rebel_pgm_nachiket_binary                               -0.0413 (0.0380)
## polity2                                                        -0.0686** (0.0185)
## state_strength                                                   -0.5449 (0.3750)
## rebel_strength_nachiket_scaled                                    0.0182 (0.1788)
## duration_year                                                    -0.0067 (0.0090)
## state_strength x rebel_strength_nachiket_scaled                   0.3647 (0.2881)
## Fixed-Effects:                                     ------------------------------
## government                                                                    Yes
## ________________________________________           ______________________________
## S.E.: Clustered                                                    by: government
## Observations                                                                   89
## R2                                                                        0.95172
## Within R2                                                                 0.69233
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

First off, the democracy measure (polity2) shows that more democratic regimes are significantly less likely to experience a rebel victory, with a negative coefficient of -0.0686. This suggests that as a country leans more democratic, the odds of rebels winning diminish, which makes sense given the broader participation and institutional checks in such systems.

Interestingly, state_strength and its interaction with rebel_strength_nachiket_scaled don’t come through as significant. The negative coefficient on state_strength (-0.5449) hints that stronger states might be less vulnerable to rebel victories, but the lack of significance suggests there’s more complexity at play. Meanwhile, the interaction term, though positive (0.3647), also falls short of significance, implying that the combined effect of state and rebel strength might not be as straightforward as one might expect.

The model’s high R² (0.95172) tells us it does a solid job of explaining the variation in rebel victory outcomes, but the absence of strong significance in most variables suggests there are underlying dynamics that aren’t fully captured here. The results leave us pondering the nuanced factors that contribute to a rebel victory, beyond just the observable metrics.

2.3.8 Eighth Model

Same as the Third and Fourth models but with FE and clustered errors Coethnic NACHIKET (NON-BINARY) Level of threat removed because we wish to capture the synergistic effects of interaction term

##                                                         model_outcome_binary_dk_8
## Dependent Var.:                                 outcome_binary_rebel_victory_kaur
##                                                                                  
## coethnic_rebel_pgm_nachiket                                      -0.0427 (0.0386)
## polity2                                                        -0.0687** (0.0185)
## state_strength                                                   -0.5449 (0.3750)
## rebel_strength_nachiket_scaled                                    0.0180 (0.1787)
## duration_year                                                    -0.0067 (0.0090)
## state_strength x rebel_strength_nachiket_scaled                   0.3647 (0.2881)
## Fixed-Effects:                                     ------------------------------
## government                                                                    Yes
## ________________________________________           ______________________________
## S.E.: Clustered                                                    by: government
## Observations                                                                   89
## R2                                                                        0.95173
## Within R2                                                                 0.69241
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

The polity2 variable is notably significant, indicating that as a nation becomes more democratic, the likelihood of a rebel victory decreases, with a coefficient of -0.0687. This finding aligns with the idea that democratic institutions, with their capacity for broader inclusion and conflict resolution, create environments less conducive to rebel success.

However, other factors, such as state_strength and its interaction with rebel_strength_nachiket_scaled, do not exhibit statistical significance.

The high R² value (0.95173) underscores the model’s strong explanatory power, but the mixed significance of variables invites a more cautious interpretation. The results hint at the intricate and multifaceted nature of rebel victories, suggesting that while democratic robustness plays a clear role, other factors are deeply intertwined, possibly requiring a more granular analysis to fully understand their impacts.

2.3.9 Ninth Model

Additional Controls FEOLS with Coethnic Nachiket (Binary)

Adding Three Variables and Removing State Strength due to possibility of Multicollinearity and adding individual predictors of state strength

##                                            model_outcome_binary_dk_9
## Dependent Var.:                    outcome_binary_rebel_victory_kaur
##                                                                     
## coethnic_rebel_pgm_nachiket_binary                  -0.0142 (0.0197)
## polity2                                          -0.0904*** (0.0068)
## gdpcapita_imputed_entire                          -1.015*** (0.1193)
## lmilper_imputed_entire                              0.5779* (0.2740)
## ltroopratio_imputed_entire                        0.2878*** (0.0750)
## rebel_strength_nachiket_scaled                    0.6989*** (0.1719)
## duration_year                                        0.0061 (0.0040)
## Fixed-Effects:                        ------------------------------
## government                                                       Yes
## __________________________________    ______________________________
## S.E.: Clustered                                       by: government
## Observations                                                      89
## R2                                                           0.98803
## Within R2                                                    0.92373
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

The polity2 variable is significantly negative (-0.0904), indicating that higher levels of democracy reduce the chances of rebel success. Economic strength, measured by gdpcapita_imputed_entire, also significantly decreases the likelihood of a rebel victory with a coefficient of -1.015.

On the other hand, military personnel (lmilper_imputed_entire) and troop ratio (ltroopratio_imputed_entire) positively influence the chances of a rebel victory, with significant coefficients of 0.5779 and 0.2878, respectively. The rebel_strength_nachiket_scaled variable is also significantly positive (0.6989), suggesting that stronger rebel groups are more likely to win.

Overall, this model indicates that while stronger democracies and economies are less prone to rebel victories, factors such as military strength and the rebels’ own power play crucial roles in determining the outcome of conflicts.

2.3.10 Tenth Model

Additional Controls FEOLS with Coethnic Nachiket (Non-Binary)

Adding Three Variables and Removing State Strength due to possibility of Multi-collinearity and adding individual predictors of state strength

##                                       model_outcome_binary_dk_10
## Dependent Var.:                outcome_binary_rebel_victory_kaur
##                                                                 
## coethnic_rebel_pgm_nachiket                     -0.0147 (0.0203)
## polity2                                      -0.0904*** (0.0068)
## gdpcapita_imputed_entire                      -1.015*** (0.1193)
## lmilper_imputed_entire                          0.5779* (0.2739)
## ltroopratio_imputed_entire                    0.2878*** (0.0749)
## rebel_strength_nachiket_scaled                0.6988*** (0.1719)
## duration_year                                    0.0061 (0.0040)
## Fixed-Effects:                    ------------------------------
## government                                                   Yes
## ______________________________    ______________________________
## S.E.: Clustered                                   by: government
## Observations                                                  89
## R2                                                       0.98803
## Within R2                                                0.92374
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

In this model, higher democracy (polity2) and GDP per capita significantly reduce the likelihood of a rebel victory, with coefficients of -0.0904 and -1.015, respectively. Conversely, increased military personnel and troop ratios positively influence rebel success. Rebel strength also strongly boosts the chances of victory, reflected in a significant coefficient of 0.6988.

2.4 Some More Models for Outcome variable (Binary and Non-Binary)

2.4.1 Univariate Models for: Conflict outcome (binary and non-binary) ~ Coethnicity (binary and non-binary)

Univariate Model For Outcome (Binary) and Coethnicity Nachiket (Binary)–Model1; Univariate Model For Outcome (Binary) and Coethnicity Nachiket (Non Binary)Model 2; Univariate Model For Outcome (Non-Binary) and Coethnicity Nachiket (Non Binary)–Model 3; Univariate Model For Outcome (Non Binary) and Coethnicity Nachiket (Binary)

##                                                                  One
## Dependent Var.:                    outcome_binary_rebel_victory_kaur
##                                                                     
## coethnic_rebel_pgm_nachiket_binary                  -0.0642 (0.0636)
## coethnic_rebel_pgm_nachiket                                         
## Fixed-Effects:                        ------------------------------
## government                                                       Yes
## __________________________________    ______________________________
## S.E.: Clustered                                       by: government
## Observations                                                     101
## R2                                                           0.86396
## Within R2                                                    0.00620
## 
##                                                                  Two
## Dependent Var.:                    outcome_binary_rebel_victory_kaur
##                                                                     
## coethnic_rebel_pgm_nachiket_binary                                  
## coethnic_rebel_pgm_nachiket                         -0.0661 (0.0649)
## Fixed-Effects:                        ------------------------------
## government                                                       Yes
## __________________________________    ______________________________
## S.E.: Clustered                                       by: government
## Observations                                                     101
## R2                                                           0.86398
## Within R2                                                    0.00637
## 
##                                              Three            Four
## Dependent Var.:                            outcome         outcome
##                                                                   
## coethnic_rebel_pgm_nachiket_binary                 0.3124 (0.2580)
## coethnic_rebel_pgm_nachiket        0.1582 (0.2607)                
## Fixed-Effects:                     --------------- ---------------
## government                                     Yes             Yes
## __________________________________ _______________ _______________
## S.E.: Clustered                     by: government  by: government
## Observations                                    94              94
## R2                                         0.58992         0.59772
## Within R2                                  0.00601         0.02491
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

2.4.2 THREE CONTROLS Multivariate Models for: ⁠Conflict outcome (binary and non-binary) ~ Coethnicity (binary and non-binary) + gdp + polity + duration

Multivariate Model For Outcome (Binary) and Coethnicity Nachiket (Binary)+ gdp + polity + duration –Model1; Multivariate Model For Outcome (Binary) and Coethnicity Nachiket (Non Binary) + gdp + polity + duration Model 2; Multivariate Model For Outcome (Non-Binary) and Coethnicity Nachiket (Non Binary) + gdp + polity + duration –Model 3; Multivariate Model For Outcome (Non Binary) and Coethnicity Nachiket (Binary) + gdp + polity + duration –Model 4

##                                                                  One
## Dependent Var.:                    outcome_binary_rebel_victory_kaur
##                                                                     
## coethnic_rebel_pgm_nachiket_binary                  -0.0887 (0.0693)
## gdpcapita_imputed_entire                            -0.2400 (0.2518)
## polity2                                          -0.0818*** (0.0113)
## duration_year                                       -0.0047 (0.0073)
## coethnic_rebel_pgm_nachiket                                         
## Fixed-Effects:                        ------------------------------
## government                                                       Yes
## __________________________________    ______________________________
## S.E.: Clustered                                       by: government
## Observations                                                      99
## R2                                                           0.94123
## Within R2                                                    0.57916
## 
##                                                                  Two
## Dependent Var.:                    outcome_binary_rebel_victory_kaur
##                                                                     
## coethnic_rebel_pgm_nachiket_binary                                  
## gdpcapita_imputed_entire                            -0.2406 (0.2516)
## polity2                                          -0.0818*** (0.0113)
## duration_year                                       -0.0047 (0.0073)
## coethnic_rebel_pgm_nachiket                         -0.0914 (0.0703)
## Fixed-Effects:                        ------------------------------
## government                                                       Yes
## __________________________________    ______________________________
## S.E.: Clustered                                       by: government
## Observations                                                      99
## R2                                                           0.94127
## Within R2                                                    0.57950
## 
##                                               Three             Four
## Dependent Var.:                             outcome          outcome
##                                                                     
## coethnic_rebel_pgm_nachiket_binary                   0.3225 (0.2672)
## gdpcapita_imputed_entire            0.2982 (0.7059)  0.3091 (0.7300)
## polity2                             0.0253 (0.0160)  0.0235 (0.0169)
## duration_year                      -0.0048 (0.0142) -0.0061 (0.0149)
## coethnic_rebel_pgm_nachiket         0.1688 (0.2723)                 
## Fixed-Effects:                     ---------------- ----------------
## government                                      Yes              Yes
## __________________________________ ________________ ________________
## S.E.: Clustered                      by: government   by: government
## Observations                                     93               93
## R2                                          0.58998          0.59816
## Within R2                                   0.02324          0.04274
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

2.4.3 FOUR CONTROLS Multivariate Models for: ⁠Conflict outcome (binary and non-binary) ~ Coethnicity (binary and non-binary) + gdp + polity + duration + ethpol

Multivariate Model For Outcome (Binary) and Coethnicity Nachiket (Binary)+ gdp + polity + duration + ethpol –Model1; Multivariate Model For Outcome (Binary) and Coethnicity Nachiket (Non Binary) + gdp + polity + duration + ethpol Model 2; Multivariate Model For Outcome (Non-Binary) and Coethnicity Nachiket (Non Binary) + gdp + polity + duration + ethpol –Model 3; Multivariate Model For Outcome (Non Binary) and Coethnicity Nachiket (Binary) + gdp + polity + duration + ethpol –Model 4

##                                                                  One
## Dependent Var.:                    outcome_binary_rebel_victory_kaur
##                                                                     
## coethnic_rebel_pgm_nachiket_binary                  -0.0773 (0.0771)
## gdpcapita_imputed_entire                            -0.5788 (0.3531)
## polity2                                          -0.0780*** (0.0106)
## duration_year                                       -0.0013 (0.0071)
## coethnic_rebel_pgm_nachiket                                         
## Fixed-Effects:                        ------------------------------
## government                                                       Yes
## __________________________________    ______________________________
## S.E.: Clustered                                       by: government
## Observations                                                      89
## R2                                                           0.93984
## Within R2                                                    0.61663
## 
##                                                                  Two
## Dependent Var.:                    outcome_binary_rebel_victory_kaur
##                                                                     
## coethnic_rebel_pgm_nachiket_binary                                  
## gdpcapita_imputed_entire                            -0.5788 (0.3531)
## polity2                                          -0.0780*** (0.0106)
## duration_year                                       -0.0014 (0.0071)
## coethnic_rebel_pgm_nachiket                         -0.0799 (0.0787)
## Fixed-Effects:                        ------------------------------
## government                                                       Yes
## __________________________________    ______________________________
## S.E.: Clustered                                       by: government
## Observations                                                      89
## R2                                                           0.93988
## Within R2                                                    0.61689
## 
##                                                Three              Four
## Dependent Var.:                              outcome           outcome
##                                                                       
## coethnic_rebel_pgm_nachiket_binary                     0.3950 (0.2695)
## gdpcapita_imputed_entire           -1.096** (0.3082) -1.170** (0.3633)
## polity2                             0.0404* (0.0172)  0.0393* (0.0177)
## duration_year                        0.0090 (0.0138)   0.0084 (0.0142)
## coethnic_rebel_pgm_nachiket          0.2117 (0.2808)                  
## Fixed-Effects:                     ----------------- -----------------
## government                                       Yes               Yes
## __________________________________ _________________ _________________
## S.E.: Clustered                       by: government    by: government
## Observations                                      84                84
## R2                                           0.63004           0.64194
## Within R2                                    0.06071           0.09093
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## GLM estimation, family = gaussian, Dep. Var.: outcome
## Observations: 72
## Fixed-effects: government: 22
## Standard-errors: Clustered (government) 
##                              Estimate Std. Error    t value   Pr(>|t|)    
## polity2                      7.570103   0.466538  16.226107 2.3426e-13 ***
## gdpcapita_imputed_entire    -1.341202   0.124163 -10.801939 4.9358e-10 ***
## rebstrength_adam_nsa       -36.070932   2.036139 -17.715360 4.1789e-14 ***
## lmilper_imputed_entire      92.505874   5.376391  17.205944 7.4260e-14 ***
## ltroopratio_imputed_entire -19.291856   0.833417 -23.147891  < 2.2e-16 ***
## duration_year               -0.006292   0.007625  -0.825145 4.1856e-01    
## logbdeath                    3.379618   0.190238  17.765188 3.9535e-14 ***
## state_strength             -79.813594   5.440022 -14.671557 1.6476e-12 ***
## Level_of_Threat             -0.309095   0.046480  -6.650064 1.3916e-06 ***
## ... 1 variable was removed because of collinearity (ethpol)
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Log-Likelihood: -48.4   Adj. Pseudo R2: 0.114655
##            BIC: 229.4     Squared Cor.: 0.672218
##                                  model_outcome
## Dependent Var.:                        outcome
##                                               
## polity2                      7.570*** (0.4665)
## gdpcapita_imputed_entire    -1.341*** (0.1242)
## rebstrength_adam_nsa         -36.07*** (2.036)
## lmilper_imputed_entire        92.51*** (5.376)
## ltroopratio_imputed_entire  -19.29*** (0.8334)
## duration_year                 -0.0063 (0.0076)
## logbdeath                    3.380*** (0.1902)
## state_strength               -79.81*** (5.440)
## Level_of_Threat            -0.3091*** (0.0465)
## Fixed-Effects:             -------------------
## government                                 Yes
## __________________________ ___________________
## S.E.: Clustered                 by: government
## Observations                                72
## Squared Cor.                           0.67222
## Pseudo R2                              0.45338
## BIC                                     229.40
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
LS0tCnRpdGxlOiAiQ2l2aWwgV2FycyBEYXRhc2V0IE1haW4gUlB1YiIKYXV0aG9yOiAiRHIuIERpcGluIEthdXIiCm91dHB1dDogCiAgaHRtbF9kb2N1bWVudDoKICAgIHRoZW1lOiBjb3NtbwogICAgaGlnaGxpZ2h0OiB0YW5nbwogICAgdG9jOiB0cnVlCiAgICB0b2NfZmxvYXQ6IHRydWUKICAgIGNvZGVfZm9sZGluZzogaGlkZQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQogICAgbnVtYmVyX3NlY3Rpb25zOiB0cnVlICAjIE51bWJlciBzZWN0aW9ucyBmb3IgdGhlIHRhYmxlIG9mIGNvbnRlbnRzCiAgICBmaWdfY2FwdGlvbjogdHJ1ZSAgICAgICMgRW5hYmxlIGZpZ3VyZSBjYXB0aW9ucwogICAgY3NzOiBzdHlsZXMuY3NzICAgICAgICAjIExpbmsgdG8gYSBjdXN0b20gQ1NTIGZpbGUgZm9yIHN0eWxpbmcKLS0tCgpgYGB7ciBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQojTG9hZGluZyBMaWJyYXJpZXMKbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkodGlkeXIpCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShrbml0cikKbGlicmFyeShrYWJsZUV4dHJhKQpsaWJyYXJ5KHNuYWtlY2FzZSkKbGlicmFyeShnZ3RoZW1lcykKbGlicmFyeShXREkpCmxpYnJhcnkoYmV0YXJlZykKbGlicmFyeShmb3JjYXRzKQpsaWJyYXJ5KHN0cmluZ2Rpc3QpCmxpYnJhcnkoZXhwc3MpCmxpYnJhcnkobGZlKQpsaWJyYXJ5KGRldnRvb2xzKQpsaWJyYXJ5KHpvbykKbGlicmFyeShzYW5kd2ljaCkKbGlicmFyeShwbG0pCmxpYnJhcnkoYnJvb20pCmxpYnJhcnkoc3RhcmdhemVyKQpsaWJyYXJ5KGphbml0b3IpCmxpYnJhcnkobW9kZWxzdW1tYXJ5KQpsaWJyYXJ5KHRyYW5zZm9ybXIpCmxpYnJhcnkoZ2dhbmltYXRlKQpsaWJyYXJ5KGdpZnNraSkKbGlicmFyeShhdikKbGlicmFyeShmbGV4dGFibGUpCmxpYnJhcnkoSVJkaXNwbGF5KQpsaWJyYXJ5KGdtb2RlbHMpCmxpYnJhcnkoZml4ZXN0KQpsaWJyYXJ5KGNhKQpsaWJyYXJ5KHN0YXJnYXplcikKbGlicmFyeSh0ZXhyZWcpCgpgYGAKCmBgYHtyIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CiMgTE9BRElORyBEQVRBU0VUUyBhbmQgbWFraW5nIG5ldyB2YXJpYWJsZXMKbWFpbl9jaXZpbHdhcnMgPC0gcmVhZC5jc3YoIi9Vc2Vycy9OYWNoaWtldC9GaWxlcyBGcm9tIGUubG9jYWxpemVkL1Byb2YgRGlwaW4gS2F1ciBSQSB3b3JrL0RhdGFzZXRzL0ZpbmFsX1VuaXZlcnNlX2Npdmlsd2Fycy5jc3YiKQoKbWFpbl9jaXZpbHdhcnMgPC0gbWFpbl9jaXZpbHdhcnMgJT4lIG11dGF0ZShkdXJhdGlvbl95ZWFyID0gZW5keXJfY29uZmxpY3QgLSBzdGFydHlyX2NvbmZsaWN0KQoKbWFpbl9jaXZpbHdhcnNfZXRobmljIDwtIG1haW5fY2l2aWx3YXJzICU+JSAKICBmaWx0ZXIoY29uZmxpY3RfZXRobmljID09IDEpCmBgYAoKYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KIyMgTWFraW5nIGEgU3RhdGUgU3RyZW5ndGggVmFyaWFibGUgYnkgU3RhbmRhcmRpc2luZyB0aGUgdGhyZWUgdmFyaWFibGVzIHRoYXQgd2UgYWxyZWFkeSBoYXZlICMjCgojIEZpcnN0IHdlIHJlcGxhY2UgTkFzIHdpdGggaW1wdXRlZCBtZWFucwoKIyMgVFJZIFdJVEggSU1QVVRBVElPTiBGUk9NIFRIRSBDT1VOVFJZIExFVkVMOiBUcmllZCBhbmQgdGhlIG5vdGUgaGVyZSBpcyB0aGF0IGhhZCB0byBiZSBkb25lIG1hbnVhbGx5IHRvb2sgYSBiaXQgb2YgdGltZSB3YXMgc3VjY2VzZnVsIGFuZCB0aGUgTkFzIHdlIHdlcmUgc3RpbGwgbGVmdCB3aXRoIHdlcmU6IDcgaW4gbG9ncGNnZHAsIDEwIGVhY2ggaW4gbG1pbHBlciBhbmQgbHRyb29wcmF0aW8gYW5kIHRoZW4gb25seSB0aGVzZSB3ZXJlIGluIHR1cm4gaW1wdXRlZCBmcm9tIG92ZXJhbGwgYXZlcmFnZXMuIHRoaXMgZm9yIHN1cmUgcmVkdWNlcyBkaXNjcmVwYW5jaWVzCgptYWluX2Npdmlsd2Fyc19ldGhuaWMgPC0gbWFpbl9jaXZpbHdhcnNfZXRobmljICU+JSAKICBtdXRhdGUoCiAgICBnZHBjYXBpdGFfaW1wdXRlZF9lbnRpcmUgPSBpZmVsc2UoaXMubmEobG9ncGNnZHApLCBtZWFuKGxvZ3BjZ2RwLCBuYS5ybSA9IFRSVUUpLCBsb2dwY2dkcCksCiAgICBsbWlscGVyX2ltcHV0ZWRfZW50aXJlID0gaWZlbHNlKGlzLm5hKGxtaWxwZXIpLCBtZWFuKGxtaWxwZXIsIG5hLnJtID0gVFJVRSksIGxtaWxwZXIpLAogICAgbHRyb29wcmF0aW9faW1wdXRlZF9lbnRpcmUgPSBpZmVsc2UoaXMubmEobHRyb29wcmF0aW8pLCBtZWFuKGx0cm9vcHJhdGlvLCBuYS5ybSA9IFRSVUUpLCBsdHJvb3ByYXRpbykKICApICU+JSAKICBtdXRhdGUoZ2RwY2FwaXRhX3NjYWxlZF9lbnRpcmUgPSBzY2FsZShnZHBjYXBpdGFfaW1wdXRlZF9lbnRpcmUpLAogICAgICAgICBsbWlscGVyX3NjYWxlZF9lbnRpcmUgPSBzY2FsZShsbWlscGVyX2ltcHV0ZWRfZW50aXJlKSwKICAgICAgICAgbHRyb29wcmF0aW9fc2NhbGVkX2VudGlyZSA9IHNjYWxlKGx0cm9vcHJhdGlvX2ltcHV0ZWRfZW50aXJlKQogICAgICAgICApCmBgYAoKYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KIyMjIEFsc28gY29udmVydGluZyB0aGUgImNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCIgdG8gYSBiaW5hcnkgdmFyaWFibGUgd2hlcmUgIjAuNXMiIGFyZSBiZWluZyB0dXJuZWQgaW50byAiMXMiIGZvciBwdXJwb3NlcyBvZiBtYWtpbmcgdGhpcyBhIGR1bW15IG91dGNvbWUgdmFyaWFibGUgYW5kIHJlbGFiZWxpbmcgdGhpcyBhcyAiY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSIKCm1haW5fY2l2aWx3YXJzX2V0aG5pYyA8LSBtYWluX2Npdmlsd2Fyc19ldGhuaWMgJT4lIAogIG11dGF0ZShjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXRfYmluYXJ5ID0gY2FzZV93aGVuKAogICBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQgPT0gMSB+IDEsCiAgIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCA9PSAwLjUgfiAxLCAKICAgY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0ID09IDAgfiAwLAogICkpCgoKIyMgTWFraW5nIGEgbmV3IHZhcmlhYmxlIGZvciByZWJlbCBzdHJlbmd0aCBiYXNlZCBvbiB3aGF0IHdlIGRlY2lkZWQsIGkuZS4gcmViZWwgc3RyZW5ndGggYmFzZWQgb24gdGhlIGxvZ190cm9vcCByYXRpbyBUaGUgaWRlYSBpcyB0byBjcmVhdGUgYSBzY2FsZSBjYWxsZWQgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkIHdoZXJlIHRoZSBzY2FsZSB2YWx1ZSBpbnZlcnNlbHkgcmVmbGVjdHMgdGhlICJsb2cgdHJvb3AgcmF0aW8i4oCUaGlnaGVyIGxvZyB0cm9vcCByYXRpb3MgKGluZGljYXRpbmcgc3Ryb25nZXIgZ292ZXJubWVudCB0cm9vcHMgcmVsYXRpdmUgdG8gcmViZWxzKSBjb3JyZXNwb25kIHRvIGxvd2VyIHZhbHVlcyBvbiB0aGUgc2NhbGUsIGluZGljYXRpbmcgd2Vha2VyIHJlYmVsIHN0cmVuZ3RoLgoKI0J1dCB3ZSB3YW50IHRvIGludmVydCB0aGlzIHNjYWxlIGZvcgojIEhpZ2hlciBsb2cgdHJvb3AgcmF0aW8gKGdvdmVybm1lbnQgdHJvb3BzIGFyZSBtdWNoIHN0cm9uZ2VyIHRoYW4gcmViZWxzKSDihpIgTG93ZXIgc2NhbGUgdmFsdWUgKGxvd2VyIHJlYmVsIHN0cmVuZ3RoKQojIExvd2VyIGxvZyB0cm9vcCByYXRpbyAocmViZWxzIGFyZSBzdHJvbmdlciByZWxhdGl2ZSB0byBnb3Zlcm5tZW50IHRyb29wcykg4oaSIEhpZ2hlciBzY2FsZSB2YWx1ZSAoaGlnaGVyIHJlYmVsIHN0cmVuZ3RoKQoKCiMgTG9naWNhbGx5IHRoaXMgaXMgaG93IHRoZSBicmVha3MgbWFrZSB0aGUgbW9zdCBzZW5zZQojIC1JbmYgdG8gLTAuNTogVGhpcyBpbmNsdWRlcyBhbGwgdmFsdWVzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAtMC41LgojIC0wLjUgdG8gMDogVGhpcyBpbmNsdWRlcyB2YWx1ZXMgZ3JlYXRlciB0aGFuIC0wLjUgYW5kIHVwIHRvIDAuCiMgMCB0byAxOiBUaGlzIGluY2x1ZGVzIHZhbHVlcyBncmVhdGVyIHRoYW4gMCBhbmQgdXAgdG8gMS4KIyAxIHRvIDI6IFRoaXMgaW5jbHVkZXMgdmFsdWVzIGdyZWF0ZXIgdGhhbiAxIGFuZCB1cCB0byAyLgojIDIgdG8gSW5mOiBUaGlzIGluY2x1ZGVzIHZhbHVlcyBncmVhdGVyIHRoYW4gMi4KCm1haW5fY2l2aWx3YXJzX2V0aG5pYyA8LSBtYWluX2Npdmlsd2Fyc19ldGhuaWMgJT4lCiAgbXV0YXRlKHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCA9IGN1dChsb2d0cm9vcCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVha3MgPSBjKC1JbmYsIC0wLjUsIDAsMSwyLCBJbmYpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGUubG93ZXN0ID0gVFJVRSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKDUsIDQsIDMsIDIsIDEpKSkKCiNJbnZlcnNpbmcgdGhlIHNjYWxlIG93aW5nIHRvIG51bWVyaWNpc2F0aW9uCm1haW5fY2l2aWx3YXJzX2V0aG5pYyA8LSBtYWluX2Npdmlsd2Fyc19ldGhuaWMgJT4lCiAgbXV0YXRlKHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCA9IGFzLm51bWVyaWMocmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkKSkgJT4lIAogIG11dGF0ZShyZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgPSBjYXNlX3doZW4oCiAgICByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgPT0gMSB+NSwKICAgIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCA9PSAyIH40LAogICAgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkID09IDMgfjMsCiAgICByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgPT0gNCB+MiwKICAgIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCA9PSA1IH4xCiAgKSkKICAKCiMgT24gYSBzY2FsZSBvZiAxIHRvIDU6CiMgCiMgMTogSW5kaWNhdGVzIHZlcnkgc3Ryb25nIGdvdmVybm1lbnQgZm9yY2VzIGNvbXBhcmVkIHRvIHJlYmVscyAoaGlnaCBsb2cgdHJvb3AgcmF0aW8sIGxvdyByZWJlbCBzdHJlbmd0aCkuCiMgNTogSW5kaWNhdGVzIHZlcnkgc3Ryb25nIHJlYmVsIGZvcmNlcyBjb21wYXJlZCB0byBnb3Zlcm5tZW50IGZvcmNlcyAobG93IG9yIG5lZ2F0aXZlIGxvZyB0cm9vcCByYXRpbywgaGlnaCByZWJlbCBzdHJlbmd0aCkuCgoKCgojICJOb3RlIG9uIFJlYl9TdHJlbmd0aCBOU0EiCiMjIFJlYl9TdHJlbmd0aF9OU0EgKDUgaXMgc3Ryb25nZXN0IGJ1dCBkYXRhc2V0IGhhcyBpbmNvbnNpc3RlbmNpZXMpCiMgVGhpcyBpbnZlcnNpb24gaW1wbGllcyB0aGF0OgojIEluIHRoZSBvcmlnaW5hbCBDdW5uaW5naGFtIGV0IGFsLiBtZWFzdXJlOgojIDEgbWlnaHQgcmVwcmVzZW50IG11Y2ggc3Ryb25nZXIgcmViZWxzIGNvbXBhcmVkIHRvIHRoZSBnb3Zlcm5tZW50LgojIDUgbWlnaHQgcmVwcmVzZW50IG11Y2ggd2Vha2VyIHJlYmVscyBjb21wYXJlZCB0byB0aGUgZ292ZXJubWVudC4KCiMgSW4gdGhlIHJlYnN0cmVuZ3RoX05TQSBtZWFzdXJlOgojIDEgd291bGQgbm93IHJlcHJlc2VudCBtdWNoIHdlYWtlciByZWJlbHMgY29tcGFyZWQgdG8gdGhlIGdvdmVybm1lbnQuCiMgNSB3b3VsZCBub3cgcmVwcmVzZW50IG11Y2ggc3Ryb25nZXIgcmViZWxzIGNvbXBhcmVkIHRvIHRoZSBnb3Zlcm5tZW50LgpgYGAKCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CiMjIFBlcmZvcm1pbmcgUENBCgojIFNlbGVjdCB0aGUgc2NhbGVkIGNvbHVtbnMgZm9yIFBDQQpzY2FsZWRfZGF0YV9lbnRpcmUgPC0gbWFpbl9jaXZpbHdhcnNfZXRobmljICU+JQogIHNlbGVjdChnZHBjYXBpdGFfc2NhbGVkX2VudGlyZSwgbG1pbHBlcl9zY2FsZWRfZW50aXJlLCBsdHJvb3ByYXRpb19zY2FsZWRfZW50aXJlKQoKIyBQZXJmb3JtIFBDQQpwY2FfcmVzdWx0IDwtIHByY29tcChzY2FsZWRfZGF0YV9lbnRpcmUsIGNlbnRlciA9IFRSVUUsIHNjYWxlLiA9IFRSVUUpCgojIEV4dHJhY3QgdGhlIGZpcnN0IHByaW5jaXBhbCBjb21wb25lbnQgYXMgc3RhdGVfc3RyZW5ndGgKbWFpbl9jaXZpbHdhcnNfZXRobmljIDwtIG1haW5fY2l2aWx3YXJzX2V0aG5pYyAlPiUKICBtdXRhdGUoc3RhdGVfc3RyZW5ndGhfcGNhID0gcGNhX3Jlc3VsdCR4WywgMV0pCgojIFNjYWxlIHN0YXRlX3N0cmVuZ3RoIHRvIGEgcmFuZ2Ugb2YgMSB0byA1Cm1haW5fY2l2aWx3YXJzX2V0aG5pYyA8LSBtYWluX2Npdmlsd2Fyc19ldGhuaWMgJT4lCiAgbXV0YXRlKHN0YXRlX3N0cmVuZ3RoX3NjYWxlZCA9IGN1dChzdGF0ZV9zdHJlbmd0aF9wY2EsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtzID0gcXVhbnRpbGUoc3RhdGVfc3RyZW5ndGhfcGNhLCBwcm9icyA9IHNlcSgwLCAxLCBsZW5ndGgub3V0ID0gNiksIG5hLnJtID0gVFJVRSksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZS5sb3dlc3QgPSBUUlVFLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMoMSwgMiwgMywgNCwgNSkpKQoKIyBDb252ZXJ0IHN0YXRlX3N0cmVuZ3RoIHRvIG51bWVyaWMKbWFpbl9jaXZpbHdhcnNfZXRobmljIDwtIG1haW5fY2l2aWx3YXJzX2V0aG5pYyAlPiUKICBtdXRhdGUoc3RhdGVfc3RyZW5ndGggPSBhcy5udW1lcmljKGFzLmNoYXJhY3RlcihzdGF0ZV9zdHJlbmd0aF9zY2FsZWQpKSkKYGBgCgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQojIyBDb25zZXF1ZW50bHkgTWFraW5nIGEgbGV2ZWwgb2YgdGhyZWF0IChUaHJlYXQgUGVyY2VwdGlvbikgVmFyaWFibGUgIyMKIyBjb25jZXB0dWFsbHkgaG93IHRoaXMgdmFyaWFibGUgaXMgZGVmaW5lZCBpcyB0aGF0IG5vdyB0aGF0IHJlYl9zdHJlbmd0aF9uc2EgdmFyaWFibGUgaXMgb24gYSBzY2FsZSBvZiAxLTMgYW5kIHdlIGhhdmUgc3RhdGUtc3RyZW5ndGggb24gdGhlIHNhbWUgbGV2ZWwgc28gaWYgc3RhdGVfc3RyZW5ndGggPSByZWJfc3RyZW5ndGggdGhlbiBMZXZlbCBvZiB0aHJlYXQgaXMgMiAoYXQgcGFyaXR5KSBhbmQgaWYgcmViX3N0cmVuZ3RoIDwgc3RhdGVfc3RyZW5ndGggdGhlbiBsZXZlbCBvZiB0aHJlYXQgaXMgMSBhbmQgaWYgcmViX3N0cmVuZ3RoID4gc3RhdGVfc3RyZW5ndGggdGhlbiBMZXZlbCBvZiBUaHJlYXQgaXMgMy4gVGhlcmUgaXMgYSBzb2xpZCBtYXRoZW1hdGljYWwgcmVhc29uIGFzIHRvIHdoeSB0aGlzIGNhbm5vdCBiZSBtYWRlIG9uIGEgc2NhbGUgb2YgMSB0byA1LiAKCgptYWluX2Npdmlsd2Fyc19ldGhuaWMgPC0gbWFpbl9jaXZpbHdhcnNfZXRobmljICU+JSAKICBtdXRhdGUoTGV2ZWxfb2ZfVGhyZWF0ID0gY2FzZV93aGVuKAogICAgaXMubmEocmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkKSB+IE5BX3JlYWxfLAogICAgc3RhdGVfc3RyZW5ndGggPCByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgfiAzLAogICAgc3RhdGVfc3RyZW5ndGggPT0gcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkIH4gMiwKICAgIHN0YXRlX3N0cmVuZ3RoID4gcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkIH4gMSwKICAgIFRSVUUgfiBOQV9yZWFsXwogICkpICU+JSAgCiAgc2VsZWN0KHVjZHBfY29uZmxpY3RpZCwgZ292ZXJubWVudCwgcmViZWxzLCByZWJlbF9ldGhuaWMsIHJlYmVsX2V0aG5pY2l0eV9OQUcsIHJlYmVsX3JlbGlnaW9uX05BRywgcHJvX2dvdnRfbWlsaXRpYV9wZ21fY3JlYXRlZCwgY29uZmxpY3RfZXRobmljLCBwZ21fZXRobmljaXR5XzEsIHBnbV9ldGhuaWNpdHlfMiwgY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0LCBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXRfYmluYXJ5LCBjb2V0aG5pY19zdGF0ZV9wZ21fYWJic2V0YWwsIGNvZXRobmljX3JlYmVsX3BnbV9zdGFudG9uLCBjb2V0aG5pY19yZWJlbF9wZ21fZGssIHN0YXRlX3N0cmVuZ3RoLCByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQsIExldmVsX29mX1RocmVhdCwgZXZlcnl0aGluZygpKQoKcm0oc2NhbGVkX2RhdGFfZW50aXJlKQpgYGAKCiMgQmFzaWMgRGVzY3JpcHRpdmVzIHsudGFic2V0fQoKIyMgQ2FzZXMgYnkgRXRobmljIENvbmZsaWN0IGFuZCBDYXNlcyBieSBsZXZlbHMgb2YgQ29ldGhuaWNpdHkgaW4gRXRobmljIENvbmZsaWN0cwoKYGBge3IgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KIyMjIFBlcmNlbnRhZ2Ugd2lzZSBkaXN0cmlidXRpb24gb2YgdGhlIHR5cGUgb2YgQ2l2aWwgV2FycyAoRXRobmljL05vbi1FdGhuaWMpCgptYWluX2Npdmlsd2Fyc19wZXJjZW50YWdlIDwtIG1haW5fY2l2aWx3YXJzICU+JSAKICBncm91cF9ieShjb25mbGljdF9ldGhuaWMpICU+JSAKICBzdW1tYXJpc2UodG90YWxfY2FzZXMgPSBuKCkpICU+JSAKICBtdXRhdGUocGVyY2VudGFnZV9vZl9jYXNlcyA9IHRvdGFsX2Nhc2VzL3N1bSh0b3RhbF9jYXNlcykqMTAwKQoKCmtuaXRyOjprYWJsZShtYWluX2Npdmlsd2Fyc19wZXJjZW50YWdlLCBmb3JtYXQgPSAiaHRtbCIsIGNhcHRpb24gPSAiUGVyY2VudGFnZSB3aXNlIGRpc3RyaWJ1dGlvbiBvZiB0aGUgdHlwZSBvZiBDaXZpbCBXYXJzIChFdGhuaWMvTm9uLUV0aG5pYykiKSAlPiUKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygic3RyaXBlZCIsICJob3ZlciIsICJjb25kZW5zZWQiLCAicmVzcG9uc2l2ZSIpLAogICAgICAgICAgICAgICAgZnVsbF93aWR0aCA9IEZBTFNFKQoKIyMjIERpc3RyaWJ1dGlvbiBieSBDby1ldGhuaWNpdHkgU3RhdHVzIGluIEV0aG5pYyBDaXZpbCBXYXJzCm1haW5fY2l2aWx3YXJzX2V0aG5pY19wZXJjZW50YWdlIDwtIG1haW5fY2l2aWx3YXJzX2V0aG5pYyAlPiUgCiAgZ3JvdXBfYnkoY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0KSAlPiUgCiAgc3VtbWFyaXNlKHRvdGFsX2Nhc2VzID0gbigpKSAlPiUgCiAgbXV0YXRlKHBlcmNlbnRhZ2Vfb2ZfY2FzZXMgPSB0b3RhbF9jYXNlcy9zdW0odG90YWxfY2FzZXMpKjEwMCkKCmtuaXRyOjprYWJsZShtYWluX2Npdmlsd2Fyc19ldGhuaWNfcGVyY2VudGFnZSwgZm9ybWF0ID0gImh0bWwiLCBjYXB0aW9uID0gIkRpc3RyaWJ1dGlvbiBieSBDby1ldGhuaWNpdHkgU3RhdHVzIGluIEV0aG5pYyBDaXZpbCBXYXJzIikgJT4lCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoInN0cmlwZWQiLCAiaG92ZXIiLCAiY29uZGVuc2VkIiwgInJlc3BvbnNpdmUiKSwKICAgICAgICAgICAgICAgIGZ1bGxfd2lkdGggPSBGQUxTRSkKCmBgYAoKIyMgQmFzaWMgQ3Jvc3NUYWJzIG9uIFJlYmVsIFN0cmVuZ3RoIChOYWNoaWtldCkgYW5kIENvZXRobmljaXR5IChOYWNoaWtldCBhbmQgREspCgpgYGB7ciBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQoKIyBSZWJlbCBTdHJlbmd0aCAoTmFjaGlrZXQpIGFuZCBDb19ldGhuaWNpdHkgKE5hY2hpa2V0KQpDcm9zc1RhYmxlKG1haW5fY2l2aWx3YXJzX2V0aG5pYyRyZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQsbWFpbl9jaXZpbHdhcnNfZXRobmljJGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldF9iaW5hcnksIHByb3AuY2hpc3EgPSBGQUxTRSwKICAgICAgICAgICBwcm9wLnQgPSBGQUxTRSwgICAgICAgIyBIaWRlIHByb3BvcnRpb25zCiAgICAgICAgICAgZG5uID0gYygiUmViZWwgU3RyZW5ndGggKE5hY2hpa2V0KSIsICJDb2V0aG5pY2l0eV9OYWNoaWtldF9WYXJpYWJsZSBCaW5hcnkiKSwgICMgQ3VzdG9tIGNvbHVtbiBuYW1lcwogICAgICAgICAgIGNhcHRpb24gPSAiQ3Jvc3N0YWIgZm9yIFJlYmVsIFN0cmVuZ3RoIChOYWNoaWtldCkgYW5kIENvZXRobmljaXR5IG9mIFJlYmVscy1NaWxpdGlhIChOYWNoaWtldCkiLAogICAgICAgICAgIGZvcm1hdCA9ICJTUFNTIikKCmNoaXNxX3Rlc3RfMSA8LSBjaGlzcS50ZXN0KG1haW5fY2l2aWx3YXJzX2V0aG5pYyRyZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQsIG1haW5fY2l2aWx3YXJzX2V0aG5pYyRjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXRfYmluYXJ5KQpwcmludChjaGlzcV90ZXN0XzEpCgoKIyBSZWJlbCBTdHJlbmd0aCAoTmFjaGlrZXQpIGFuZCBDb19ldGhuaWNpdHkgTmFjaGlrZXQgKG5vbi1iaW5hcnkpCkNyb3NzVGFibGUobWFpbl9jaXZpbHdhcnNfZXRobmljJHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCxtYWluX2Npdmlsd2Fyc19ldGhuaWMkY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0LCBwcm9wLmNoaXNxID0gRkFMU0UsCiAgICAgICAgICAgcHJvcC50ID0gRkFMU0UsICAgICAgICMgSGlkZSBwcm9wb3J0aW9ucwogICAgICAgICAgIGRubiA9IGMoIlJlYmVsIFN0cmVuZ3RoIChOYWNoaWtldCkiLCAiQ29ldGhuaWNpdHlfTmFjaGlrZXRfVmFyaWFibGUiKSwgICMgQ3VzdG9tIGNvbHVtbiBuYW1lcwogICAgICAgICAgY2FwdGlvbiA9ICJDcm9zc3RhYiBmb3IgUmViZWwgU3RyZW5ndGggKE5hY2hpa2V0KSBhbmQgQ29ldGhuaWNpdHkgb2YgTm9uX2JpbmFyeSAoTmFjaGlrZXQpIiwKICAgICAgICAgIGZvcm1hdCA9ICJTUFNTIikKY2hpc3FfdGVzdF8yXzEgPC0gY2hpc3EudGVzdChtYWluX2Npdmlsd2Fyc19ldGhuaWMkcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkLCBtYWluX2Npdmlsd2Fyc19ldGhuaWMkY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0KQpwcmludChjaGlzcV90ZXN0XzJfMSkKCgoKCiMgUmViZWwgU3RyZW5ndGggKE5hY2hpa2V0KSBhbmQgQ29fZXRobmljaXR5IChESykKQ3Jvc3NUYWJsZShtYWluX2Npdmlsd2Fyc19ldGhuaWMkcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkLG1haW5fY2l2aWx3YXJzX2V0aG5pYyRjb2V0aG5pY19yZWJlbF9wZ21fZGssIHByb3AuY2hpc3EgPSBGQUxTRSwKICAgICAgICAgICBwcm9wLnQgPSBGQUxTRSwgICAgICAgIyBIaWRlIHByb3BvcnRpb25zCiAgICAgICAgICAgZG5uID0gYygiUmViZWwgU3RyZW5ndGggKE5hY2hpa2V0KSIsICJDb2V0aG5pY2l0eV9ES19WYXJpYWJsZSIpLCAgIyBDdXN0b20gY29sdW1uIG5hbWVzCiAgICAgICAgICBjYXB0aW9uID0gIkNyb3NzdGFiIGZvciBSZWJlbCBTdHJlbmd0aCAoTmFjaGlrZXQpIGFuZCBDb2V0aG5pY2l0eSBvZiBSZWJlbHMtTWlsaXRpYSAoREspIiwKICAgICAgICAgIGZvcm1hdCA9ICJTUFNTIikKY2hpc3FfdGVzdF8yIDwtIGNoaXNxLnRlc3QobWFpbl9jaXZpbHdhcnNfZXRobmljJHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCwgbWFpbl9jaXZpbHdhcnNfZXRobmljJGNvZXRobmljX3JlYmVsX3BnbV9kaykKcHJpbnQoY2hpc3FfdGVzdF8yKQoKCmBgYAoKIyMgQmFzaWMgQ3Jvc3N0YWJzIG9uIFN0YXRlIFN0cmVuZ3RoIGFuZCBDby1ldGhuaWNpdHkKCmBgYHtyIGVjaG89RkFMU0UsbWVzc2FnZT1GQUxTRSx3YXJuaW5nPUZBTFNFfQojIFN0YXRlIFN0cmVuZ3RoIGFuZCBDb19ldGhuaWNpdHkgKE5hY2hpa2V0KQpDcm9zc1RhYmxlKG1haW5fY2l2aWx3YXJzX2V0aG5pYyRzdGF0ZV9zdHJlbmd0aCxtYWluX2Npdmlsd2Fyc19ldGhuaWMkY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSwgcHJvcC5jaGlzcSA9IEZBTFNFLAogICAgICAgICAgIHByb3AudCA9IEZBTFNFLCAgICAgICAjIEhpZGUgcHJvcG9ydGlvbnMKICAgICAgICAgICBkbm4gPSBjKCJTdGF0ZSBTdHJlbmd0aCIsICJDb2V0aG5pY2l0eV9OYWNoaWtldF9WYXJpYWJsZSIpLCAgIyBDdXN0b20gY29sdW1uIG5hbWVzCiAgICAgICAgICBjYXB0aW9uID0gIkNyb3NzdGFiIGZvciBTdGF0ZSBTdHJlbmd0aCBhbmQgQ29ldGhuaWNpdHkgb2YgUmViZWxzLU1pbGl0aWEgKE5hY2hpa2V0IEJpbmFyeSkiLAogICAgICAgICAgZm9ybWF0ID0gIlNQU1MiKQoKY2hpc3FfdGVzdF8zIDwtIGNoaXNxLnRlc3QobWFpbl9jaXZpbHdhcnNfZXRobmljJHN0YXRlX3N0cmVuZ3RoLCBtYWluX2Npdmlsd2Fyc19ldGhuaWMkY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSkKcHJpbnQoY2hpc3FfdGVzdF8zKQoKIyBTdGF0ZSBTdHJlbmd0aCBhbmQgQ29fZXRobmljaXR5IE5vbi1CaW5hcnkgKE5hY2hpa2V0KQpDcm9zc1RhYmxlKG1haW5fY2l2aWx3YXJzX2V0aG5pYyRzdGF0ZV9zdHJlbmd0aCxtYWluX2Npdmlsd2Fyc19ldGhuaWMkY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0LCBwcm9wLmNoaXNxID0gRkFMU0UsCiAgICAgICAgICAgcHJvcC50ID0gRkFMU0UsICAgICAgICMgSGlkZSBwcm9wb3J0aW9ucwogICAgICAgICAgIGRubiA9IGMoIlN0YXRlIFN0cmVuZ3RoIiwgIkNvZXRobmljaXR5X05hY2hpa2V0X1ZhcmlhYmxlIiksICAjIEN1c3RvbSBjb2x1bW4gbmFtZXMKICAgICAgICAgIGNhcHRpb24gPSAiQ3Jvc3N0YWIgZm9yIFN0YXRlIFN0cmVuZ3RoIGFuZCBDb2V0aG5pY2l0eSBvZiBSZWJlbHMtTWlsaXRpIE5vbi1CaW5hcnkgTmFjaGlrZXQiLAogICAgICAgICAgZm9ybWF0ID0gIlNQU1MiKQoKY2hpc3FfdGVzdF8zXzEgPC0gY2hpc3EudGVzdChtYWluX2Npdmlsd2Fyc19ldGhuaWMkc3RhdGVfc3RyZW5ndGgsIG1haW5fY2l2aWx3YXJzX2V0aG5pYyRjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQpCnByaW50KGNoaXNxX3Rlc3RfM18xKQoKI1N0YXRlIFN0cmVuZ3RoIGFuZCBDb19ldGhuaWNpdHkgKERLKQpDcm9zc1RhYmxlKG1haW5fY2l2aWx3YXJzX2V0aG5pYyRzdGF0ZV9zdHJlbmd0aCxtYWluX2Npdmlsd2Fyc19ldGhuaWMkY29ldGhuaWNfcmViZWxfcGdtX2RrLCBwcm9wLmNoaXNxID0gRkFMU0UsCiAgICAgICAgICAgcHJvcC50ID0gRkFMU0UsICAgICAgICMgSGlkZSBwcm9wb3J0aW9ucwogICAgICAgICAgIGRubiA9IGMoIlN0YXRlIFN0cmVuZ3RoIiwgIkNvZXRobmljaXR5X0RLX1ZhcmlhYmxlIiksICAjIEN1c3RvbSBjb2x1bW4gbmFtZXMKICAgICAgICAgIGNhcHRpb24gPSAiQ3Jvc3N0YWIgZm9yIFN0YXRlIFN0cmVuZ3RoIGFuZCBDb2V0aG5pY2l0eSBvZiBSZWJlbHMtTWlsaXRpYSAoREspIiwKICAgICAgICAgIGZvcm1hdCA9ICJTUFNTIikKCmNoaXNxX3Rlc3RfNCA8LSBjaGlzcS50ZXN0KG1haW5fY2l2aWx3YXJzX2V0aG5pYyRzdGF0ZV9zdHJlbmd0aCwgbWFpbl9jaXZpbHdhcnNfZXRobmljJGNvZXRobmljX3JlYmVsX3BnbV9kaykKcHJpbnQoY2hpc3FfdGVzdF80KQpgYGAKCiMjIEJhc2ljIENyb3NzdGFiIG9uIFRocmVhdCBQZXJjZXB0aW9uIGFuZCBDb2V0aG5pY2l0eQoKYGBge3IgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KIyBMZXZlbCBvZiBUaHJlYXQgYW5kIENvX2V0aG5pY2l0eSAoTmFjaGlrZXQpCkNyb3NzVGFibGUobWFpbl9jaXZpbHdhcnNfZXRobmljJExldmVsX29mX1RocmVhdCxtYWluX2Npdmlsd2Fyc19ldGhuaWMkY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSwgcHJvcC5jaGlzcSA9IEZBTFNFLAogICAgICAgICAgIHByb3AudCA9IEZBTFNFLCAgICAgICAjIEhpZGUgcHJvcG9ydGlvbnMKICAgICAgICAgICBkbm4gPSBjKCJMZXZlbCBvZiBUaHJlYXQiLCAiQ29ldGhuaWNpdHlfTmFjaGlrZXRfVmFyaWFibGUiKSwgICMgQ3VzdG9tIGNvbHVtbiBuYW1lcwogICAgICAgICAgY2FwdGlvbiA9ICJDcm9zc3RhYiBmb3IgTGV2ZWwgb2YgVGhyZWF0IGFuZCBDb2V0aG5pY2l0eSBvZiBSZWJlbHMtTWlsaXRpYSAoTmFjaGlrZXQpIiwKICAgICAgICAgIGZvcm1hdCA9ICJTUFNTIikKCmNoaXNxX3Rlc3RfNSA8LSBjaGlzcS50ZXN0KG1haW5fY2l2aWx3YXJzX2V0aG5pYyRMZXZlbF9vZl9UaHJlYXQsIG1haW5fY2l2aWx3YXJzX2V0aG5pYyRjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXRfYmluYXJ5KQpwcmludChjaGlzcV90ZXN0XzUpCgoKIyBMZXZlbCBvZiBUaHJlYXQgYW5kIENvX2V0aG5pY2l0eSBOb24gQmluYXJ5IChOYWNoaWtldCkKQ3Jvc3NUYWJsZShtYWluX2Npdmlsd2Fyc19ldGhuaWMkTGV2ZWxfb2ZfVGhyZWF0LG1haW5fY2l2aWx3YXJzX2V0aG5pYyRjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQsIHByb3AuY2hpc3EgPSBGQUxTRSwKICAgICAgICAgICBwcm9wLnQgPSBGQUxTRSwgICAgICAgIyBIaWRlIHByb3BvcnRpb25zCiAgICAgICAgICAgZG5uID0gYygiTGV2ZWwgb2YgVGhyZWF0IiwgIkNvZXRobmljaXR5X05hY2hpa2V0X1ZhcmlhYmxlIiksICAjIEN1c3RvbSBjb2x1bW4gbmFtZXMKICAgICAgICAgIGNhcHRpb24gPSAiQ3Jvc3N0YWIgZm9yIExldmVsIG9mIFRocmVhdCBhbmQgQ29ldGhuaWNpdHkgb2YgUmViZWxzLU1pbGl0aWEgTm9uIEJpbmFyeSB2YXIgTmFjaGlrZXQiLAogICAgICAgICAgZm9ybWF0ID0gIlNQU1MiKQoKY2hpc3FfdGVzdF81XzEgPC0gY2hpc3EudGVzdChtYWluX2Npdmlsd2Fyc19ldGhuaWMkTGV2ZWxfb2ZfVGhyZWF0LCBtYWluX2Npdmlsd2Fyc19ldGhuaWMkY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0KQpwcmludChjaGlzcV90ZXN0XzVfMSkKCgojTGV2ZWwgb2YgVGhyZWF0IGFuZCBDb19ldGhuaWNpdHkgKERLKSkKQ3Jvc3NUYWJsZShtYWluX2Npdmlsd2Fyc19ldGhuaWMkTGV2ZWxfb2ZfVGhyZWF0LG1haW5fY2l2aWx3YXJzX2V0aG5pYyRjb2V0aG5pY19yZWJlbF9wZ21fZGssIHByb3AuY2hpc3EgPSBGQUxTRSwKICAgICAgICAgICBwcm9wLnQgPSBGQUxTRSwgICAgICAgIyBIaWRlIHByb3BvcnRpb25zCiAgICAgICAgICAgZG5uID0gYygiTGV2ZWwgb2YgVGhyZWF0IiwgIkNvZXRobmljaXR5X0RLX1ZhcmlhYmxlIiksICAjIEN1c3RvbSBjb2x1bW4gbmFtZXMKICAgICAgICAgIGNhcHRpb24gPSAiQ3Jvc3N0YWIgZm9yIExldmVsIG9mIFRocmVhdCBhbmQgQ29ldGhuaWNpdHkgb2YgUmViZWxzLU1pbGl0aWEgKERLKSIsCiAgICAgICAgICBmb3JtYXQgPSAiU1BTUyIpCgpjaGlzcV90ZXN0XzYgPC0gY2hpc3EudGVzdChtYWluX2Npdmlsd2Fyc19ldGhuaWMkTGV2ZWxfb2ZfVGhyZWF0LCBtYWluX2Npdmlsd2Fyc19ldGhuaWMkY29ldGhuaWNfcmViZWxfcGdtX2RrKQpwcmludChjaGlzcV90ZXN0XzYpCmBgYAoKIyMgQmFzaWMgQ3Jvc3N0YWJzIG9uIFJlYmVsIFN0cmVuZ3RoIChBZGFtIE5TQSkgYW5kIENvZXRobmljaXR5IChuYWNoaWtldCBhbmQgREspCmBgYHtyIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CiMgUmViZWwgU3RyZW5ndGggKEFkYW0gTlNBKSBhbmQgQ29fZXRobmljaXR5IChOYWNoaWtldCkKQ3Jvc3NUYWJsZShtYWluX2Npdmlsd2Fyc19ldGhuaWMkcmVic3RyZW5ndGhfYWRhbV9uc2EsbWFpbl9jaXZpbHdhcnNfZXRobmljJGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldF9iaW5hcnksIHByb3AuY2hpc3EgPSBGQUxTRSwKICAgICAgICAgICBwcm9wLnQgPSBGQUxTRSwgICAgICAgIyBIaWRlIHByb3BvcnRpb25zCiAgICAgICAgICAgZG5uID0gYygiUmViZWwgU3RyZW5ndGggKEFkYW0gTlNBKSIsICJDb2V0aG5pY2l0eV9OYWNoaWtldF9WYXJpYWJsZSBCaW5hcnkiKSwgICMgQ3VzdG9tIGNvbHVtbiBuYW1lcwogICAgICAgICAgIGNhcHRpb24gPSAiQ3Jvc3N0YWIgZm9yIFJlYmVsIFN0cmVuZ3RoIChBZGFtIE5TQSkgYW5kIENvZXRobmljaXR5IG9mIFJlYmVscy1NaWxpdGlhIChOYWNoaWtldCkiLAogICAgICAgICAgIGZvcm1hdCA9ICJTUFNTIikKCmNoaXNxX3Rlc3RfNyA8LSBjaGlzcS50ZXN0KG1haW5fY2l2aWx3YXJzX2V0aG5pYyRyZWJzdHJlbmd0aF9hZGFtX25zYSwgbWFpbl9jaXZpbHdhcnNfZXRobmljJGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldF9iaW5hcnkpCnByaW50KGNoaXNxX3Rlc3RfNykKCgojIFJlYmVsIFN0cmVuZ3RoIChBZGFtIE5TQSkgYW5kIENvX2V0aG5pY2l0eSBOb24tQmluYXJ5IChOYWNoaWtldCkKQ3Jvc3NUYWJsZShtYWluX2Npdmlsd2Fyc19ldGhuaWMkcmVic3RyZW5ndGhfYWRhbV9uc2EsbWFpbl9jaXZpbHdhcnNfZXRobmljJGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCwgcHJvcC5jaGlzcSA9IEZBTFNFLAogICAgICAgICAgIHByb3AudCA9IEZBTFNFLCAgICAgICAjIEhpZGUgcHJvcG9ydGlvbnMKICAgICAgICAgICBkbm4gPSBjKCJSZWJlbCBTdHJlbmd0aCAoQWRhbSBOU0EpIiwgIkNvZXRobmljaXR5X05hY2hpa2V0X1ZhcmlhYmxlIEJpbmFyeSIpLCAgIyBDdXN0b20gY29sdW1uIG5hbWVzCiAgICAgICAgICAgY2FwdGlvbiA9ICJDcm9zc3RhYiBmb3IgUmViZWwgU3RyZW5ndGggKEFkYW0gTlNBKSBhbmQgQ29ldGhuaWNpdHkgb2YgUmViZWxzLU1pbGl0aWEgTm9uLUJpbmFyeSAoTmFjaGlrZXQpIiwKICAgICAgICAgICBmb3JtYXQgPSAiU1BTUyIpCgpjaGlzcV90ZXN0XzdfMSA8LSBjaGlzcS50ZXN0KG1haW5fY2l2aWx3YXJzX2V0aG5pYyRyZWJzdHJlbmd0aF9hZGFtX25zYSwgbWFpbl9jaXZpbHdhcnNfZXRobmljJGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCkKcHJpbnQoY2hpc3FfdGVzdF83XzEpCgoKIyBSZWJlbCBTdHJlbmd0aCAoQWRhbSBOU0EpIGFuZCBDb19ldGhuaWNpdHkgKERLKQpDcm9zc1RhYmxlKG1haW5fY2l2aWx3YXJzX2V0aG5pYyRyZWJzdHJlbmd0aF9hZGFtX25zYSxtYWluX2Npdmlsd2Fyc19ldGhuaWMkY29ldGhuaWNfcmViZWxfcGdtX2RrLCBwcm9wLmNoaXNxID0gRkFMU0UsCiAgICAgICAgICAgcHJvcC50ID0gRkFMU0UsICAgICAgICMgSGlkZSBwcm9wb3J0aW9ucwogICAgICAgICAgIGRubiA9IGMoIlJlYmVsIFN0cmVuZ3RoIChBZGFtKSIsICJDb2V0aG5pY2l0eV9ES19WYXJpYWJsZSIpLCAgIyBDdXN0b20gY29sdW1uIG5hbWVzCiAgICAgICAgICBjYXB0aW9uID0gIkNyb3NzdGFiIGZvciBSZWJlbCBTdHJlbmd0aCAoQWRhbSkgYW5kIENvZXRobmljaXR5IG9mIFJlYmVscy1NaWxpdGlhIChESykiLAogICAgICAgICAgZm9ybWF0ID0gIlNQU1MiKQpjaGlzcV90ZXN0XzggPC0gY2hpc3EudGVzdChtYWluX2Npdmlsd2Fyc19ldGhuaWMkcmVic3RyZW5ndGhfYWRhbV9uc2EsIG1haW5fY2l2aWx3YXJzX2V0aG5pYyRjb2V0aG5pY19yZWJlbF9wZ21fZGspCnByaW50KGNoaXNxX3Rlc3RfOCkKYGBgCgojIyBCYXNpYyBDcm9zc3RhYnMgb24gU3RhdGUgU3RyZW5ndGggYW5kIFJlYmVsIFN0cmVuZ3RoIChBZGFtIE5TQSBhbmQgTmFjaGlrZXQgU2NhbGVkKQoKYGBge3IgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KIyBTdGF0ZSBTdHJlbmd0aCBhbmQgUmViZWwgU3RyZW5ndGggKEFkYW0gTlNBKQpDcm9zc1RhYmxlKG1haW5fY2l2aWx3YXJzX2V0aG5pYyRzdGF0ZV9zdHJlbmd0aCxtYWluX2Npdmlsd2Fyc19ldGhuaWMkcmVic3RyZW5ndGhfYWRhbV9uc2EsIHByb3AuY2hpc3EgPSBGQUxTRSwKICAgICAgICAgICBwcm9wLnQgPSBGQUxTRSwgICAgICAgIyBIaWRlIHByb3BvcnRpb25zCiAgICAgICAgICAgZG5uID0gYygiU3RhdGUgU3RyZW5ndGgiLCAiUmViIFN0cmVuZ3RoIEFEQU0gTlNBIiksICAjIEN1c3RvbSBjb2x1bW4gbmFtZXMKICAgICAgICAgIGNhcHRpb24gPSAiQ3Jvc3N0YWIgZm9yIFN0YXRlIFN0cmVuZ3RoIGFuZCBSZWIgU3RyZW5ndGggQWRhbSBOU0EpIiwKICAgICAgICAgIGZvcm1hdCA9ICJTUFNTIikKCmNoaXNxX3Rlc3RfOSA8LSBjaGlzcS50ZXN0KG1haW5fY2l2aWx3YXJzX2V0aG5pYyRzdGF0ZV9zdHJlbmd0aCwgbWFpbl9jaXZpbHdhcnNfZXRobmljJHJlYnN0cmVuZ3RoX2FkYW1fbnNhKQpwcmludChjaGlzcV90ZXN0XzkpCgojU3RhdGUgU3RyZW5ndGggYW5kIFJlYmVsIFN0cmVuZ3RoIChOYWNoaWtldCkKQ3Jvc3NUYWJsZShtYWluX2Npdmlsd2Fyc19ldGhuaWMkc3RhdGVfc3RyZW5ndGgsbWFpbl9jaXZpbHdhcnNfZXRobmljJHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCwgcHJvcC5jaGlzcSA9IEZBTFNFLAogICAgICAgICAgIHByb3AudCA9IEZBTFNFLCAgICAgICAjIEhpZGUgcHJvcG9ydGlvbnMKICAgICAgICAgICBkbm4gPSBjKCJTdGF0ZSBTdHJlbmd0aCIsICJSZWJlbCBTdHJlbmd0aCBOYWNoaWtldCBTY2FsZWQiKSwgICMgQ3VzdG9tIGNvbHVtbiBuYW1lcwogICAgICAgICAgY2FwdGlvbiA9ICJDcm9zc3RhYiBmb3IgU3RhdGUgU3RyZW5ndGggYW5kIFJlYmVsIFN0cmVuZ3RoIE5hY2hpa2V0IiwKICAgICAgICAgIGZvcm1hdCA9ICJTUFNTIikKCmNoaXNxX3Rlc3RfMTAgPC0gY2hpc3EudGVzdChtYWluX2Npdmlsd2Fyc19ldGhuaWMkc3RhdGVfc3RyZW5ndGgsIG1haW5fY2l2aWx3YXJzX2V0aG5pYyRyZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQpCnByaW50KGNoaXNxX3Rlc3RfMTApCgpgYGAKCiMjIEJhc2ljIGNyb3NzdGFicyBvbiBPdXRjb21lIEJpbmFyeSBESyBhbmQgQ29ldGhuaWNpdHkgTmFjaGlrZXQvREsKCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CgoKIyBPdXRjb21lIERLIGFuZCBDb2V0aG5pY2l0eSBCaW5hcnkgTmFjaGlrZXQKQ3Jvc3NUYWJsZShtYWluX2Npdmlsd2Fyc19ldGhuaWMkb3V0Y29tZV9iaW5hcnlfcmViZWxfdmljdG9yeV9rYXVyLCBtYWluX2Npdmlsd2Fyc19ldGhuaWMkY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSwgcHJvcC5jaGlzcSA9IEZBTFNFLAogICAgICAgICAgIHByb3AudCA9IEZBTFNFLCAgICAgICAjIEhpZGUgcHJvcG9ydGlvbnMKICAgICAgICAgICBkbm4gPSBjKCJPdXRjb21lIiwgIkNvZXRobmljIE5hY2hpa2V0IiksICAjIEN1c3RvbSBjb2x1bW4gbmFtZXMKICAgICAgICAgIGNhcHRpb24gPSAiQ3Jvc3N0YWIgZm9yIE91dGNvbWUgYW5kIENvZXRobmljIE5hY2hpa2V0IiwKICAgICAgICAgIGZvcm1hdCA9ICJTUFNTIikKCmNoaXNxX3Rlc3RfMTEgPC0gY2hpc3EudGVzdChtYWluX2Npdmlsd2Fyc19ldGhuaWMkb3V0Y29tZV9iaW5hcnlfcmViZWxfdmljdG9yeV9rYXVyLCBtYWluX2Npdmlsd2Fyc19ldGhuaWMkY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSkKcHJpbnQoY2hpc3FfdGVzdF8xMSkKCgojIE91dGNvbWUgREsgYW5kIENvZXRobmljaXR5IEJpbmFyeSBESwpDcm9zc1RhYmxlKG1haW5fY2l2aWx3YXJzX2V0aG5pYyRvdXRjb21lX2JpbmFyeV9yZWJlbF92aWN0b3J5X2thdXIsIG1haW5fY2l2aWx3YXJzX2V0aG5pYyRjb2V0aG5pY19yZWJlbF9wZ21fZGssIHByb3AuY2hpc3EgPSBGQUxTRSwKICAgICAgICAgICBwcm9wLnQgPSBGQUxTRSwgICAgICAgIyBIaWRlIHByb3BvcnRpb25zCiAgICAgICAgICAgZG5uID0gYygiT3V0Y29tZSIsICJDb2V0aG5pYyAoREspIiksICAjIEN1c3RvbSBjb2x1bW4gbmFtZXMKICAgICAgICAgIGNhcHRpb24gPSAiQ3Jvc3N0YWIgZm9yIE91dGNvbWUgYW5kIENvZXRobmljaXR5IERLIiwKICAgICAgICAgIGZvcm1hdCA9ICJTUFNTIikKCmNoaXNxX3Rlc3RfMTIgPC0gY2hpc3EudGVzdChtYWluX2Npdmlsd2Fyc19ldGhuaWMkc3RhdGVfc3RyZW5ndGgsIG1haW5fY2l2aWx3YXJzX2V0aG5pYyRjb2V0aG5pY19yZWJlbF9wZ21fZGspCnByaW50KGNoaXNxX3Rlc3RfMTIpCgoKYGBgCgojIFJlZ3Jlc3Npb25zIHsudGFic2V0fQoKIyMgUmVncmVzc2lvbiBmb3IgY29fZXRobmljaXR5X25hY2hpa2V0IGFzIERWIHsudGFic2V0fQoKIyMjIEZpcnN0IE1vZGVsCgoqKlNpbXBsZSBMaW5lYXIgTW9kZWwgd2l0aCBubyBmaXhlZCBlZmZlY3RzKioKCmBgYHtyIGVjaG89RkFMU0Usd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KCgptb2RlbF9jb2V0aG5pY2l0eV9uYWNoaWtldF8xIDwtICBmZW9scyhjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXRfYmluYXJ5IH4gcG9saXR5MiArTGV2ZWxfb2ZfVGhyZWF0ICsgc3RhdGVfc3RyZW5ndGggKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sLAogICAgICAgICAgICAgICBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljKQoKc3VtbWFyeShtb2RlbF9jb2V0aG5pY2l0eV9uYWNoaWtldF8xKQpmaXhlc3Q6OmV0YWJsZShtb2RlbF9jb2V0aG5pY2l0eV9uYWNoaWtldF8xKQpgYGAKSW50ZXJwcmV0YXRpb246CgoxLiBUaGUgbW9kZWwgaXMgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCBvdmVyYWxsIChGLXN0YXRpc3RpYyBwLXZhbHVlID0gMC4wMDIyODYpLCBidXQgZXhwbGFpbnMgb25seSBhYm91dCAxOSUgb2YgdGhlIHZhcmlhbmNlIGluIGNvZXRobmljIHJlYmVsIFBHTSBmb3JtYXRpb24gKFItc3F1YXJlZCA9IDAuMTkwMykuCgoKMi4gVGhlIGZvbGxvd2luZyBpbnRlcnByZXRhdGlvbiBmb3IgdGhlIHRocmVlIHNpZ25pZmljYW50IHZhcmlhYmxlcy4KUG9saXR5MiAoY29lZmZpY2llbnQ6IDAuMDM3NzA2LCBwIDwgMC4wMDEpOiAKRm9yIGVhY2ggb25lLXVuaXQgaW5jcmVhc2UgaW4gdGhlIFBvbGl0eTIgc2NvcmUgKGluZGljYXRpbmcgYSBtb3ZlIHRvd2FyZHMgZGVtb2NyYWN5KSwgdGhlIHByb2JhYmlsaXR5IG9mIGNvZXRobmljIHJlYmVsIFBHTSBmb3JtYXRpb24gaW5jcmVhc2VzIGJ5IGFwcHJveGltYXRlbHkgMy44IHBlcmNlbnRhZ2UgcG9pbnRzLiBUaGlzIHN1Z2dlc3RzIHRoYXQgbW9yZSBkZW1vY3JhdGljIHJlZ2ltZXMgYXJlIGFzc29jaWF0ZWQgd2l0aCBhIGhpZ2hlciBsaWtlbGlob29kIG9mIGNvZXRobmljIHJlYmVsIFBHTXMuCgpTdGF0ZSBzdHJlbmd0aCAoY29lZmZpY2llbnQ6IC0wLjE0MzkyMiwgcCA8IDAuMDUpOgpBcyBzdGF0ZSBzdHJlbmd0aCBpbmNyZWFzZXMgYnkgb25lIHVuaXQsIHRoZSBwcm9iYWJpbGl0eSBvZiBjb2V0aG5pYyByZWJlbCBQR00gZm9ybWF0aW9uIGRlY3JlYXNlcyBieSBhYm91dCAxNC40IHBlcmNlbnRhZ2UgcG9pbnRzLiBUaGlzIGluZGljYXRlcyB0aGF0IHN0cm9uZ2VyIHN0YXRlcyBhcmUgbGVzcyBsaWtlbHkgdG8gZXhwZXJpZW5jZSBjb2V0aG5pYyByZWJlbCBQR01zLgoKRHVyYXRpb25feWVhciAoY29lZmZpY2llbnQ6IDAuMDA4MTQyLCBwIDwgMC4wNSk6CkZvciBlYWNoIGFkZGl0aW9uYWwgeWVhciBhIGNvbmZsaWN0IGxhc3RzLCB0aGUgcHJvYmFiaWxpdHkgb2YgY29ldGhuaWMgcmViZWwgUEdNIGZvcm1hdGlvbiBpbmNyZWFzZXMgYnkgYXBwcm94aW1hdGVseSAwLjggcGVyY2VudGFnZSBwb2ludHMuIFRoaXMgc3VnZ2VzdHMgdGhhdCBsb25nZXIgY29uZmxpY3RzIGFyZSBhc3NvY2lhdGVkIHdpdGggYSBzbGlnaHRseSBoaWdoZXIgbGlrZWxpaG9vZCBvZiBjb2V0aG5pYyByZWJlbCBQR01zLgoKCjMuIExldmVsIG9mIHRocmVhdCwgcmViZWwgc3RyZW5ndGgsIGFuZCBldGhwb2wgZG8gbm90IHNob3cgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCBlZmZlY3RzIG9uIGNvZXRobmljIHJlYmVsIFBHTSBmb3JtYXRpb24gaW4gdGhpcyBtb2RlbC4KCgojIyMgU2Vjb25kIE1vZGVsCgoqKlNpbXBsZSBNb2RlbCB3aXRoIEludGVyYWN0aW9uIFRlcm0qKgpSZW1vdmluZyBsZXZlbCBvZiB0aHJlYXQgYmVjYXVzZSBpbnRlcmFjdGlvbiB0ZXJtIGlzIHRoZXJlIChmb3Igc3luZXJnaXN0aWMgZWZmZWN0KQpgYGB7ciBlY2hvPUZBTFNFLG1lc3NhZ2U9RkFMU0Usd2FybmluZz1GQUxTRX0KCm1vZGVsX2NvZXRobmljaXR5X25hY2hpa2V0XzIgPC0gZmVvbHMoY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSB+IHBvbGl0eTIgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgKyBzdGF0ZV9zdHJlbmd0aCpyZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQsCiAgICAgICAgICAgICAgIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWMpCgpzdW1tYXJ5KG1vZGVsX2NvZXRobmljaXR5X25hY2hpa2V0XzIpCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX2NvZXRobmljaXR5X25hY2hpa2V0XzIpCgpgYGAKSW4gdGhlIHJlZ3Jlc3Npb24gbW9kZWwgZXhhbWluaW5nIHRoZSBsaWtlbGlob29kIG9mIGhhdmluZyBjb2V0aG5pYyByZWJlbCBncm91cHMsIHBvbGl0eTIgaXMgc2lnbmlmaWNhbnRseSBwb3NpdGl2ZWx5IGFzc29jaWF0ZWQgd2l0aCB0aGUgb3V0Y29tZSwgc3VnZ2VzdGluZyBtb3JlIGRlbW9jcmF0aWMgcmVnaW1lcyBpbmNyZWFzZSB0aGlzIGxpa2VsaWhvb2QuIGR1cmF0aW9uX3llYXIgYWxzbyBzaWduaWZpY2FudGx5IGluY3JlYXNlcyB0aGUgbGlrZWxpaG9vZCwgaW5kaWNhdGluZyBsb25nZXIgZHVyYXRpb25zIGFyZSBhc3NvY2lhdGVkIHdpdGggaGlnaGVyIHByb2JhYmlsaXRpZXMuIFRoZSBvdGhlciB2YXJpYWJsZXMsIGluY2x1ZGluZyBzdGF0ZV9zdHJlbmd0aCwgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkLCBhbmQgdGhlIGludGVyYWN0aW9uIHRlcm0sIGFyZSBub3Qgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudC4gVGhlIG1vZGVsIGV4cGxhaW5zIGFib3V0IDE5JSBvZiB0aGUgdmFyaWFiaWxpdHkgaW4gdGhlIGRlcGVuZGVudCB2YXJpYWJsZSwgd2l0aCB0aGUgYWRqdXN0ZWQgUsKyIGluZGljYXRpbmcgYSBtb2Rlc3QgZml0LgoKIyMjIFRoaXJkIE1vZGVsCgoqKkZpeGVkIEVmZmVjdHMgT3JkaW5hcnkgTGVhc3QgU3F1YXJlIE1vZGVscyB3aXRoIENsdXN0ZXJlZCBlcnJvcnMgYXQgdGhlIENvdW50cnkvZ292ZXJubWVudCBsZXZlbCoqCgpgYGB7ciBlY2hvPUZBTFNFLG1lc3NhZ2U9RkFMU0Usd2FybmluZz1GQUxTRX0KbW9kZWxfY29ldGhuaWNpdHlfbmFjaGlrZXRfMyA8LSBmZW9scyhjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXRfYmluYXJ5IH4gcG9saXR5MiArIExldmVsX29mX1RocmVhdCArIHN0YXRlX3N0cmVuZ3RoICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCB8IGdvdmVybm1lbnQsCiAgICAgICAgICAgICAgIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWMsIGNsdXN0ZXIgPSB+Z292ZXJubWVudCkKCnN1bW1hcnkobW9kZWxfY29ldGhuaWNpdHlfbmFjaGlrZXRfMykKZml4ZXN0OjpldGFibGUobW9kZWxfY29ldGhuaWNpdHlfbmFjaGlrZXRfMykKYGBgCkluIHRoaXMgcmVncmVzc2lvbiBtb2RlbCwgTGV2ZWxfb2ZfVGhyZWF0IHNpZ25pZmljYW50bHkgZGVjcmVhc2VzIHRoZSBsaWtlbGlob29kIG9mIGhhdmluZyBjb2V0aG5pYyByZWJlbCBncm91cHMsIHdpdGggYSBjb2VmZmljaWVudCBvZiAtMC4yMzEzLCBpbmRpY2F0aW5nIHRoYXQgaGlnaGVyIHBlcmNlaXZlZCB0aHJlYXRzIHJlZHVjZSB0aGlzIGxpa2VsaWhvb2QuIFRoZSBvdGhlciB2YXJpYWJsZXMsIGluY2x1ZGluZyBwb2xpdHkyLCBzdGF0ZV9zdHJlbmd0aCwgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkLCBhbmQgZHVyYXRpb25feWVhciwgZG8gbm90IHNob3cgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCBlZmZlY3RzLiBUaGUgbW9kZWwgaW5jbHVkZXMgZml4ZWQgZWZmZWN0cyBmb3IgZ292ZXJubWVudCwgY2x1c3RlcmluZyBzdGFuZGFyZCBlcnJvcnMgYnkgZ292ZXJubWVudCwgYW5kIGhhcyBhbiBSwrIgb2YgMC42MDM2OCwgcmVmbGVjdGluZyBhIHN0cm9uZyBvdmVyYWxsIGZpdCwgdGhvdWdoIHRoZSB3aXRoaW4gUsKyIG9mIDAuMDY3MDEgc3VnZ2VzdHMgbGltaXRlZCBleHBsYW5hdG9yeSBuYXR1cmUgb2YgdGhlIG1vZGVsIHdpdGhpbiBpbmRpdmlkdWFsIGdvdmVybm1lbnRzIChjb3VudHJpZXMpLgoKCiMjIyBGb3VydGggTW9kZWwKCioqU2FtZSBhcyB0aGUgU2Vjb25kIG1vZGVsIGJ1dCB3aXRoIEZFIGFuZCBjbHVzdGVyZWQgZXJyb3JzKioKTGV2ZWwgb2YgdGhyZWF0IHJlbW92ZWQgYmVjYXVzZSB3ZSB3aXNoIHRvIGNhcHR1cmUgdGhlIHN5bmVyZ2lzdGljIGVmZmVjdHMgb2YgaW50ZXJhY3Rpb24gdGVybSAKYGBge3IgZWNobz1GQUxTRSx3YXJuaW5nPUZBTFNFLG1lc3NhZ2U9RkFMU0V9Cm1vZGVsX2NvZXRobmljaXR5X25hY2hpa2V0XzQgPC0gZmVvbHMoY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSB+IHBvbGl0eTIgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgKyBzdGF0ZV9zdHJlbmd0aCpyZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgfCBnb3Zlcm5tZW50LAogICAgICAgICAgICAgICBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpzdW1tYXJ5KG1vZGVsX2NvZXRobmljaXR5X25hY2hpa2V0XzQpCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX2NvZXRobmljaXR5X25hY2hpa2V0XzQpCmBgYAoKCgpJbiB0aGlzIG1vZGVsLCBzdGF0ZV9zdHJlbmd0aCBpcyBwb3NpdGl2ZWx5IGFzc29jaWF0ZWQgd2l0aCB0aGUgbGlrZWxpaG9vZCBvZiBoYXZpbmcgY29ldGhuaWMgcmViZWwgZ3JvdXBzLCB3aXRoIGEgY29lZmZpY2llbnQgb2YgMC4yOTcxLCBzdWdnZXN0aW5nIHN0cm9uZ2VyIHN0YXRlcyBpbmNyZWFzZSB0aGlzIGxpa2VsaWhvb2QuIFRoZSBpbnRlcmFjdGlvbiB0ZXJtIGJldHdlZW4gc3RhdGVfc3RyZW5ndGggYW5kIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCBpcyBzaWduaWZpY2FudGx5IG5lZ2F0aXZlICgtMC4yNjgxKSwgaW5kaWNhdGluZyB0aGF0IHRoZSBjb21iaW5lZCBlZmZlY3Qgb2YgdGhlc2UgdHdvIHZhcmlhYmxlcyByZWR1Y2VzIHRoZSBsaWtlbGlob29kIG9mIGNvZXRobmljIHJlYmVsIGdyb3Vwcy4gT3RoZXIgdmFycyBwb2xpdHkyLCByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQsIGFuZCBkdXJhdGlvbl95ZWFyLCBkbyBub3QgaGF2ZSBzaWduaWZpY2FudCBlZmZlY3RzLiBUaGUgbW9kZWwgaW5jbHVkZXMgZml4ZWQgZWZmZWN0cyBmb3IgZ292ZXJubWVudCBhbmQgY2x1c3RlcmVkIHN0YW5kYXJkIGVycm9ycyBieSBnb3Zlcm5tZW50LCBoYXMgYW4gUsKyIG9mIDAuNjE0NDgsIHNob3dpbmcgYSBzdHJvbmcgZml0LCBidXQgYSB3aXRoaW4gUsKyIG9mIDAuMDkyNDQgaW5kaWNhdGVzIGxpbWl0ZWQgZXhwbGFuYXRvcnkgcG93ZXIgYXQgdGhlIGNvdW50cnkgbGV2ZWwKCgojIyMgRmlmdGggTW9kZWwKCioqQWRkaXRpb25hbCBDb250cm9scyBGRU9MUyoqCgpBZGRpbmcgVGhyZWUgVmFyaWFibGVzIGFuZCBSZW1vdmluZyBTdGF0ZSBTdHJlbmd0aCBkdWUgdG8gcG9zc2liaWxpdHkgb2YgTXVsdGljb2xsaW5lYXJpdHkgYWRuIGFkZGluZyBvdXRjb21lIGJpbmFyeQpgYGB7ciBlY2hvPUZBTFNFLHdhcm5pbmc9RkFMU0UsbWVzc2FnZT1GQUxTRX0KbW9kZWxfY29ldGhuaWNpdHlfbmFjaGlrZXRfNSA8LSBmZW9scyhjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXRfYmluYXJ5IH4gcG9saXR5MiArIGdkcGNhcGl0YV9pbXB1dGVkX2VudGlyZSArIGxtaWxwZXJfaW1wdXRlZF9lbnRpcmUgKyBsdHJvb3ByYXRpb19pbXB1dGVkX2VudGlyZSArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgKyBvdXRjb21lX2JpbmFyeV9yZWJlbF92aWN0b3J5X2thdXIgfCBnb3Zlcm5tZW50LAogICAgICAgICAgICAgICBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpzdW1tYXJ5KG1vZGVsX2NvZXRobmljaXR5X25hY2hpa2V0XzUpCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX2NvZXRobmljaXR5X25hY2hpa2V0XzUpCmBgYApNb2RlbCBoYXMgYSBsb3Qgb2YgZXhwbGFuYXRvcnkgcG93ZXIgKDcyJSkgYnV0IG5vdGhpbmcgaXMgc2lnbmlmaWNhbnQuCgoKCgojIyBSZWdyZXNzaW9uIGZvciBDb2V0aG5pY2l0eSBESyBhcyBEViB7LnRhYnNldH0KCiMjIyBGaXJzdCBNb2RlbAoqKlNpbXBsZSBMaW5lYXIgTW9kZWwgd2l0aCBubyBmaXhlZCBlZmZlY3RzKioKYGBge3IgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KIyMgTG9naXQgUmVncmVzc2lvbiBmb3IgY29fZXRobmljaXR5X2RrIGFzIERWCgoKbW9kZWxfY29ldGhuaWNpdHlfZGtfMSA8LSBmZW9scyhjb2V0aG5pY19yZWJlbF9wZ21fZGsgfiBwb2xpdHkyICtMZXZlbF9vZl9UaHJlYXQgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wsCiAgICAgICAgICAgICAgIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWMpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9jb2V0aG5pY2l0eV9ka18xKQpgYGAKTW9kZWwgaGFzIGxvdyBleHBsYW5hdG9yeSBwb3dlciBhbmQgaXMgYWxzbyBpbnNpZ25pZmljYW50IGZvciBldmVyeXRoaW5nIChNb3N0bHkgZHVlIHRvIG1pc3NpbmduZXNzIGluIHRoZSBEVikKCiMjIyBTZWNvbmQgTW9kZWwKKipTaW1wbGUgTW9kZWwgd2l0aCBJbnRlcmFjdGlvbiBUZXJtKioKUmVtb3ZpbmcgbGV2ZWwgb2YgdGhyZWF0IGJlY2F1c2UgaW50ZXJhY3Rpb24gdGVybSBpcyB0aGVyZSAoZm9yIHN5bmVyZ2lzdGljIGVmZmVjdCkKCgpgYGB7ciBlY2hvPUZBTFNFLG1lc3NhZ2U9RkFMU0Usd2FybmluZz1GQUxTRX0KCm1vZGVsX2NvZXRobmljaXR5X2RrXzIgPC0gZmVvbHMoY29ldGhuaWNfcmViZWxfcGdtX2RrIH4gcG9saXR5MiArIHN0YXRlX3N0cmVuZ3RoICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCArIHN0YXRlX3N0cmVuZ3RoKnJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCwKICAgICAgICAgICAgICAgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pYykKCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9jb2V0aG5pY2l0eV9ka18yKQoKYGBgCk5vdGhpbmcgc2lnbmlmaWNhbnQgYXQgdGhlIGNvbnZlbnRpb25hbCBsZXZlbAoKIyMjIFRoaXJkIE1vZGVsCgoqKkZpeGVkIEVmZmVjdHMgT3JkaW5hcnkgTGVhc3QgU3F1YXJlIE1vZGVscyB3aXRoIENsdXN0ZXJlZCBlcnJvcnMgYXQgdGhlIENvdW50cnkvZ292ZXJubWVudCBsZXZlbCoqCgpgYGB7ciBlY2hvPUZBTFNFLG1lc3NhZ2U9RkFMU0Usd2FybmluZz1GQUxTRX0KbW9kZWxfY29ldGhuaWNpdHlfZGtfMyA8LSBmZW9scyhjb2V0aG5pY19yZWJlbF9wZ21fZGsgfiBwb2xpdHkyICsgTGV2ZWxfb2ZfVGhyZWF0ICsgc3RhdGVfc3RyZW5ndGggKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sIHwgZ292ZXJubWVudCwKICAgICAgICAgICAgICAgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pYywgY2x1c3RlciA9IH5nb3Zlcm5tZW50KQoKCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX2NvZXRobmljaXR5X2RrXzMpCmBgYApNb2RlbCBleHBsYWlucyBhbG1vc3QgNDggcGVyY2VudCBvZiB0aGUgdmFyaWFuY2UgaW4gdGhlIERWIGJ1dCBub3RoaW5nIGlzIHNpZ25pZmljYW50CgojIyMgRm91cnRoIE1vZGVsCgoqKlNhbWUgYXMgdGhlIFNlY29uZCBtb2RlbCBidXQgd2l0aCBGRSBhbmQgY2x1c3RlcmVkIGVycm9ycyoqCkxldmVsIG9mIHRocmVhdCByZW1vdmVkIGJlY2F1c2Ugd2Ugd2lzaCB0byBjYXB0dXJlIHRoZSBzeW5lcmdpc3RpYyBlZmZlY3RzIG9mIGludGVyYWN0aW9uIHRlcm0gCmBgYHtyIGVjaG89RkFMU0Usd2FybmluZz1GQUxTRSxtZXNzYWdlPUZBTFNFfQptb2RlbF9jb2V0aG5pY2l0eV9ka180IDwtIGZlb2xzKGNvZXRobmljX3JlYmVsX3BnbV9kayB+IHBvbGl0eTIgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgKyBzdGF0ZV9zdHJlbmd0aCpyZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgfCBnb3Zlcm5tZW50LAogICAgICAgICAgICAgICBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgoKZml4ZXN0OjpldGFibGUobW9kZWxfY29ldGhuaWNpdHlfZGtfNCkKYGBgCk5vdGhpbmcgc2lnbmlmaWNhbnQgaW4gdGhpcyBtb2RlbCB0b28KCgojIyMgRmlmdGggTW9kZWwKCioqQWRkaXRpb25hbCBDb250cm9scyBGRU9MUyoqCgpBZGRpbmcgVGhyZWUgVmFyaWFibGVzIGFuZCBSZW1vdmluZyBTdGF0ZSBTdHJlbmd0aCBkdWUgdG8gcG9zc2liaWxpdHkgb2YgTXVsdGljb2xsaW5lYXJpdHkgYW5kIGFkZGluZyBvdXRjb21lIGJpbmFyeQpgYGB7ciBlY2hvPUZBTFNFLHdhcm5pbmc9RkFMU0UsbWVzc2FnZT1GQUxTRX0KbW9kZWxfY29ldGhuaWNpdHlfZGtfNSA8LSBmZW9scyhjb2V0aG5pY19yZWJlbF9wZ21fZGsgfiBwb2xpdHkyICsgZ2RwY2FwaXRhX2ltcHV0ZWRfZW50aXJlICsgbG1pbHBlcl9pbXB1dGVkX2VudGlyZSArIGx0cm9vcHJhdGlvX2ltcHV0ZWRfZW50aXJlICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCArIG91dGNvbWVfYmluYXJ5X3JlYmVsX3ZpY3Rvcnlfa2F1ciB8IGdvdmVybm1lbnQsCiAgICAgICAgICAgICAgIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWMsIGNsdXN0ZXIgPSB+Z292ZXJubWVudCkKCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX2NvZXRobmljaXR5X2RrXzUpCmBgYApJbiB0aGlzIG1vZGVsLCBzZXZlcmFsIGtleSB2YXJpYWJsZXMgaW1wYWN0IHRoZSBsaWtlbGlob29kIG9mIGNvZXRobmljIHJlYmVsIGdyb3VwIGZvcm1hdGlvbi4gYFBvbGl0eTJgIGhhcyBhIHNpZ25pZmljYW50IG5lZ2F0aXZlIGVmZmVjdCwgd2l0aCBhIGNvZWZmaWNpZW50IG9mIC0wLjA5MDMsIGluZGljYXRpbmcgdGhhdCBtb3JlIGRlbW9jcmF0aWMgcmVnaW1lcyBhcmUgYXNzb2NpYXRlZCB3aXRoIGEgbG93ZXIgbGlrZWxpaG9vZCBvZiBjb2V0aG5pYyByZWJlbCBncm91cHMuIENvbnZlcnNlbHksIGBnZHBjYXBpdGFfaW1wdXRlZF9lbnRpcmVgIHNob3dzIGEgc2lnbmlmaWNhbnQgcG9zaXRpdmUgZWZmZWN0LCBzdWdnZXN0aW5nIHRoYXQgaGlnaGVyIHBlciBjYXBpdGEgR0RQIGluY3JlYXNlcyB0aGUgbGlrZWxpaG9vZCBvZiB0aGVzZSBncm91cHMuIGBsdHJvb3ByYXRpb19pbXB1dGVkX2VudGlyZWAgYWxzbyBzaWduaWZpY2FudGx5IGluY3JlYXNlcyB0aGUgbGlrZWxpaG9vZCBvZiBjb2V0aG5pYyByZWJlbCBncm91cHMsIHdpdGggYSBjb2VmZmljaWVudCBvZiAwLjA4NTIsIGluZGljYXRpbmcgdGhhdCBhIGhpZ2hlciB0cm9vcCByYXRpbyBpcyBhc3NvY2lhdGVkIHdpdGggYSBncmVhdGVyIHByb2JhYmlsaXR5IG9mIGNvZXRobmljIHJlYmVsIGdyb3Vwcy4gVGhlIGBkdXJhdGlvbl95ZWFyYCB2YXJpYWJsZSBoYXMgYSBzaWduaWZpY2FudCBuZWdhdGl2ZSBlZmZlY3QsIHN1Z2dlc3RpbmcgdGhhdCBsb25nZXIgY29uZmxpY3RzIGFyZSBhc3NvY2lhdGVkIHdpdGggYSByZWR1Y2VkIGxpa2VsaWhvb2Qgb2YgY29ldGhuaWMgcmViZWwgZ3JvdXBzLiBgT3V0Y29tZV9iaW5hcnlfcmViZWxfdmljdG9yeV9rYXVyYCBzaWduaWZpY2FudGx5IGRlY3JlYXNlcyB0aGUgbGlrZWxpaG9vZCBvZiBjb2V0aG5pYyByZWJlbCBncm91cHMsIGltcGx5aW5nIHRoYXQgcmViZWwgdmljdG9yaWVzIGFyZSBsaW5rZWQgdG8gYSBsb3dlciBwcm9iYWJpbGl0eSBvZiBzdWNoIGdyb3Vwcy4gT3RoZXIgdmFyaWFibGVzLCBpbmNsdWRpbmcgYGxtaWxwZXJfaW1wdXRlZF9lbnRpcmVgIGFuZCBgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkYCwgZG8gbm90IHNob3cgc2lnbmlmaWNhbnQgZWZmZWN0cy4gVGhlIG1vZGVsLCB3aGljaCBpbmNsdWRlcyBmaXhlZCBlZmZlY3RzIGZvciBnb3Zlcm5tZW50IGFuZCBjbHVzdGVyZWQgc3RhbmRhcmQgZXJyb3JzLCBoYXMgYW4gUsKyIG9mIDAuNjQ2MTUsIGluZGljYXRpbmcgYSBzdHJvbmcgb3ZlcmFsbCBmaXQsIHRob3VnaCB0aGUgd2l0aGluIFLCsiBvZiAwLjIyMzc5IHJlZmxlY3RzIGxpbWl0ZWQgc3RyZW5ndGggb2YgdGhlIG1vZGVsIGF0IHdpdGhpbiBpbmRpdmlkdWFsIGNvdW50cmllcyBsZXZlbC4KCgoKIyMgUmVncmVzc2lvbiBmb3IgT3V0Y29tZSBESyBiaW5hcnkgKERLIFJlYmVsIFZpY3RvcnkgQmluYXJ5KSBhcyBEViB7LnRhYnNldH0KCiMjIyBGaXJzdCBNb2RlbAoKKipTaW1wbGUgTGluZWFyIE1vZGVsIHdpdGggbm8gZml4ZWQgZWZmZWN0cyAoQ29ldGhuaWNpdHkgTmFjaGlrZXQgYXMgQklOQVJZKSoqCgoKYGBge3IgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KIyMgTG9naXQgUmVncmVzc2lvbiBmb3IgY29fZXRobmljaXR5X2RrIGFzIERWCgoKbW9kZWxfb3V0Y29tZV9iaW5hcnlfZGtfMSA8LSBmZW9scyhvdXRjb21lX2JpbmFyeV9yZWJlbF92aWN0b3J5X2thdXIgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXRfYmluYXJ5KyBMZXZlbF9vZl9UaHJlYXQgKyBwb2xpdHkyICsgc3RhdGVfc3RyZW5ndGggKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sLCBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljKQoKZml4ZXN0OjpldGFibGUobW9kZWxfb3V0Y29tZV9iaW5hcnlfZGtfMSkKYGBgCkluIHRoaXMgcmVncmVzc2lvbiBtb2RlbCBleGFtaW5pbmcgdGhlIGZhY3RvcnMgaW5mbHVlbmNpbmcgcmViZWwgdmljdG9yeSBvdXRjb21lcywgcG9saXR5MiBzaG93cyBhIHNpZ25pZmljYW50IG5lZ2F0aXZlIGVmZmVjdCwgd2l0aCBhIGNvZWZmaWNpZW50IG9mIC0wLjA1NDAsIGluZGljYXRpbmcgdGhhdCBtb3JlIGRlbW9jcmF0aWMgcmVnaW1lcyBhcmUgbGVzcyBsaWtlbHkgdG8gZXhwZXJpZW5jZSByZWJlbCB2aWN0b3JpZXMuIFN0YXRlX3N0cmVuZ3RoIGhhcyBhIHBvc2l0aXZlIGFuZCBzaWduaWZpY2FudCBpbXBhY3QsIHdpdGggYSBjb2VmZmljaWVudCBvZiAwLjE3MTEsIHN1Z2dlc3RpbmcgdGhhdCBzdHJvbmdlciBzdGF0ZXMgYXJlIG1vcmUgc3VzY2VwdGlibGUgdG8gcmViZWwgdmljdG9yaWVzLiBFdGhwb2wgYWxzbyBwbGF5cyBhIHNpZ25pZmljYW50IHJvbGUsIHdpdGggYSBjb2VmZmljaWVudCBvZiAwLjcyODksIGltcGx5aW5nIHRoYXQgaGlnaGVyIGxldmVscyBvZiBldGhuaWMgcG9sYXJpemF0aW9uIGluY3JlYXNlIHRoZSBsaWtlbGlob29kIG9mIHJlYmVsIHZpY3Rvcmllcy4gT3RoZXIgdmFyaWFibGVzLCBzdWNoIGFzIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldF9iaW5hcnksIExldmVsX29mX1RocmVhdCwgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkLCBhbmQgZHVyYXRpb25feWVhciwgZG8gbm90IHNob3cgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCBlZmZlY3RzIG9uIHRoZSBvdXRjb21lLiBUaGUgbW9kZWwgZXhwbGFpbnMgYXBwcm94aW1hdGVseSAyOSUgb2YgdGhlIHZhcmlhbmNlIGluIHJlYmVsIHZpY3RvcmllcyAoUsKyID0gMC4yODk2MyksIHdpdGggYW4gYWRqdXN0ZWQgUsKyIG9mIDAuMjI4MjQsIGluZGljYXRpbmcgYSBtb2Rlc3QgZml0LgoKIyMjIFNlY29uZCBNb2RlbAoKKipTaW1wbGUgTGluZWFyIE1vZGVsIHdpdGggbm8gZml4ZWQgZWZmZWN0cyAoQ29ldGhuaWNpdHkgTmFjaGlrZXQgYXMgTk9OIEJJTkFSWSkqKgoKCmBgYHtyIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CiMjIExvZ2l0IFJlZ3Jlc3Npb24gZm9yIGNvX2V0aG5pY2l0eV9kayBhcyBEVgoKCm1vZGVsX291dGNvbWVfYmluYXJ5X2RrXzIgPC0gZmVvbHMob3V0Y29tZV9iaW5hcnlfcmViZWxfdmljdG9yeV9rYXVyIH4gY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0ICsgTGV2ZWxfb2ZfVGhyZWF0ICsgcG9saXR5MiArIHN0YXRlX3N0cmVuZ3RoICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCwgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pYykKCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX291dGNvbWVfYmluYXJ5X2RrXzIpCmBgYApJbiB0aGlzIG1vZGVsIGV4cGxvcmluZyB0aGUgZGV0ZXJtaW5hbnRzIG9mIHJlYmVsIHZpY3RvcmllcywgcG9saXR5MiBpcyBzaWduaWZpY2FudGx5IGFzc29jaWF0ZWQgd2l0aCBhIHJlZHVjZWQgbGlrZWxpaG9vZCBvZiByZWJlbCB2aWN0b3JpZXMsIGFzIGluZGljYXRlZCBieSBhIGNvZWZmaWNpZW50IG9mIC0wLjA1NTAuIFRoaXMgc3VnZ2VzdHMgdGhhdCBtb3JlIGRlbW9jcmF0aWMgcmVnaW1lcyBhcmUgbGVzcyBwcm9uZSB0byByZWJlbCB2aWN0b3JpZXMuIFRoZSB2YXJpYWJsZSBzdGF0ZV9zdHJlbmd0aCBzaG93cyBhIHBvc2l0aXZlIGFuZCBzaWduaWZpY2FudCByZWxhdGlvbnNoaXAsIHdpdGggYSBjb2VmZmljaWVudCBvZiAwLjE3NDksIGltcGx5aW5nIHRoYXQgc3Ryb25nZXIgc3RhdGVzIHRlbmQgdG8gc2VlIG1vcmUgcmViZWwgdmljdG9yaWVzLiBBZGRpdGlvbmFsbHksIGV0aHBvbCBpcyBwb3NpdGl2ZWx5IGFzc29jaWF0ZWQgd2l0aCByZWJlbCB2aWN0b3JpZXMsIHdpdGggYSBjb2VmZmljaWVudCBvZiAwLjcyMjAsIGluZGljYXRpbmcgdGhhdCBoaWdoZXIgZXRobmljIHBvbGFyaXphdGlvbiBpbmNyZWFzZXMgdGhlIHByb2JhYmlsaXR5IG9mIHN1Y2ggb3V0Y29tZXMuIEhvd2V2ZXIsIG90aGVyIHZhcmlhYmxlcywgaW5jbHVkaW5nIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCwgTGV2ZWxfb2ZfVGhyZWF0LCByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQsIGFuZCBkdXJhdGlvbl95ZWFyLCBkbyBub3QgaGF2ZSBzaWduaWZpY2FudCBlZmZlY3RzLiBUaGUgbW9kZWwgZXhwbGFpbnMgYXJvdW5kIDI5JSBvZiB0aGUgdmFyaWFuY2UgaW4gdGhlIGRlcGVuZGVudCB2YXJpYWJsZSAoUsKyID0gMC4yODk0OSksIHdpdGggYW4gYWRqdXN0ZWQgUsKyIG9mIDAuMjI4MDksIHJlZmxlY3RpbmcgYSBtb2RlcmF0ZSBtb2RlbCBmaXQuCgoKIyMjIFRoaXJkIE1vZGVsCgoqKlNpbXBsZSBNb2RlbCB3aXRoIEludGVyYWN0aW9uIFRlcm0uIFJlbW92aW5nIGxldmVsIG9mIHRocmVhdCBiZWNhdXNlIGludGVyYWN0aW9uIHRlcm0gaXMgdGhlcmUgKGZvciBzeW5lcmdpc3RpYyBlZmZlY3QpLiAoQ29ldGhuaWNpdHkgTmFjaGlrZXQgYXMgQklOQVJZKSoqCgoKYGBge3IgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KIyMgTG9naXQgUmVncmVzc2lvbiBmb3IgY29fZXRobmljaXR5X2RrIGFzIERWCgoKbW9kZWxfb3V0Y29tZV9iaW5hcnlfZGtfMyA8LSBmZW9scyhvdXRjb21lX2JpbmFyeV9yZWJlbF92aWN0b3J5X2thdXIgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXRfYmluYXJ5ICsgcG9saXR5MiArIHN0YXRlX3N0cmVuZ3RoICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCArIHN0YXRlX3N0cmVuZ3RoKnJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCwgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pYykKCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX291dGNvbWVfYmluYXJ5X2RrXzMpCgpgYGAKSW4gdGhpcyBtb2RlbCBpbnZlc3RpZ2F0aW5nIHRoZSBmYWN0b3JzIGluZmx1ZW5jaW5nIHJlYmVsIHZpY3RvcmllcywgcG9saXR5MiBjb250aW51ZXMgdG8gc2hvdyBhIHNpZ25pZmljYW50IG5lZ2F0aXZlIHJlbGF0aW9uc2hpcCwgd2l0aCBhIGNvZWZmaWNpZW50IG9mIC0wLjA1MDUsIGluZGljYXRpbmcgdGhhdCBtb3JlIGRlbW9jcmF0aWMgcmVnaW1lcyBhcmUgbGVzcyBsaWtlbHkgdG8gc2VlIHJlYmVsIHZpY3Rvcmllcy4gVGhlIGludGVyYWN0aW9uIGJldHdlZW4gc3RhdGVfc3RyZW5ndGggYW5kIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCBpcyBzaWduaWZpY2FudCBhbmQgcG9zaXRpdmUgKGNvZWZmaWNpZW50OiAwLjE1OTQpLCBzdWdnZXN0aW5nIHRoYXQgdGhlIGNvbWJpbmVkIGVmZmVjdCBvZiBzdGF0ZSBhbmQgcmViZWwgc3RyZW5ndGggaW5jcmVhc2VzIHRoZSBsaWtlbGlob29kIG9mIGEgcmViZWwgdmljdG9yeS4gRHVyYXRpb25feWVhciBhbHNvIGhhcyBhIHNpZ25pZmljYW50IG5lZ2F0aXZlIGltcGFjdCwgd2l0aCBhIGNvZWZmaWNpZW50IG9mIC0wLjAxMDksIGltcGx5aW5nIHRoYXQgbG9uZ2VyIGNvbmZsaWN0cyBhcmUgYXNzb2NpYXRlZCB3aXRoIGEgcmVkdWNlZCBwcm9iYWJpbGl0eSBvZiByZWJlbCBzdWNjZXNzLiBXaGlsZSBldGhwb2wgaXMgbWFyZ2luYWxseSBzaWduaWZpY2FudCAoY29lZmZpY2llbnQ6IDAuNjE0NCksIGluZGljYXRpbmcgYSBwb3RlbnRpYWwgaW5jcmVhc2UgaW4gdGhlIGxpa2VsaWhvb2Qgb2YgcmViZWwgdmljdG9yaWVzIHdpdGggaGlnaGVyIGV0aG5pYyBwb2xhcml6YXRpb24sIG90aGVyIHZhcmlhYmxlcyBzdWNoIGFzIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldF9iaW5hcnksIHN0YXRlX3N0cmVuZ3RoLCBhbmQgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkIGRvIG5vdCBzaG93IHNpZ25pZmljYW50IGVmZmVjdHMuIFRoZSBtb2RlbCBleHBsYWlucyBhcHByb3hpbWF0ZWx5IDMxJSBvZiB0aGUgdmFyaWFuY2UgaW4gcmViZWwgdmljdG9yeSBvdXRjb21lcyAoUsKyID0gMC4zMTMwNCksIHdpdGggYW4gYWRqdXN0ZWQgUsKyIG9mIDAuMjUzNjcsIGluZGljYXRpbmcgYSBtb2RlcmF0ZSBmaXQuCgojIyMgRm91cnRoIE1vZGVsCgoqKlNpbXBsZSBNb2RlbCB3aXRoIEludGVyYWN0aW9uIFRlcm0uIFJlbW92aW5nIGxldmVsIG9mIHRocmVhdCBiZWNhdXNlIGludGVyYWN0aW9uIHRlcm0gaXMgdGhlcmUgKGZvciBzeW5lcmdpc3RpYyBlZmZlY3QpLiAoQ29ldGhuaWNpdHkgTmFjaGlrZXQgYXMgTk9OLUJJTkFSWSkqKgoKCmBgYHtyIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CiMjIExvZ2l0IFJlZ3Jlc3Npb24gZm9yIGNvX2V0aG5pY2l0eV9kayBhcyBEVgoKCm1vZGVsX291dGNvbWVfYmluYXJ5X2RrXzQgPC0gZmVvbHMob3V0Y29tZV9iaW5hcnlfcmViZWxfdmljdG9yeV9rYXVyIH4gY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0ICsgcG9saXR5MiArIHN0YXRlX3N0cmVuZ3RoICsgcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkICsgZHVyYXRpb25feWVhciArIGV0aHBvbCArIHN0YXRlX3N0cmVuZ3RoKnJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCwgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pYykKCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX291dGNvbWVfYmluYXJ5X2RrXzQpCgpgYGAKSW4gdGhpcyBtb2RlbCwgd2UncmUgbG9va2luZyBhdCB0aGUgZmFjdG9ycyB0aGF0IG1pZ2h0IGluZmx1ZW5jZSB3aGV0aGVyIGEgcmViZWwgZ3JvdXAgd2lucyBhIGNvbmZsaWN0LiBPbmUgY2xlYXIgZmluZGluZyBpcyB0aGF0IG1vcmUgZGVtb2NyYXRpYyBjb3VudHJpZXMgKGBwb2xpdHkyYCksIHdpdGggYSBjb2VmZmljaWVudCBvZiAtMC4wNTI0LCBhcmUgbGVzcyBsaWtlbHkgdG8gZXhwZXJpZW5jZSByZWJlbCB2aWN0b3JpZXMuIFRoZSBtb2RlbCBhbHNvIHN1Z2dlc3RzIHRoYXQgbG9uZ2VyIGNvbmZsaWN0cyB0ZW5kIHRvIGJlIGxlc3MgZmF2b3JhYmxlIGZvciByZWJlbHMsIGFzIGluZGljYXRlZCBieSB0aGUgbmVnYXRpdmUgZWZmZWN0IG9mIGBkdXJhdGlvbl95ZWFyYCAoLTAuMDExNSkuCgpJbnRlcmVzdGluZ2x5LCB0aGUgaW50ZXJhY3Rpb24gYmV0d2VlbiBzdGF0ZSBzdHJlbmd0aCBhbmQgcmViZWwgc3RyZW5ndGggKGBzdGF0ZV9zdHJlbmd0aCB4IHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZGApIGlzIHNpZ25pZmljYW50LCB3aXRoIGEgcG9zaXRpdmUgY29lZmZpY2llbnQgb2YgMC4xNjI5LiBUaGlzIHN1Z2dlc3RzIHRoYXQgd2hlbiBib3RoIHRoZSBzdGF0ZSBhbmQgcmViZWwgZ3JvdXBzIGFyZSBzdHJvbmcsIHRoZSBjaGFuY2VzIG9mIGEgcmViZWwgdmljdG9yeSBpbmNyZWFzZS4gSG93ZXZlciwgb3RoZXIgZmFjdG9ycywgbGlrZSB3aGV0aGVyIHRoZSByZWJlbCBncm91cCBpcyBjb2V0aG5pYyAoYGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldGApIG9yIHRoZSBvdmVyYWxsIHN0cmVuZ3RoIG9mIHRoZSBzdGF0ZSBhbmQgcmViZWwgZm9yY2VzIG9uIHRoZWlyIG93biwgZG9uJ3Qgc2VlbSB0byBwbGF5IGEgZGVjaXNpdmUgcm9sZSBpbiBkZXRlcm1pbmluZyB0aGUgb3V0Y29tZS4gVGhlIG1vZGVsIGV4cGxhaW5zIGFib3V0IDMxJSBvZiB0aGUgdmFyaWFiaWxpdHkgaW4gd2hldGhlciByZWJlbHMgd2luIG9yIGxvc2UsIHdoaWNoIHRlbGxzIHVzIGl0IGNhcHR1cmVzIHNvbWUgb2YgdGhlIGtleSBkeW5hbWljcyBhdCBwbGF5LCBidXQgdGhlcmUncyBzdGlsbCBhIGxvdCBtb3JlIHRvIHVuZGVyc3RhbmQuCgojIyMgRmlmdGggTW9kZWwKCioqRml4ZWQgRWZmZWN0cyBPcmRpbmFyeSBMZWFzdCBTcXVhcmUgTW9kZWxzIHdpdGggQ2x1c3RlcmVkIGVycm9ycyBhdCB0aGUgQ291bnRyeS9nb3Zlcm5tZW50IGxldmVsLiBDb2V0aG5pYyBOYWNoaWtldCAoQklOQVJZKSoqCgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQptb2RlbF9vdXRjb21lX2JpbmFyeV9ka181IDwtIGZlb2xzKG91dGNvbWVfYmluYXJ5X3JlYmVsX3ZpY3Rvcnlfa2F1ciB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldF9iaW5hcnkgKyBwb2xpdHkyICtMZXZlbF9vZl9UaHJlYXQgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgfCBnb3Zlcm5tZW50LAogICAgICAgICAgICAgICBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ka181KQoKYGBgClRoZSBuZWdhdGl2ZSBjb2VmZmljaWVudCBmb3IgcG9saXR5MiAoLTAuMDc4MCkgaW5kaWNhdGVzIHRoYXQgYXMgYSByZWdpbWUgYmVjb21lcyBtb3JlIGRlbW9jcmF0aWMsIHRoZSBsaWtlbGlob29kIG9mIGEgcmViZWwgdmljdG9yeSBkaW1pbmlzaGVzIHNpZ25pZmljYW50bHkuIE9uIHRoZSBmbGlwIHNpZGUsIExldmVsX29mX1RocmVhdCBlbWVyZ2VzIGFzIGEgY3J1Y2lhbCBmYWN0b3IsIHdpdGggYSBzdHJvbmcgcG9zaXRpdmUgY29lZmZpY2llbnQgKDAuOTg2MSksIHN1Z2dlc3RpbmcgdGhhdCBoaWdoZXIgcGVyY2VpdmVkIHRocmVhdHMgY29ycmVsYXRlIHdpdGggYSBncmVhdGVyIGNoYW5jZSBvZiBhIHJlYmVsIHZpY3RvcnkuCgpPdGhlciB2YXJpYWJsZXMsIHN1Y2ggYXMgY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSwgc3RhdGVfc3RyZW5ndGgsIGFuZCByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQsIGRvbid0IHNob3cgc2lnbmlmaWNhbnQgaW1wYWN0cyBpbiB0aGlzIG1vZGVsLiBUaGVzZSBmYWN0b3JzLCB3aGlsZSBwYXJ0IG9mIHRoZSBlcXVhdGlvbiwgYXJlbid0IHRoZSBrZXkgZHJpdmVycyBvZiB3aGV0aGVyIHJlYmVscyBzdWNjZWVkIG9yIGZhaWwuIFRoZSBtb2RlbCdzIGhpZ2ggUsKyICgwLjk4NDY0KSBpbmRpY2F0ZXMgaXQgZXhwbGFpbnMgYWxtb3N0IGFsbCBvZiB0aGUgdmFyaWFuY2UgaW4gcmViZWwgdmljdG9yeSBvdXRjb21lcywgaW1wbHlpbmcgaXQgY2FwdHVyZXMgdGhlIHByaW1hcnkgaW5mbHVlbmNlcywgdGhvdWdoIHRoZXJlIGNvdWxkIGJlIG1vcmUgbnVhbmNlZCBmYWN0b3JzIGF0IHBsYXkgdGhhdCBhcmVuJ3QgZnVsbHkgYWNjb3VudGVkIGZvci4KCgojIyMgU2l4dGggTW9kZWwKCioqRml4ZWQgRWZmZWN0cyBPcmRpbmFyeSBMZWFzdCBTcXVhcmUgTW9kZWxzIHdpdGggQ2x1c3RlcmVkIGVycm9ycyBhdCB0aGUgQ291bnRyeS9nb3Zlcm5tZW50IGxldmVsLiBDb2V0aG5pYyBOYWNoaWtldCAoTk9OIEJJTkFSWSkqKgoKYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbW9kZWxfb3V0Y29tZV9iaW5hcnlfZGtfNiA8LSBmZW9scyhvdXRjb21lX2JpbmFyeV9yZWJlbF92aWN0b3J5X2thdXIgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQgKyBwb2xpdHkyICtMZXZlbF9vZl9UaHJlYXQgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgfCBnb3Zlcm5tZW50LAogICAgICAgICAgICAgICBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lX2JpbmFyeV9ka182KQpgYGAKdGhpcyBtb2RlbCBwb2ludHMgdXMgdG93YXJkIHNvbWUgY29tcGVsbGluZyBkeW5hbWljcyBpbiB0aGUgcmVhbG0gb2YgcmViZWwgdmljdG9yaWVzLiBOb3RhYmx5LCB0aGUgZGVtb2NyYWN5IGxldmVsIChwb2xpdHkyKSBwbGF5cyBhIHNpZ25pZmljYW50IHJvbGUsIHdpdGggYSBzaGFycCBkZWNyZWFzZSBpbiB0aGUgbGlrZWxpaG9vZCBvZiBhIHJlYmVsIHdpbiBhcyBkZW1vY3JhdGljIHRyYWl0cyByaXNlLCBldmlkZW5jZWQgYnkgYSBjb2VmZmljaWVudCBvZiAtMC4wNzgwLiBDb252ZXJzZWx5LCB0aGUgbGV2ZWwgb2YgdGhyZWF0IGZhY2VkIGJ5IGEgcmVnaW1lIChMZXZlbF9vZl9UaHJlYXQpIGlzIGEgcG93ZXJmdWwgcHJlZGljdG9yIG9mIHJlYmVsIHN1Y2Nlc3MsIHdpdGggYSByb2J1c3QgcG9zaXRpdmUgZWZmZWN0ICgwLjk4NjQpLCBzdWdnZXN0aW5nIHRoYXQgaGlnaGVyIHRocmVhdHMgY29uc2lkZXJhYmx5IHRpbHQgdGhlIG9kZHMgaW4gZmF2b3Igb2YgdGhlIHJlYmVscy4KCk90aGVyIGZhY3RvcnMsIGxpa2Ugd2hldGhlciB0aGUgcmViZWxzIGFyZSBjb2V0aG5pYyAoY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0KSwgdGhlIHN0cmVuZ3RoIG9mIHRoZSBzdGF0ZSwgYW5kIHRoZSBzdHJlbmd0aCBvZiB0aGUgcmViZWxzIHRoZW1zZWx2ZXMsIGFwcGVhciBsZXNzIGluZmx1ZW50aWFsIGluIHRoaXMgcGFydGljdWxhciBtb2RlbC4gQWx0aG91Z2ggdGhleSBjb250cmlidXRlIHRvIHRoZSBicm9hZGVyIHBpY3R1cmUsIHRoZXkgZG9uJ3Qgc2VlbSB0byBjYXJyeSBhcyBtdWNoIHdlaWdodCBpbiBkZXRlcm1pbmluZyB0aGUgb3V0Y29tZS4gVGhlIG5lYXItcGVyZmVjdCBSwrIgdmFsdWUgKDAuOTg0NjUpIHNpZ25hbHMgdGhhdCB0aGlzIG1vZGVsIGNhcHR1cmVzIG1vc3Qgb2YgdGhlIHZhcmlhYmlsaXR5IGluIHdoZXRoZXIgYSByZWJlbGxpb24gZW5kcyBpbiB2aWN0b3J5LCBhbHRob3VnaCB0aGUgbnVhbmNlcyBvZiBjb25mbGljdCBvdXRjb21lcyBsaWtlbHkgZXh0ZW5kIGJleW9uZCB3aGF0J3MgcXVhbnRpZmllZCBoZXJlLgoKIyMjIFNldmVudGggTW9kZWwKCioqU2FtZSBhcyB0aGUgVGhpcmQgYW5kIEZvdXJ0aCBtb2RlbHMgYnV0IHdpdGggRkUgYW5kIGNsdXN0ZXJlZCBlcnJvcnMgQ29ldGhuaWMgTkFDSElLRVQgKEJJTkFSWSkqKgpMZXZlbCBvZiB0aHJlYXQgcmVtb3ZlZCBiZWNhdXNlIHdlIHdpc2ggdG8gY2FwdHVyZSB0aGUgc3luZXJnaXN0aWMgZWZmZWN0cyBvZiBpbnRlcmFjdGlvbiB0ZXJtIApgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQptb2RlbF9vdXRjb21lX2JpbmFyeV9ka183IDwtIGZlb2xzKG91dGNvbWVfYmluYXJ5X3JlYmVsX3ZpY3Rvcnlfa2F1ciB+CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldF9iaW5hcnkgKyBwb2xpdHkyICsgc3RhdGVfc3RyZW5ndGggKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sICsgc3RhdGVfc3RyZW5ndGgqcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkIHwgZ292ZXJubWVudCwgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pYywgY2x1c3RlciA9IH5nb3Zlcm5tZW50KQoKCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX291dGNvbWVfYmluYXJ5X2RrXzcpCgpgYGAKIEZpcnN0IG9mZiwgdGhlIGRlbW9jcmFjeSBtZWFzdXJlIChwb2xpdHkyKSBzaG93cyB0aGF0IG1vcmUgZGVtb2NyYXRpYyByZWdpbWVzIGFyZSBzaWduaWZpY2FudGx5IGxlc3MgbGlrZWx5IHRvIGV4cGVyaWVuY2UgYSByZWJlbCB2aWN0b3J5LCB3aXRoIGEgbmVnYXRpdmUgY29lZmZpY2llbnQgb2YgLTAuMDY4Ni4gVGhpcyBzdWdnZXN0cyB0aGF0IGFzIGEgY291bnRyeSBsZWFucyBtb3JlIGRlbW9jcmF0aWMsIHRoZSBvZGRzIG9mIHJlYmVscyB3aW5uaW5nIGRpbWluaXNoLCB3aGljaCBtYWtlcyBzZW5zZSBnaXZlbiB0aGUgYnJvYWRlciBwYXJ0aWNpcGF0aW9uIGFuZCBpbnN0aXR1dGlvbmFsIGNoZWNrcyBpbiBzdWNoIHN5c3RlbXMuCgpJbnRlcmVzdGluZ2x5LCBzdGF0ZV9zdHJlbmd0aCBhbmQgaXRzIGludGVyYWN0aW9uIHdpdGggcmViZWxfc3RyZW5ndGhfbmFjaGlrZXRfc2NhbGVkIGRvbuKAmXQgY29tZSB0aHJvdWdoIGFzIHNpZ25pZmljYW50LiBUaGUgbmVnYXRpdmUgY29lZmZpY2llbnQgb24gc3RhdGVfc3RyZW5ndGggKC0wLjU0NDkpIGhpbnRzIHRoYXQgc3Ryb25nZXIgc3RhdGVzIG1pZ2h0IGJlIGxlc3MgdnVsbmVyYWJsZSB0byByZWJlbCB2aWN0b3JpZXMsIGJ1dCB0aGUgbGFjayBvZiBzaWduaWZpY2FuY2Ugc3VnZ2VzdHMgdGhlcmUncyBtb3JlIGNvbXBsZXhpdHkgYXQgcGxheS4gTWVhbndoaWxlLCB0aGUgaW50ZXJhY3Rpb24gdGVybSwgdGhvdWdoIHBvc2l0aXZlICgwLjM2NDcpLCBhbHNvIGZhbGxzIHNob3J0IG9mIHNpZ25pZmljYW5jZSwgaW1wbHlpbmcgdGhhdCB0aGUgY29tYmluZWQgZWZmZWN0IG9mIHN0YXRlIGFuZCByZWJlbCBzdHJlbmd0aCBtaWdodCBub3QgYmUgYXMgc3RyYWlnaHRmb3J3YXJkIGFzIG9uZSBtaWdodCBleHBlY3QuCgpUaGUgbW9kZWzigJlzIGhpZ2ggUsKyICgwLjk1MTcyKSB0ZWxscyB1cyBpdCBkb2VzIGEgc29saWQgam9iIG9mIGV4cGxhaW5pbmcgdGhlIHZhcmlhdGlvbiBpbiByZWJlbCB2aWN0b3J5IG91dGNvbWVzLCBidXQgdGhlIGFic2VuY2Ugb2Ygc3Ryb25nIHNpZ25pZmljYW5jZSBpbiBtb3N0IHZhcmlhYmxlcyBzdWdnZXN0cyB0aGVyZSBhcmUgdW5kZXJseWluZyBkeW5hbWljcyB0aGF0IGFyZW4ndCBmdWxseSBjYXB0dXJlZCBoZXJlLiBUaGUgcmVzdWx0cyBsZWF2ZSB1cyBwb25kZXJpbmcgdGhlIG51YW5jZWQgZmFjdG9ycyB0aGF0IGNvbnRyaWJ1dGUgdG8gYSByZWJlbCB2aWN0b3J5LCBiZXlvbmQganVzdCB0aGUgb2JzZXJ2YWJsZSBtZXRyaWNzLgoKIyMjIEVpZ2h0aCBNb2RlbAoKKipTYW1lIGFzIHRoZSBUaGlyZCBhbmQgRm91cnRoIG1vZGVscyBidXQgd2l0aCBGRSBhbmQgY2x1c3RlcmVkIGVycm9ycyBDb2V0aG5pYyBOQUNISUtFVCAoTk9OLUJJTkFSWSkqKgpMZXZlbCBvZiB0aHJlYXQgcmVtb3ZlZCBiZWNhdXNlIHdlIHdpc2ggdG8gY2FwdHVyZSB0aGUgc3luZXJnaXN0aWMgZWZmZWN0cyBvZiBpbnRlcmFjdGlvbiB0ZXJtIApgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQptb2RlbF9vdXRjb21lX2JpbmFyeV9ka184IDwtIGZlb2xzKG91dGNvbWVfYmluYXJ5X3JlYmVsX3ZpY3Rvcnlfa2F1ciB+CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCArIHBvbGl0eTIgKyBzdGF0ZV9zdHJlbmd0aCArIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCArIGR1cmF0aW9uX3llYXIgKyBldGhwb2wgKyBzdGF0ZV9zdHJlbmd0aCpyZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgfCBnb3Zlcm5tZW50LCBkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpCgoKZml4ZXN0OjpldGFibGUobW9kZWxfb3V0Y29tZV9iaW5hcnlfZGtfOCkKCmBgYApUaGUgcG9saXR5MiB2YXJpYWJsZSBpcyBub3RhYmx5IHNpZ25pZmljYW50LCBpbmRpY2F0aW5nIHRoYXQgYXMgYSBuYXRpb24gYmVjb21lcyBtb3JlIGRlbW9jcmF0aWMsIHRoZSBsaWtlbGlob29kIG9mIGEgcmViZWwgdmljdG9yeSBkZWNyZWFzZXMsIHdpdGggYSBjb2VmZmljaWVudCBvZiAtMC4wNjg3LiBUaGlzIGZpbmRpbmcgYWxpZ25zIHdpdGggdGhlIGlkZWEgdGhhdCBkZW1vY3JhdGljIGluc3RpdHV0aW9ucywgd2l0aCB0aGVpciBjYXBhY2l0eSBmb3IgYnJvYWRlciBpbmNsdXNpb24gYW5kIGNvbmZsaWN0IHJlc29sdXRpb24sIGNyZWF0ZSBlbnZpcm9ubWVudHMgbGVzcyBjb25kdWNpdmUgdG8gcmViZWwgc3VjY2Vzcy4KCkhvd2V2ZXIsIG90aGVyIGZhY3RvcnMsIHN1Y2ggYXMgc3RhdGVfc3RyZW5ndGggYW5kIGl0cyBpbnRlcmFjdGlvbiB3aXRoIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCwgZG8gbm90IGV4aGliaXQgc3RhdGlzdGljYWwgc2lnbmlmaWNhbmNlLgoKVGhlIGhpZ2ggUsKyIHZhbHVlICgwLjk1MTczKSB1bmRlcnNjb3JlcyB0aGUgbW9kZWwncyBzdHJvbmcgZXhwbGFuYXRvcnkgcG93ZXIsIGJ1dCB0aGUgbWl4ZWQgc2lnbmlmaWNhbmNlIG9mIHZhcmlhYmxlcyBpbnZpdGVzIGEgbW9yZSBjYXV0aW91cyBpbnRlcnByZXRhdGlvbi4gVGhlIHJlc3VsdHMgaGludCBhdCB0aGUgaW50cmljYXRlIGFuZCBtdWx0aWZhY2V0ZWQgbmF0dXJlIG9mIHJlYmVsIHZpY3Rvcmllcywgc3VnZ2VzdGluZyB0aGF0IHdoaWxlIGRlbW9jcmF0aWMgcm9idXN0bmVzcyBwbGF5cyBhIGNsZWFyIHJvbGUsIG90aGVyIGZhY3RvcnMgYXJlIGRlZXBseSBpbnRlcnR3aW5lZCwgcG9zc2libHkgcmVxdWlyaW5nIGEgbW9yZSBncmFudWxhciBhbmFseXNpcyB0byBmdWxseSB1bmRlcnN0YW5kIHRoZWlyIGltcGFjdHMuCgoKCiMjIyBOaW50aCBNb2RlbAoKKipBZGRpdGlvbmFsIENvbnRyb2xzIEZFT0xTIHdpdGggQ29ldGhuaWMgTmFjaGlrZXQgKEJpbmFyeSkqKgoKQWRkaW5nIFRocmVlIFZhcmlhYmxlcyBhbmQgUmVtb3ZpbmcgU3RhdGUgU3RyZW5ndGggZHVlIHRvIHBvc3NpYmlsaXR5IG9mIE11bHRpY29sbGluZWFyaXR5IGFuZCBhZGRpbmcgaW5kaXZpZHVhbCBwcmVkaWN0b3JzIG9mIHN0YXRlIHN0cmVuZ3RoCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9Cm1vZGVsX291dGNvbWVfYmluYXJ5X2RrXzkgPC0gZmVvbHMob3V0Y29tZV9iaW5hcnlfcmViZWxfdmljdG9yeV9rYXVyIH4KICAgICAgICAgICAgICAgICAgICAgICAgY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSArIHBvbGl0eTIgKyBnZHBjYXBpdGFfaW1wdXRlZF9lbnRpcmUgKyBsbWlscGVyX2ltcHV0ZWRfZW50aXJlICsgbHRyb29wcmF0aW9faW1wdXRlZF9lbnRpcmUgKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sIHwgZ292ZXJubWVudCwKICAgICAgICAgICAgICAgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pYywgY2x1c3RlciA9IH5nb3Zlcm5tZW50KQoKCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX291dGNvbWVfYmluYXJ5X2RrXzkpCgpgYGAKVGhlIHBvbGl0eTIgdmFyaWFibGUgaXMgc2lnbmlmaWNhbnRseSBuZWdhdGl2ZSAoLTAuMDkwNCksIGluZGljYXRpbmcgdGhhdCBoaWdoZXIgbGV2ZWxzIG9mIGRlbW9jcmFjeSByZWR1Y2UgdGhlIGNoYW5jZXMgb2YgcmViZWwgc3VjY2Vzcy4gRWNvbm9taWMgc3RyZW5ndGgsIG1lYXN1cmVkIGJ5IGdkcGNhcGl0YV9pbXB1dGVkX2VudGlyZSwgYWxzbyBzaWduaWZpY2FudGx5IGRlY3JlYXNlcyB0aGUgbGlrZWxpaG9vZCBvZiBhIHJlYmVsIHZpY3Rvcnkgd2l0aCBhIGNvZWZmaWNpZW50IG9mIC0xLjAxNS4KCk9uIHRoZSBvdGhlciBoYW5kLCBtaWxpdGFyeSBwZXJzb25uZWwgKGxtaWxwZXJfaW1wdXRlZF9lbnRpcmUpIGFuZCB0cm9vcCByYXRpbyAobHRyb29wcmF0aW9faW1wdXRlZF9lbnRpcmUpIHBvc2l0aXZlbHkgaW5mbHVlbmNlIHRoZSBjaGFuY2VzIG9mIGEgcmViZWwgdmljdG9yeSwgd2l0aCBzaWduaWZpY2FudCBjb2VmZmljaWVudHMgb2YgMC41Nzc5IGFuZCAwLjI4NzgsIHJlc3BlY3RpdmVseS4gVGhlIHJlYmVsX3N0cmVuZ3RoX25hY2hpa2V0X3NjYWxlZCB2YXJpYWJsZSBpcyBhbHNvIHNpZ25pZmljYW50bHkgcG9zaXRpdmUgKDAuNjk4OSksIHN1Z2dlc3RpbmcgdGhhdCBzdHJvbmdlciByZWJlbCBncm91cHMgYXJlIG1vcmUgbGlrZWx5IHRvIHdpbi4KCk92ZXJhbGwsIHRoaXMgbW9kZWwgaW5kaWNhdGVzIHRoYXQgd2hpbGUgc3Ryb25nZXIgZGVtb2NyYWNpZXMgYW5kIGVjb25vbWllcyBhcmUgbGVzcyBwcm9uZSB0byByZWJlbCB2aWN0b3JpZXMsIGZhY3RvcnMgc3VjaCBhcyBtaWxpdGFyeSBzdHJlbmd0aCBhbmQgdGhlIHJlYmVscycgb3duIHBvd2VyIHBsYXkgY3J1Y2lhbCByb2xlcyBpbiBkZXRlcm1pbmluZyB0aGUgb3V0Y29tZSBvZiBjb25mbGljdHMuCgojIyMgVGVudGggTW9kZWwKCioqQWRkaXRpb25hbCBDb250cm9scyBGRU9MUyB3aXRoIENvZXRobmljIE5hY2hpa2V0IChOb24tQmluYXJ5KSoqCgpBZGRpbmcgVGhyZWUgVmFyaWFibGVzIGFuZCBSZW1vdmluZyBTdGF0ZSBTdHJlbmd0aCBkdWUgdG8gcG9zc2liaWxpdHkgb2YgTXVsdGktY29sbGluZWFyaXR5IGFuZCBhZGRpbmcgaW5kaXZpZHVhbCBwcmVkaWN0b3JzIG9mIHN0YXRlIHN0cmVuZ3RoCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9Cm1vZGVsX291dGNvbWVfYmluYXJ5X2RrXzEwIDwtIGZlb2xzKG91dGNvbWVfYmluYXJ5X3JlYmVsX3ZpY3Rvcnlfa2F1ciB+CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldCArIHBvbGl0eTIgKyBnZHBjYXBpdGFfaW1wdXRlZF9lbnRpcmUgKyBsbWlscGVyX2ltcHV0ZWRfZW50aXJlICsgbHRyb29wcmF0aW9faW1wdXRlZF9lbnRpcmUgKyByZWJlbF9zdHJlbmd0aF9uYWNoaWtldF9zY2FsZWQgKyBkdXJhdGlvbl95ZWFyICsgZXRocG9sIHwgZ292ZXJubWVudCwKICAgICAgICAgICAgICAgZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pYywgY2x1c3RlciA9IH5nb3Zlcm5tZW50KQoKCmZpeGVzdDo6ZXRhYmxlKG1vZGVsX291dGNvbWVfYmluYXJ5X2RrXzEwKQoKYGBgCkluIHRoaXMgbW9kZWwsIGhpZ2hlciBkZW1vY3JhY3kgKHBvbGl0eTIpIGFuZCBHRFAgcGVyIGNhcGl0YSBzaWduaWZpY2FudGx5IHJlZHVjZSB0aGUgbGlrZWxpaG9vZCBvZiBhIHJlYmVsIHZpY3RvcnksIHdpdGggY29lZmZpY2llbnRzIG9mIC0wLjA5MDQgYW5kIC0xLjAxNSwgcmVzcGVjdGl2ZWx5LiBDb252ZXJzZWx5LCBpbmNyZWFzZWQgbWlsaXRhcnkgcGVyc29ubmVsIGFuZCB0cm9vcCByYXRpb3MgcG9zaXRpdmVseSBpbmZsdWVuY2UgcmViZWwgc3VjY2Vzcy4gUmViZWwgc3RyZW5ndGggYWxzbyBzdHJvbmdseSBib29zdHMgdGhlIGNoYW5jZXMgb2YgdmljdG9yeSwgcmVmbGVjdGVkIGluIGEgc2lnbmlmaWNhbnQgY29lZmZpY2llbnQgb2YgMC42OTg4LgoKCiMjIFNvbWUgTW9yZSBNb2RlbHMgZm9yIE91dGNvbWUgdmFyaWFibGUgKEJpbmFyeSBhbmQgTm9uLUJpbmFyeSkgey50YWJzZXR9CgoKIyMjIFVuaXZhcmlhdGUgTW9kZWxzIGZvcjogQ29uZmxpY3Qgb3V0Y29tZSAoYmluYXJ5IGFuZCBub24tYmluYXJ5KSB+IENvZXRobmljaXR5IChiaW5hcnkgYW5kIG5vbi1iaW5hcnkpCgoqKipVbml2YXJpYXRlIE1vZGVsIEZvciBPdXRjb21lIChCaW5hcnkpIGFuZCBDb2V0aG5pY2l0eSBOYWNoaWtldCAoQmluYXJ5KS0tTW9kZWwxOyBVbml2YXJpYXRlIE1vZGVsIEZvciBPdXRjb21lIChCaW5hcnkpIGFuZCBDb2V0aG5pY2l0eSBOYWNoaWtldCAoTm9uIEJpbmFyeSlNb2RlbCAyOyBVbml2YXJpYXRlIE1vZGVsIEZvciBPdXRjb21lIChOb24tQmluYXJ5KSBhbmQgQ29ldGhuaWNpdHkgTmFjaGlrZXQgKE5vbiBCaW5hcnkpLS1Nb2RlbCAzOyBVbml2YXJpYXRlIE1vZGVsIEZvciBPdXRjb21lIChOb24gQmluYXJ5KSBhbmQgQ29ldGhuaWNpdHkgTmFjaGlrZXQgKEJpbmFyeSkqKioKYGBge3IgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KTW9kZWxzX091dGNvbWVfU2ltcGxlIDwtIGxpc3QoCiAgT25lID0gIGZlb2xzKG91dGNvbWVfYmluYXJ5X3JlYmVsX3ZpY3Rvcnlfa2F1ciB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldF9iaW5hcnkgfCBnb3Zlcm5tZW50ICxkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpLAogIFR3byA9IGZlb2xzKG91dGNvbWVfYmluYXJ5X3JlYmVsX3ZpY3Rvcnlfa2F1ciB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldHwgZ292ZXJubWVudCAsZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pYywgY2x1c3RlciA9IH5nb3Zlcm5tZW50KSwKICBUaHJlZSA9IGZlb2xzKG91dGNvbWUgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXR8IGdvdmVybm1lbnQgLGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWMsIGNsdXN0ZXIgPSB+Z292ZXJubWVudCksCiAgRm91ciA9IGZlb2xzKG91dGNvbWUgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXRfYmluYXJ5fCBnb3Zlcm5tZW50ICxkYXRhID0gbWFpbl9jaXZpbHdhcnNfZXRobmljLCBjbHVzdGVyID0gfmdvdmVybm1lbnQpKQoKZml4ZXN0OjpldGFibGUoTW9kZWxzX091dGNvbWVfU2ltcGxlKQoKYGBgCgoKIyMjIFRIUkVFIENPTlRST0xTIE11bHRpdmFyaWF0ZSBNb2RlbHMgZm9yOiDigaBDb25mbGljdCBvdXRjb21lIChiaW5hcnkgYW5kIG5vbi1iaW5hcnkpIH4gQ29ldGhuaWNpdHkgKGJpbmFyeSBhbmQgbm9uLWJpbmFyeSkgKyBnZHAgKyBwb2xpdHkgKyBkdXJhdGlvbiAKCioqKk11bHRpdmFyaWF0ZSBNb2RlbCBGb3IgT3V0Y29tZSAoQmluYXJ5KSBhbmQgQ29ldGhuaWNpdHkgTmFjaGlrZXQgKEJpbmFyeSkrIGdkcCArIHBvbGl0eSArIGR1cmF0aW9uIC0tTW9kZWwxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdWx0aXZhcmlhdGUgTW9kZWwgRm9yIE91dGNvbWUgKEJpbmFyeSkgYW5kIENvZXRobmljaXR5IE5hY2hpa2V0IChOb24gQmluYXJ5KSArIGdkcCArIHBvbGl0eSArIGR1cmF0aW9uICBNb2RlbCAyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVsdGl2YXJpYXRlIE1vZGVsIEZvciBPdXRjb21lIChOb24tQmluYXJ5KSBhbmQgQ29ldGhuaWNpdHkgTmFjaGlrZXQgKE5vbiBCaW5hcnkpICsgZ2RwICsgcG9saXR5ICsgZHVyYXRpb24gLS1Nb2RlbCAzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11bHRpdmFyaWF0ZSBNb2RlbCBGb3IgT3V0Y29tZSAoTm9uIEJpbmFyeSkgYW5kIENvZXRobmljaXR5IE5hY2hpa2V0IChCaW5hcnkpICsgZ2RwICsgcG9saXR5ICsgZHVyYXRpb24gLS1Nb2RlbCA0KioqCmBgYHtyIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9Ck1vZGVsc19PdXRjb21lX3RocmVlY29udHJvbHMgPC0gbGlzdCgKICBPbmUgPSAgZmVvbHMob3V0Y29tZV9iaW5hcnlfcmViZWxfdmljdG9yeV9rYXVyIH4gY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0X2JpbmFyeSArIGdkcGNhcGl0YV9pbXB1dGVkX2VudGlyZSArIHBvbGl0eTIgKyBkdXJhdGlvbl95ZWFyIHwgZ292ZXJubWVudCAsZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pYywgY2x1c3RlciA9IH5nb3Zlcm5tZW50KSwKICAKICBUd28gPSBmZW9scyhvdXRjb21lX2JpbmFyeV9yZWJlbF92aWN0b3J5X2thdXIgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQgKyBnZHBjYXBpdGFfaW1wdXRlZF9lbnRpcmUgKyBwb2xpdHkyICsgZHVyYXRpb25feWVhcnwgZ292ZXJubWVudCAsZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pYywgY2x1c3RlciA9IH5nb3Zlcm5tZW50KSwKICAKICBUaHJlZSA9IGZlb2xzKG91dGNvbWUgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXQgKyBnZHBjYXBpdGFfaW1wdXRlZF9lbnRpcmUgKyBwb2xpdHkyICsgZHVyYXRpb25feWVhcnwgZ292ZXJubWVudCAsZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pYywgY2x1c3RlciA9IH5nb3Zlcm5tZW50KSwKICAKICBGb3VyID0gZmVvbHMob3V0Y29tZSB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldF9iaW5hcnkgKyBnZHBjYXBpdGFfaW1wdXRlZF9lbnRpcmUgKyBwb2xpdHkyICsgZHVyYXRpb25feWVhcnwgZ292ZXJubWVudCAsZGF0YSA9IG1haW5fY2l2aWx3YXJzX2V0aG5pYywgY2x1c3RlciA9IH5nb3Zlcm5tZW50KSkKCmZpeGVzdDo6ZXRhYmxlKE1vZGVsc19PdXRjb21lX3RocmVlY29udHJvbHMpCgpgYGAKCgojIyMgRk9VUiBDT05UUk9MUyBNdWx0aXZhcmlhdGUgTW9kZWxzIGZvcjog4oGgQ29uZmxpY3Qgb3V0Y29tZSAoYmluYXJ5IGFuZCBub24tYmluYXJ5KSB+IENvZXRobmljaXR5IChiaW5hcnkgYW5kIG5vbi1iaW5hcnkpICsgZ2RwICsgcG9saXR5ICsgZHVyYXRpb24gKyBldGhwb2wKCioqKk11bHRpdmFyaWF0ZSBNb2RlbCBGb3IgT3V0Y29tZSAoQmluYXJ5KSBhbmQgQ29ldGhuaWNpdHkgTmFjaGlrZXQgKEJpbmFyeSkrIGdkcCArIHBvbGl0eSArIGR1cmF0aW9uICsgZXRocG9sIC0tTW9kZWwxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11bHRpdmFyaWF0ZSBNb2RlbCBGb3IgT3V0Y29tZSAoQmluYXJ5KSBhbmQgQ29ldGhuaWNpdHkgTmFjaGlrZXQgKE5vbiBCaW5hcnkpICsgZ2RwICsgcG9saXR5ICsgZHVyYXRpb24gKyBldGhwb2wgTW9kZWwgMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVsdGl2YXJpYXRlIE1vZGVsIEZvciBPdXRjb21lIChOb24tQmluYXJ5KSBhbmQgQ29ldGhuaWNpdHkgTmFjaGlrZXQgKE5vbiBCaW5hcnkpICsgZ2RwICsgcG9saXR5ICsgZHVyYXRpb24gKyBldGhwb2wgLS1Nb2RlbCAzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVsdGl2YXJpYXRlIE1vZGVsIEZvciBPdXRjb21lIChOb24gQmluYXJ5KSBhbmQgQ29ldGhuaWNpdHkgTmFjaGlrZXQgKEJpbmFyeSkgKyBnZHAgKyBwb2xpdHkgKyBkdXJhdGlvbiArIGV0aHBvbCAtLU1vZGVsIDQqKioKYGBge3IgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KTW9kZWxzX091dGNvbWVfZm91cmNvbnRyb2xzIDwtIGxpc3QoCiAgT25lID0gIGZlb2xzKG91dGNvbWVfYmluYXJ5X3JlYmVsX3ZpY3Rvcnlfa2F1ciB+IGNvZXRobmljX3JlYmVsX3BnbV9uYWNoaWtldF9iaW5hcnkgKyBnZHBjYXBpdGFfaW1wdXRlZF9lbnRpcmUgKyBwb2xpdHkyICsgZHVyYXRpb25feWVhciArIGV0aHBvbCB8IGdvdmVybm1lbnQgLGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWMsIGNsdXN0ZXIgPSB+Z292ZXJubWVudCksCiAgCiAgVHdvID0gZmVvbHMob3V0Y29tZV9iaW5hcnlfcmViZWxfdmljdG9yeV9rYXVyIH4gY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0ICsgZ2RwY2FwaXRhX2ltcHV0ZWRfZW50aXJlICsgcG9saXR5MiArIGR1cmF0aW9uX3llYXIgKyBldGhwb2x8IGdvdmVybm1lbnQgLGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWMsIGNsdXN0ZXIgPSB+Z292ZXJubWVudCksCiAgCiAgVGhyZWUgPSBmZW9scyhvdXRjb21lIH4gY29ldGhuaWNfcmViZWxfcGdtX25hY2hpa2V0ICsgZ2RwY2FwaXRhX2ltcHV0ZWRfZW50aXJlICsgcG9saXR5MiArIGR1cmF0aW9uX3llYXIgKyBldGhwb2x8IGdvdmVybm1lbnQgLGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWMsIGNsdXN0ZXIgPSB+Z292ZXJubWVudCksCiAgCiAgRm91ciA9IGZlb2xzKG91dGNvbWUgfiBjb2V0aG5pY19yZWJlbF9wZ21fbmFjaGlrZXRfYmluYXJ5ICsgZ2RwY2FwaXRhX2ltcHV0ZWRfZW50aXJlICsgcG9saXR5MiArIGR1cmF0aW9uX3llYXIgKyBldGhwb2x8IGdvdmVybm1lbnQgLGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWMsIGNsdXN0ZXIgPSB+Z292ZXJubWVudCkpCgpmaXhlc3Q6OmV0YWJsZShNb2RlbHNfT3V0Y29tZV9mb3VyY29udHJvbHMpCgpgYGAKCgpgYGB7ciBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQojIyBSZWdyZXNzaW9uIGZvciBPdXRjb21lICh1Y2RwdGVybWluYXRpb24gZGF0YXNldCkgYXMgRFYKIyMgTG9naXQgUmVncmVzc2lvbiBmb3IgY29fZXRobmljaXR5X2RrIGFzIERWCgoKbW9kZWxfb3V0Y29tZSA8LSBmZWdsbShvdXRjb21lIH4gcG9saXR5MiArIGdkcGNhcGl0YV9pbXB1dGVkX2VudGlyZSArIHJlYnN0cmVuZ3RoX2FkYW1fbnNhICsgbG1pbHBlcl9pbXB1dGVkX2VudGlyZSArIGx0cm9vcHJhdGlvX2ltcHV0ZWRfZW50aXJlICsgZXRocG9sICsgZHVyYXRpb25feWVhciArIGxvZ2JkZWF0aCArIHN0YXRlX3N0cmVuZ3RoICsgTGV2ZWxfb2ZfVGhyZWF0IHwgZ292ZXJubWVudCwgCiAgICAgICAgICAgICAgIGRhdGEgPSBtYWluX2Npdmlsd2Fyc19ldGhuaWMpCgpzdW1tYXJ5KG1vZGVsX291dGNvbWUpCgpmaXhlc3Q6OmV0YWJsZShtb2RlbF9vdXRjb21lLAogICAgICAgICAgICAgICB0aXRsZSA9ICJHZW5lcmFsaXNlZCBSZWdyZXNzaW9uIE1vZGVsIE91dGNvbWUgYXMgRFYiKQoKYGBgCgoKCg==