Summary of genotyping

    
      SS  SL  LL
  GG   0   0   1
  AG   1  24  30
  AA  67 147  86

0 people are SgSg, 0 people are SgLg, 1 person is LgLg 1 person is SaSg, 24 people are SaLg, 30 people are LaLg 67 people are SaSa, 147 people are SaLa, 86 people are LaLa

Create effect-coded variables for 3 genotype groups with combined 5-HTTLPR and rs25531: Sx/Sx vs. La/La vs. all other genotypes

Check for normality of distribution of predictor variables:

BDI and NLEQ are both positively skewed. Use square root transformation to normalize both variables.

Center predictor variables

genes$bdi_c <- genes$BDI_tot - mean(genes$BDI_tot, na.rm=T)
genes$nleq_c <- genes$NLEQ_tot - mean(genes$NLEQ_tot, na.rm=T)
genes$nleq_sq_c <- genes$nleq_sq - mean(genes$nleq_sq, na.rm=T)
genes$bdi_sq_c <- genes$bdi_sq - mean(genes$bdi_sq, na.rm=T)

GxE interaction models

Model 1: Gene by NLEQ interaction effect on SIR:

mod1 <- lm(SIR_tot ~ SS_eff*nleq_sq_c + LaLa_eff*nleq_sq_c, data=genes)
summary(mod1)

Call:
lm(formula = SIR_tot ~ SS_eff * nleq_sq_c + LaLa_eff * nleq_sq_c, 
    data = genes)

Residuals:
    Min      1Q  Median      3Q     Max 
-21.737  -7.533  -1.397   5.597  54.567 

Coefficients:
                   Estimate Std. Error t value Pr(>|t|)    
(Intercept)         18.0207     0.6533  27.585  < 2e-16 ***
SS_eff              -0.6098     1.0189  -0.598   0.5499    
nleq_sq_c            2.6109     0.3412   7.651 1.99e-13 ***
LaLa_eff             0.3022     0.9482   0.319   0.7501    
SS_eff:nleq_sq_c    -1.2184     0.5351  -2.277   0.0234 *  
nleq_sq_c:LaLa_eff   1.1778     0.4954   2.377   0.0180 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 10.86 on 347 degrees of freedom
  (6 observations deleted due to missingness)
Multiple R-squared:  0.2056,    Adjusted R-squared:  0.1942 
F-statistic: 17.96 on 5 and 347 DF,  p-value: 7.591e-16

Model 2: Add depression as covariate

mod2 <- lm(SIR_tot ~ SS_eff*nleq_sq_c + LaLa_eff*nleq_sq_c + bdi_sq_c, data=genes)
summary(mod2)

Call:
lm(formula = SIR_tot ~ SS_eff * nleq_sq_c + LaLa_eff * nleq_sq_c + 
    bdi_sq_c, data = genes)

Residuals:
    Min      1Q  Median      3Q     Max 
-21.679  -7.333  -1.311   5.682  53.240 

Coefficients:
                   Estimate Std. Error t value Pr(>|t|)    
(Intercept)         18.0892     0.6450  28.046  < 2e-16 ***
SS_eff              -0.4167     1.0072  -0.414  0.67931    
nleq_sq_c            2.0068     0.3855   5.206 3.32e-07 ***
LaLa_eff             0.2399     0.9359   0.256  0.79782    
bdi_sq_c             1.7632     0.5479   3.218  0.00141 ** 
SS_eff:nleq_sq_c    -1.2164     0.5281  -2.304  0.02184 *  
nleq_sq_c:LaLa_eff   1.2653     0.4897   2.584  0.01017 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 10.72 on 346 degrees of freedom
  (6 observations deleted due to missingness)
Multiple R-squared:  0.2287,    Adjusted R-squared:  0.2153 
F-statistic:  17.1 on 6 and 346 DF,  p-value: < 2.2e-16

Model results hold when depression entered as covariate.

Compare models 1 and 2

Dependent variable:
SIR_tot
(1) (2)
Constant 18.021*** 18.089***
(0.653) (0.645)
SS -0.610 -0.417
(1.019) (1.007)
NLEQ 2.611*** 2.007***
(0.341) (0.386)
LaLa 0.302 0.240
(0.948) (0.936)
BDI 1.763***
(0.548)
SS*NLEQ -1.218** -1.216**
(0.535) (0.528)
LaLa*NLEQ 1.178** 1.265**
(0.495) (0.490)
Observations 353 353
R2 0.206 0.229
Adjusted R2 0.194 0.215
Residual Std. Error 10.859 (df = 347) 10.716 (df = 346)
F Statistic 17.962*** (df = 5; 347) 17.098*** (df = 6; 346)
Note: p<0.1; p<0.05; p<0.01

