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==