Interaction plots

Scale for 'colour' is already present. Adding another scale for
'colour', which will replace the existing scale.

LaLa group displays a greater susceptibility to the impact of life stress (NLEQ) on self-control, whereas SS group less reactive to life stress in terms of effects on hoarding.

Specificity quesition

Rerun models 1 and 2 substituting OCIR as outcome variable

mod4 <- lm(OCIR_tot ~ LaLa_eff*nleq_sq_c + SS_eff*nleq_sq_c, data=genes)
summary(mod4)

Call:
lm(formula = OCIR_tot ~ LaLa_eff * nleq_sq_c + SS_eff * nleq_sq_c, 
    data = genes)

Residuals:
    Min      1Q  Median      3Q     Max 
-16.252  -6.300  -2.305   4.780  30.349 

Coefficients:
                   Estimate Std. Error t value Pr(>|t|)    
(Intercept)         12.8020     0.5192  24.656  < 2e-16 ***
LaLa_eff             0.1231     0.7537   0.163    0.870    
nleq_sq_c            1.4650     0.2712   5.402 1.23e-07 ***
SS_eff              -0.4613     0.8098  -0.570    0.569    
LaLa_eff:nleq_sq_c  -0.1674     0.3938  -0.425    0.671    
nleq_sq_c:SS_eff     0.1743     0.4253   0.410    0.682    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 8.631 on 347 degrees of freedom
  (6 observations deleted due to missingness)
Multiple R-squared:  0.1013,    Adjusted R-squared:  0.08835 
F-statistic: 7.823 on 5 and 347 DF,  p-value: 5.409e-07
mod5 <- lm(OCIR_tot ~ LaLa_eff*nleq_sq_c + SS_eff*nleq_sq_c + bdi_sq_c, data=genes)
summary(mod5)

Call:
lm(formula = OCIR_tot ~ LaLa_eff * nleq_sq_c + SS_eff * nleq_sq_c + 
    bdi_sq_c, data = genes)

Residuals:
    Min      1Q  Median      3Q     Max 
-15.604  -5.769  -1.907   3.812  27.992 

Coefficients:
                   Estimate Std. Error t value Pr(>|t|)    
(Intercept)        12.87531    0.50638  25.426  < 2e-16 ***
LaLa_eff            0.05647    0.73477   0.077  0.93879    
nleq_sq_c           0.81906    0.30267   2.706  0.00714 ** 
SS_eff             -0.25489    0.79075  -0.322  0.74739    
bdi_sq_c            1.88548    0.43013   4.384 1.55e-05 ***
LaLa_eff:nleq_sq_c -0.07385    0.38443  -0.192  0.84778    
nleq_sq_c:SS_eff    0.17644    0.41458   0.426  0.67068    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 8.413 on 346 degrees of freedom
  (6 observations deleted due to missingness)
Multiple R-squared:  0.1486,    Adjusted R-squared:  0.1338 
F-statistic: 10.06 on 6 and 346 DF,  p-value: 2.948e-10

Nonsignificant results in OCIR models suggesting that GxE effects seem to be specific to hoarding.

LS0tCnRpdGxlOiAiRlNVX0RhdGFfYW5hbHlzaXMiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSwgd2FybmluZz1GQUxTRSkKbGlicmFyeShmb3JlaWduKQpsaWJyYXJ5KHBzeWNoKQpsaWJyYXJ5KHN0YXJnYXplcikKbGlicmFyeShkcGx5cikKbGlicmFyeShzalBsb3QpCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShzZW1Ub29scykKbGlicmFyeShncmlkKQpnZW5lczwtcmVhZC5jc3YoImdlbmVzTWFyY2gyMDE3LmNzdiIpCnN0cihnZW5lcykKYGBgCgpgYGB7ciwgaW5jbHVkZT1GfQojIENyZWF0ZSBmYWN0b3IgdmFyaWFibGVzIHdpdGggZ2VuZXMKZ2VuZXMkU0VSVGYgPC0gYXMuZmFjdG9yKGdlbmVzJFNFUlQyTFBSKQpzdW1tYXJ5KGdlbmVzJFNFUlRmKQojMSBpcyBTUyAvIDIgaXMgU0wgLyAzIGlzIExMCgpnZW5lcyRyczI1NTMxZiA8LSBhcy5mYWN0b3IoZ2VuZXMkcnMyNTUzMSkKc3VtbWFyeShnZW5lcyRyczI1NTMxZikKIyAxIGlzIEdHIC8gMiBpcyBBRyAvIDMgaXMgQUEKCnRhYmxlKGdlbmVzJHJzMjU1MzEsIGdlbmVzJFNFUlQyTFBSKQojcm93cyBhcmUgcnNzLCBjb2xzIGFyZSBTRVJUIAojIDAgcGVvcGxlIGFyZSBTZ1NnLCAwIHBlb3BsZSBhcmUgU2dMZywgMSBwZXJzb24gaXMgTGdMZwojIDEgcGVyc29uIGlzIFNhU2csIDI0IHBlb3BsZSBhcmUgU2FMZywgMzAgcGVvcGxlIGFyZSBMYUxnCiMgNjcgcGVvcGxlIGFyZSBTYVNhLCAxNDcgcGVvcGxlIGFyZSBTYUxhLCA4NiBwZW9wbGUgYXJlIExhTGEKCiMgQ29tYmluZWQgNS1IVFRMUFIvcnMyNTUzMSBnZW5vdHlwZQojIExhL0xhIGdyb3VwIHZzLiBldmVyeXRoaW5nIGVsc2UKZ2VuZXMkTGFMYSA8LSBpZmVsc2UoKGdlbmVzJFNFUlQyTFBSPT0zKSAmIChnZW5lcyRyczI1NTMxPT0zKSwgMSwgMCkKZ2VuZXMkTGFMYSA8LSBhcy5mYWN0b3IoZ2VuZXMkTGFMYSkKc3VtbWFyeShnZW5lcyRMYUxhKSAgICAgCgpnZW5lcyRTUyA8LSBpZmVsc2UoKGdlbmVzJFNFUlQyTFBSPT0xKSAmIChnZW5lcyRyczI1NTMxIT0wKSwgMSwgMCkKZ2VuZXMkU1MgPC0gYXMuZmFjdG9yKGdlbmVzJFNTKQpzdW1tYXJ5KGdlbmVzJFNTKSAgICAKCmdlbmVzJExhTGFfZWZmIDwtIGlmZWxzZSgoZ2VuZXMkU0VSVDJMUFI9PTMpICYgKGdlbmVzJHJzMjU1MzE9PTMpLCAxLCBpZmVsc2UoKGdlbmVzJFNFUlQyTFBSPT0xKSAmIChnZW5lcyRyczI1NTMxIT0wKSwgMCwgLTEpKQoKCmdlbmVzJFNTX2VmZiA8LSBpZmVsc2UoKGdlbmVzJFNFUlQyTFBSPT0zKSAmIChnZW5lcyRyczI1NTMxPT0zKSwgMCwgaWZlbHNlKChnZW5lcyRTRVJUMkxQUj09MSkgJiAoZ2VuZXMkcnMyNTUzMSE9MCksIDEsIC0xKSkKCgpnZW5lcyRMYUxhZSA8LSBhcy5mYWN0b3IoaWZlbHNlKChnZW5lcyRTRVJUMkxQUj09MykgJiAoZ2VuZXMkcnMyNTUzMT09MyksIDEsIGlmZWxzZSgoZ2VuZXMkU0VSVDJMUFI9PTEpICYgKGdlbmVzJHJzMjU1MzEhPTApLCAwLCAtMSkpKQpgYGAKCiMjIFN1bW1hcnkgb2YgZ2Vub3R5cGluZwpgYGB7ciwgZWNobz1GQUxTRX0KdGFiIDwtIHRhYmxlKGdlbmVzJHJzMjU1MzEsIGdlbmVzJFNFUlQyTFBSKQpyb3duYW1lcyh0YWIpIDwtIGMoIkdHIiwiQUciLCJBQSIpCmNvbG5hbWVzKHRhYikgPC0gYygiU1MiLCJTTCIsIkxMIikKdGFiCiNyb3dzIGFyZSByc3MsIGNvbHMgYXJlIFNFUlQgCiMgMCBwZW9wbGUgYXJlIFNnU2csIDAgcGVvcGxlIGFyZSBTZ0xnLCAxIHBlcnNvbiBpcyBMZ0xnCiMgMSBwZXJzb24gaXMgU2FTZywgMjQgcGVvcGxlIGFyZSBTYUxnLCAzMCBwZW9wbGUgYXJlIExhTGcKIyA2NyBwZW9wbGUgYXJlIFNhU2EsIDE0NyBwZW9wbGUgYXJlIFNhTGEsIDg2IHBlb3BsZSBhcmUgTGFMYQpgYGAKMCBwZW9wbGUgYXJlIFNnU2csIDAgcGVvcGxlIGFyZSBTZ0xnLCAxIHBlcnNvbiBpcyBMZ0xnCjEgcGVyc29uIGlzIFNhU2csIDI0IHBlb3BsZSBhcmUgU2FMZywgMzAgcGVvcGxlIGFyZSBMYUxnCjY3IHBlb3BsZSBhcmUgU2FTYSwgMTQ3IHBlb3BsZSBhcmUgU2FMYSwgODYgcGVvcGxlIGFyZSBMYUxhCgpDcmVhdGUgZWZmZWN0LWNvZGVkIHZhcmlhYmxlcyBmb3IgMyBnZW5vdHlwZSBncm91cHMgd2l0aCBjb21iaW5lZCA1LUhUVExQUiBhbmQgcnMyNTUzMTogU3gvU3ggdnMuIExhL0xhIHZzLiBhbGwgb3RoZXIgZ2Vub3R5cGVzCgojIyBDaGVjayBmb3Igbm9ybWFsaXR5IG9mIGRpc3RyaWJ1dGlvbiBvZiBwcmVkaWN0b3IgdmFyaWFibGVzOgpgYGB7ciwgaW5jbHVkZT1GLCB3YXJuaW5nPUZ9Cmhpc3QoZ2VuZXMkQkRJX3RvdCkKaGlzdChnZW5lcyROTEVRX3RvdCkKc2tldyhnZW5lcyRCRElfdG90KQpza2V3KGdlbmVzJE5MRVFfdG90KQprdXJ0b3NpcyhnZW5lcyRCRElfdG90KQprdXJ0b3NpcyhnZW5lcyROTEVRX3RvdCkKYGBgCkJESSBhbmQgTkxFUSBhcmUgYm90aCBwb3NpdGl2ZWx5IHNrZXdlZC4gVXNlIHNxdWFyZSByb290IHRyYW5zZm9ybWF0aW9uIHRvIG5vcm1hbGl6ZSBib3RoIHZhcmlhYmxlcy4KCmBgYHtyLCBpbmNsdWRlPUYsd2FybmluZz1GQUxTRX0KZ2VuZXMkbmxlcV9zcSA8LSBzcXJ0KGdlbmVzJE5MRVFfdG90KQpoaXN0KGdlbmVzJG5sZXFfc3EpCmdlbmVzJGJkaV9zcSA8LSBzcXJ0KGdlbmVzJEJESV90b3QpCmhpc3QoZ2VuZXMkYmRpX3NxKQpgYGAKCmBgYHtyLCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpwMSA8LSBnZ3Bsb3QoZGF0YSA9IHN1YnNldChnZW5lcywgIWlzLm5hKE5MRVFfdG90KSksIGFlcyh4ID0gTkxFUV90b3QpKSArIGdlb21faGlzdG9ncmFtKGFlcyh4ID0gTkxFUV90b3QpLCBiaW53aWR0aCA9IDUpCgpwMiA8LSBnZ3Bsb3QoZGF0YSA9IHN1YnNldChnZW5lcywgIWlzLm5hKEJESV90b3QpKSwgYWVzKHggPSBCRElfdG90KSkgKyBnZW9tX2hpc3RvZ3JhbShhZXMoeCA9IEJESV90b3QpLCBiaW53aWR0aCA9IDIpCgpwMyA8LSBnZ3Bsb3QoZGF0YSA9IHN1YnNldChnZW5lcywgIWlzLm5hKG5sZXFfc3EpKSwgYWVzKHggPSBubGVxX3NxKSkgKyBnZW9tX2hpc3RvZ3JhbShhZXMoeCA9IG5sZXFfc3EpLCBiaW53aWR0aCA9IC41KQoKcDQgPC0gZ2dwbG90KGRhdGEgPSBzdWJzZXQoZ2VuZXMsICFpcy5uYShiZGlfc3EpKSwgYWVzKHggPSBiZGlfc3EpKSArIGdlb21faGlzdG9ncmFtKGFlcyh4ID0gYmRpX3NxKSwgYmlud2lkdGggPSAxKQoKCmdyaWQubmV3cGFnZSgpCnB1c2hWaWV3cG9ydCh2aWV3cG9ydChsYXlvdXQ9Z3JpZC5sYXlvdXQoMiwyKSkpCnByaW50KHAxLHZwPXZpZXdwb3J0KGxheW91dC5wb3Mucm93PTEsbGF5b3V0LnBvcy5jb2w9MSkpCnByaW50KHAyLHZwPXZpZXdwb3J0KGxheW91dC5wb3Mucm93PTEsbGF5b3V0LnBvcy5jb2w9MikpCnByaW50KHAzLHZwPXZpZXdwb3J0KGxheW91dC5wb3Mucm93PTIsbGF5b3V0LnBvcy5jb2w9MSkpCnByaW50KHA0LHZwPXZpZXdwb3J0KGxheW91dC5wb3Mucm93PTIsbGF5b3V0LnBvcy5jb2w9MikpCmBgYAoKCiMjIENlbnRlciBwcmVkaWN0b3IgdmFyaWFibGVzCmBgYHtyLCB3YXJuaW5nPUZ9CmdlbmVzJGJkaV9jIDwtIGdlbmVzJEJESV90b3QgLSBtZWFuKGdlbmVzJEJESV90b3QsIG5hLnJtPVQpCmdlbmVzJG5sZXFfYyA8LSBnZW5lcyROTEVRX3RvdCAtIG1lYW4oZ2VuZXMkTkxFUV90b3QsIG5hLnJtPVQpCmdlbmVzJG5sZXFfc3FfYyA8LSBnZW5lcyRubGVxX3NxIC0gbWVhbihnZW5lcyRubGVxX3NxLCBuYS5ybT1UKQpnZW5lcyRiZGlfc3FfYyA8LSBnZW5lcyRiZGlfc3EgLSBtZWFuKGdlbmVzJGJkaV9zcSwgbmEucm09VCkKYGBgCgojIyBHeEUgaW50ZXJhY3Rpb24gbW9kZWxzCiMjIyBNb2RlbCAxOiBHZW5lIGJ5IE5MRVEgaW50ZXJhY3Rpb24gZWZmZWN0IG9uIFNJUjoKYGBge3IsIHdhcm5pbmc9RkFMU0V9Cm1vZDEgPC0gbG0oU0lSX3RvdCB+IFNTX2VmZipubGVxX3NxX2MgKyBMYUxhX2VmZipubGVxX3NxX2MsIGRhdGE9Z2VuZXMpCnN1bW1hcnkobW9kMSkKYGBgCgojIyMgTW9kZWwgMjogQWRkIGRlcHJlc3Npb24gYXMgY292YXJpYXRlCmBgYHtyLCB3YXJuaW5nPUZBTFNFfQptb2QyIDwtIGxtKFNJUl90b3QgfiBTU19lZmYqbmxlcV9zcV9jICsgTGFMYV9lZmYqbmxlcV9zcV9jICsgYmRpX3NxX2MsIGRhdGE9Z2VuZXMpCnN1bW1hcnkobW9kMikKYGBgCk1vZGVsIHJlc3VsdHMgaG9sZCB3aGVuIGRlcHJlc3Npb24gZW50ZXJlZCBhcyBjb3ZhcmlhdGUuCgojIyBDb21wYXJlIG1vZGVscyAxIGFuZCAyCmBgYHtyLCBlY2hvPUYsIHdhcm5pbmc9RiwgcmVzdWx0cz0iYXNpcyJ9CnN0YXJnYXplcihtb2QxLG1vZDIsIHR5cGU9Imh0bWwiLCBpbnRlcmNlcHQuYm90dG9tID0gRiwgY292YXJpYXRlLmxhYmVscyA9IGMoIkNvbnN0YW50IiwgIlNTIiwgIk5MRVEiLCAiTGFMYSIsICJCREkiLCAiU1MqTkxFUSIsICJMYUxhKk5MRVEiKSkKYGBgCgojIyBJbnRlcmFjdGlvbiBwbG90cwpgYGB7ciwgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KaW50IDwtIGxtKFNJUl90b3QgfiBMYUxhZSpubGVxX3NxX2MsIGRhdGE9Z2VuZXMpCnN1bW1hcnkoaW50KQoKaW50MiA8LSBzanAuaW50KGludCwgdHlwZT0iZWZmIiwgaW50LnRlcm09KCJMYUxhZSpubGVxX3NxX2MiKSwgc3dhcC5wcmVkPUYsIGZhY2V0LmdyaWQ9RikKYGBgCgpgYGB7ciwgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRX0KaW50MiRwbG90Lmxpc3RbWzFdXSArIGxhYnModGl0bGU9Ik1vZGVyYXRpbmcgZWZmZWN0IG9mIHN0cmVzcyBvbiByZWxhdGlvbnNoaXAgXG5iZXR3ZWVuIHNlcm90b25pbiB0cmFuc3BvcnRlciBhbmQgaG9hcmRpbmciLCB4PSJOZWdhdGl2ZSBsaWZlIGV2ZW50cyAoTkxFUSkiLCB5PSJIb2FyZGluZyAoU0lSKSIsIGNvbG9yPWMoIkdlbm90eXBlIikpICsgc2NhbGVfY29sb3JfZGlzY3JldGUobGFiZWxzPWMoIk90aGVyIiwiUy9TIiwiTGEvTGEiKSkgKyB0aGVtZShwbG90LnRpdGxlPWVsZW1lbnRfdGV4dChoanVzdD0uNSksIHBhbmVsLmJhY2tncm91bmQ9ZWxlbWVudF9ibGFuaygpLCBheGlzLmxpbmU9ZWxlbWVudF9saW5lKGNvbG9yPSJibGFjayIpKQoKI0Jhc2ljYWxseSBoZXJlLCBpdCBsb29rcyBsaWtlIHRoZSBMYUxhIGdyb3VwIGlzIGRpc3BsYXlpbmcgYSBncmVhdGVyIHN1c2NlcHRpYmlsaXR5IHRvIHRoZSBpbXBhY3Qgb2YgbGlmZSBzdHJlc3MgKE5MRVEpIG9uIHNlbGYtY29udHJvbC4gVGhpcyBsb29rcyBsaWtlIHNvbWUgdHlwZSBvZiBkaWZmZXJlbnRpYWwgc3VzY2VwdGliaWxpdHkgc2l0dWF0aW9uLCBzaW5jZSB0aGV5J3JlIGp1c3Qgb3ZlcmFsbCBtb3JlIHJlYWN0aXZlLiBIb3dldmVyLCBpdCBzdGlsbCBtYWtlcyB0aGUgc2l0dWF0aW9uIGNvbmZ1c2luZyB3aXRoIHJlZ2FyZCB0byBob2FyZGluZy4KYGBgCkxhTGEgZ3JvdXAgZGlzcGxheXMgYSBncmVhdGVyIHN1c2NlcHRpYmlsaXR5IHRvIHRoZSBpbXBhY3Qgb2YgbGlmZSBzdHJlc3MgKE5MRVEpIG9uIHNlbGYtY29udHJvbCwgd2hlcmVhcyBTUyBncm91cCBsZXNzIHJlYWN0aXZlIHRvIGxpZmUgc3RyZXNzIGluIHRlcm1zIG9mIGVmZmVjdHMgb24gaG9hcmRpbmcuCgojIyBTcGVjaWZpY2l0eSBxdWVzaXRpb24gCiMjIyBSZXJ1biBtb2RlbHMgMSBhbmQgMiBzdWJzdGl0dXRpbmcgT0NJUiBhcyBvdXRjb21lIHZhcmlhYmxlCmBgYHtyLCB3YXJuaW5nPUZBTFNFfQptb2Q0IDwtIGxtKE9DSVJfdG90IH4gTGFMYV9lZmYqbmxlcV9zcV9jICsgU1NfZWZmKm5sZXFfc3FfYywgZGF0YT1nZW5lcykKc3VtbWFyeShtb2Q0KQoKbW9kNSA8LSBsbShPQ0lSX3RvdCB+IExhTGFfZWZmKm5sZXFfc3FfYyArIFNTX2VmZipubGVxX3NxX2MgKyBiZGlfc3FfYywgZGF0YT1nZW5lcykKc3VtbWFyeShtb2Q1KQpgYGAKTm9uc2lnbmlmaWNhbnQgcmVzdWx0cyBpbiBPQ0lSIG1vZGVscyBzdWdnZXN0aW5nIHRoYXQgR3hFIGVmZmVjdHMgc2VlbSB0byBiZSBzcGVjaWZpYyB0byBob2FyZGluZy4KCg==