Introduction:

In this project, we analyze the impact of sleep deprivation on reaction time using REML (Restricted Maximum Likelihood) and BLUE (Best Linear Unbiased Estimators). We use the sleepstudy dataset which contains reaction time measurements of participants across several days of sleep deprivation. By using a mixed-effects model, we aim to account for individual-level differences (random effects) and the effects of sleep deprivation on reaction time (fixed effects).

Dataset:

We use the sleepstudy dataset from the lme4 R package. The dataset contains 180 observations of reaction times for 18 individuals measured across 10 days of sleep deprivation. The key variables include:

Reaction: Reaction time in milliseconds.

Days: Number of days of sleep deprivation. Subject: A random effect representing individual-level differences.

Goals:

Use REML to estimate the random effect of individual variability in reaction time. Use BLUE to estimate the fixed effect of sleep deprivation (number of days) on reaction time. Visualize the relationship between sleep deprivation and reaction time, accounting for individual differences.

Step 1: Load Data and Libraries

# Load necessary libraries
Warning message:
In file(con, "w") :
  cannot open file 'Sleep.knit.md': No space left on device
library(lme4)  # For mixed-effects modeling
library(ggplot2)  # For visualizations

# Load the sleepstudy dataset
data("sleepstudy", package = "lme4")

# View the first few rows of the dataset
head(sleepstudy)
NA

Step 2: Fit a Mixed-Effects Model Using REML

We fit a mixed-effects model where Reaction is the dependent variable, Days is a fixed effect, and Subject is a random effect. This will allow us to account for individual differences in reaction time across subjects.

# Fit mixed-effects model using REML
# Random effect: Subject (individual variability)
# Fixed effect: Days (sleep deprivation effect)
model_reml <- lmer(Reaction ~ Days + (1 | Subject), data = sleepstudy, REML = TRUE)

# Summary of the model
summary(model_reml)
Linear mixed model fit by REML ['lmerMod']
Formula: Reaction ~ Days + (1 | Subject)
   Data: sleepstudy

REML criterion at convergence: 1786.5

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.2257 -0.5529  0.0109  0.5188  4.2506 

Random effects:
 Groups   Name        Variance Std.Dev.
 Subject  (Intercept) 1378.2   37.12   
 Residual              960.5   30.99   
Number of obs: 180, groups:  Subject, 18

Fixed effects:
            Estimate Std. Error t value
(Intercept) 251.4051     9.7467   25.79
Days         10.4673     0.8042   13.02

Correlation of Fixed Effects:
     (Intr)
Days -0.371

Interpretation of the Results:

* Fixed Effect (Days): The coefficient for Days represents the change in reaction time for each additional day of sleep deprivation.

*Random Effect (Subject): The random effect (REML estimate) shows how much individual variability affects reaction time, independent of the number of days of sleep deprivation.

##Step 3: Calculate BLUE for Fixed Effects:

The Best Linear Unbiased Estimator (BLUE) gives us the unbiased estimates of the fixed effect, which in this case is the relationship between sleep deprivation (Days) and reaction time.

# Extract fixed effects (BLUE values)
fixed_effects <- fixef(model_reml)
print(fixed_effects)
(Intercept)        Days 
  251.40510    10.46729 
# Fixed effect interpretation:
# The coefficient for "Days" indicates how much reaction time increases for every additional day of sleep deprivation.

Step 4: Visualizing the Results

1. Visualizing Reaction Time by Subject (Random Effect):

We can create a boxplot to see how reaction times vary across individuals, which represents the random effect of the model.

# Boxplot: Reaction time by Subject
ggplot(sleepstudy, aes(x = factor(Subject), y = Reaction)) +
  geom_boxplot() +
  labs(title = "Reaction Time by Subject (Random Effect)", x = "Subject", y = "Reaction Time (ms)")

This plot shows that individual subjects have varying reaction times, illustrating the random effect of subject variability.

2. Scatterplot of Reaction Time vs. Days (Fixed Effect):

Next, we visualize how reaction time changes with the number of days of sleep deprivation.

# Scatterplot: Reaction time vs. Days
ggplot(sleepstudy, aes(x = Days, y = Reaction)) +
  geom_point(alpha = 0.5) +
  geom_smooth(method = "lm", color = "blue") +
  labs(title = "Reaction Time vs. Days (Fixed Effect)", x = "Days of Sleep Deprivation", y = "Reaction Time (ms)")

The scatterplot with a regression line shows that reaction time generally increases as the number of days of sleep deprivation increases. This relationship is modeled as the fixed effect in the model.

Step 5: Model Diagnostics

1. Residual Plot:

To check how well the model fits the data, we plot the residuals of the model.

# Plot residuals to check model fit
plot(residuals(model_reml), main = "Residuals of Mixed-Effects Model")

If the residuals are randomly scattered around zero, it indicates that the model fits the data well.

2. Random Effect Variance:

We can calculate the variance of the random effect (Subject) to understand how much individual differences affect reaction time.

# Calculate random effect variance
random_effect_variance <- as.data.frame(VarCorr(model_reml))$vcov[2]  # Subject-specific variance
print(paste("Random Effect Variance (Subject):", round(random_effect_variance, 2)))
[1] "Random Effect Variance (Subject): 960.46"

The random effect variance tells us how much individual variability in reaction times (between subjects) contributes to the overall variation in the data.

Step 6: Interpretation of Results

Key Findings:

 * Fixed Effect (Days): The fixed effect shows how much reaction time increases per additional day of sleep deprivation. In this model, for every day of sleep deprivation, reaction time increases by approximately the fixed effect coefficient value.
 
* Effect (Subject): The random effect captures how much reaction times vary between subjects. A high random effect variance indicates that there are significant differences in reaction times across individuals, which are independent of the sleep deprivation effect.

Conclusion:

In this project, we used REML and BLUE to analyze the effects of sleep deprivation on reaction time. By accounting for individual differences (random effects) and the effect of sleep deprivation (fixed effect), we were able to better understand how these factors interact. The REML method provided us with estimates of individual variability, while BLUE gave us the unbiased fixed effect estimate of sleep deprivation on reaction time.

This project demonstrates how mixed-effects models can be used in real-world scenarios to account for both fixed and random factors influencing an outcome.

LS0tCnRpdGxlOiAiIEFuYWx5emluZyBTbGVlcCBEZXByaXZhdGlvbiBFZmZlY3RzIG9uIFJlYWN0aW9uIFRpbWUgVXNpbmcgUkVNTCBhbmQgQkxVRSIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKIyBJbnRyb2R1Y3Rpb246CkluIHRoaXMgcHJvamVjdCwgd2UgYW5hbHl6ZSB0aGUgaW1wYWN0IG9mIHNsZWVwIGRlcHJpdmF0aW9uIG9uIHJlYWN0aW9uIHRpbWUgdXNpbmcgUkVNTCAoUmVzdHJpY3RlZCBNYXhpbXVtIExpa2VsaWhvb2QpIGFuZCBCTFVFIChCZXN0IExpbmVhciBVbmJpYXNlZCBFc3RpbWF0b3JzKS4gV2UgdXNlIHRoZSBzbGVlcHN0dWR5IGRhdGFzZXQgd2hpY2ggY29udGFpbnMgcmVhY3Rpb24gdGltZSBtZWFzdXJlbWVudHMgb2YgcGFydGljaXBhbnRzIGFjcm9zcyBzZXZlcmFsIGRheXMgb2Ygc2xlZXAgZGVwcml2YXRpb24uIEJ5IHVzaW5nIGEgbWl4ZWQtZWZmZWN0cyBtb2RlbCwgd2UgYWltIHRvIGFjY291bnQgZm9yIGluZGl2aWR1YWwtbGV2ZWwgZGlmZmVyZW5jZXMgKHJhbmRvbSBlZmZlY3RzKSBhbmQgdGhlIGVmZmVjdHMgb2Ygc2xlZXAgZGVwcml2YXRpb24gb24gcmVhY3Rpb24gdGltZSAoZml4ZWQgZWZmZWN0cykuCgojIyBEYXRhc2V0OgpXZSB1c2UgdGhlIHNsZWVwc3R1ZHkgZGF0YXNldCBmcm9tIHRoZSBsbWU0IFIgcGFja2FnZS4gVGhlIGRhdGFzZXQgY29udGFpbnMgMTgwIG9ic2VydmF0aW9ucyBvZiByZWFjdGlvbiB0aW1lcyBmb3IgMTggaW5kaXZpZHVhbHMgbWVhc3VyZWQgYWNyb3NzIDEwIGRheXMgb2Ygc2xlZXAgZGVwcml2YXRpb24uIFRoZSBrZXkgdmFyaWFibGVzIGluY2x1ZGU6CgojIyBSZWFjdGlvbjogUmVhY3Rpb24gdGltZSBpbiBtaWxsaXNlY29uZHMuCkRheXM6IE51bWJlciBvZiBkYXlzIG9mIHNsZWVwIGRlcHJpdmF0aW9uLgpTdWJqZWN0OiBBIHJhbmRvbSBlZmZlY3QgcmVwcmVzZW50aW5nIGluZGl2aWR1YWwtbGV2ZWwgZGlmZmVyZW5jZXMuCgojIyBHb2FsczoKVXNlIFJFTUwgdG8gZXN0aW1hdGUgdGhlIHJhbmRvbSBlZmZlY3Qgb2YgaW5kaXZpZHVhbCB2YXJpYWJpbGl0eSBpbiByZWFjdGlvbiB0aW1lLgpVc2UgQkxVRSB0byBlc3RpbWF0ZSB0aGUgZml4ZWQgZWZmZWN0IG9mIHNsZWVwIGRlcHJpdmF0aW9uIChudW1iZXIgb2YgZGF5cykgb24gcmVhY3Rpb24gdGltZS4KVmlzdWFsaXplIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBzbGVlcCBkZXByaXZhdGlvbiBhbmQgcmVhY3Rpb24gdGltZSwgYWNjb3VudGluZyBmb3IgaW5kaXZpZHVhbCBkaWZmZXJlbmNlcy4KCiMjIFN0ZXAgMTogTG9hZCBEYXRhIGFuZCBMaWJyYXJpZXMKCgogCgpgYGB7cn0KIyBMb2FkIG5lY2Vzc2FyeSBsaWJyYXJpZXMKbGlicmFyeShsbWU0KSAgIyBGb3IgbWl4ZWQtZWZmZWN0cyBtb2RlbGluZwpsaWJyYXJ5KGdncGxvdDIpICAjIEZvciB2aXN1YWxpemF0aW9ucwoKIyBMb2FkIHRoZSBzbGVlcHN0dWR5IGRhdGFzZXQKZGF0YSgic2xlZXBzdHVkeSIsIHBhY2thZ2UgPSAibG1lNCIpCgojIFZpZXcgdGhlIGZpcnN0IGZldyByb3dzIG9mIHRoZSBkYXRhc2V0CmhlYWQoc2xlZXBzdHVkeSkKCmBgYAoKIyMgU3RlcCAyOiBGaXQgYSBNaXhlZC1FZmZlY3RzIE1vZGVsIFVzaW5nIFJFTUwKCldlIGZpdCBhIG1peGVkLWVmZmVjdHMgbW9kZWwgd2hlcmUgUmVhY3Rpb24gaXMgdGhlIGRlcGVuZGVudCB2YXJpYWJsZSwgRGF5cyBpcyBhIGZpeGVkIGVmZmVjdCwgYW5kIFN1YmplY3QgaXMgYSByYW5kb20gZWZmZWN0LiBUaGlzIHdpbGwgYWxsb3cgdXMgdG8gYWNjb3VudCBmb3IgaW5kaXZpZHVhbCBkaWZmZXJlbmNlcyBpbiByZWFjdGlvbiB0aW1lIGFjcm9zcyBzdWJqZWN0cy4KCmBgYHtyfQojIEZpdCBtaXhlZC1lZmZlY3RzIG1vZGVsIHVzaW5nIFJFTUwKIyBSYW5kb20gZWZmZWN0OiBTdWJqZWN0IChpbmRpdmlkdWFsIHZhcmlhYmlsaXR5KQojIEZpeGVkIGVmZmVjdDogRGF5cyAoc2xlZXAgZGVwcml2YXRpb24gZWZmZWN0KQptb2RlbF9yZW1sIDwtIGxtZXIoUmVhY3Rpb24gfiBEYXlzICsgKDEgfCBTdWJqZWN0KSwgZGF0YSA9IHNsZWVwc3R1ZHksIFJFTUwgPSBUUlVFKQoKIyBTdW1tYXJ5IG9mIHRoZSBtb2RlbApzdW1tYXJ5KG1vZGVsX3JlbWwpCgpgYGAKCiMjIEludGVycHJldGF0aW9uIG9mIHRoZSBSZXN1bHRzOgoKICAgICogRml4ZWQgRWZmZWN0IChEYXlzKTogVGhlIGNvZWZmaWNpZW50IGZvciBEYXlzIHJlcHJlc2VudHMgdGhlIGNoYW5nZSBpbiByZWFjdGlvbiB0aW1lIGZvciBlYWNoIGFkZGl0aW9uYWwgZGF5IG9mIHNsZWVwIGRlcHJpdmF0aW9uLgoKICAgICpSYW5kb20gRWZmZWN0IChTdWJqZWN0KTogVGhlIHJhbmRvbSBlZmZlY3QgKFJFTUwgZXN0aW1hdGUpIHNob3dzIGhvdyBtdWNoIGluZGl2aWR1YWwgdmFyaWFiaWxpdHkgYWZmZWN0cyByZWFjdGlvbiB0aW1lLCBpbmRlcGVuZGVudCBvZiB0aGUgbnVtYmVyIG9mIGRheXMgb2Ygc2xlZXAgZGVwcml2YXRpb24uCiAgICAKIyNTdGVwIDM6IENhbGN1bGF0ZSBCTFVFIGZvciBGaXhlZCBFZmZlY3RzOgoKVGhlIEJlc3QgTGluZWFyIFVuYmlhc2VkIEVzdGltYXRvciAoQkxVRSkgZ2l2ZXMgdXMgdGhlIHVuYmlhc2VkIGVzdGltYXRlcyBvZiB0aGUgZml4ZWQgZWZmZWN0LCB3aGljaCBpbiB0aGlzIGNhc2UgaXMgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHNsZWVwIGRlcHJpdmF0aW9uIChEYXlzKSBhbmQgcmVhY3Rpb24gdGltZS4KCmBgYHtyfQojIEV4dHJhY3QgZml4ZWQgZWZmZWN0cyAoQkxVRSB2YWx1ZXMpCmZpeGVkX2VmZmVjdHMgPC0gZml4ZWYobW9kZWxfcmVtbCkKcHJpbnQoZml4ZWRfZWZmZWN0cykKCiMgRml4ZWQgZWZmZWN0IGludGVycHJldGF0aW9uOgojIFRoZSBjb2VmZmljaWVudCBmb3IgIkRheXMiIGluZGljYXRlcyBob3cgbXVjaCByZWFjdGlvbiB0aW1lIGluY3JlYXNlcyBmb3IgZXZlcnkgYWRkaXRpb25hbCBkYXkgb2Ygc2xlZXAgZGVwcml2YXRpb24uCgpgYGAKCiMjIFN0ZXAgNDogVmlzdWFsaXppbmcgdGhlIFJlc3VsdHMKCiMjIyAxLiBWaXN1YWxpemluZyBSZWFjdGlvbiBUaW1lIGJ5IFN1YmplY3QgKFJhbmRvbSBFZmZlY3QpOgoKV2UgY2FuIGNyZWF0ZSBhIGJveHBsb3QgdG8gc2VlIGhvdyByZWFjdGlvbiB0aW1lcyB2YXJ5IGFjcm9zcyBpbmRpdmlkdWFscywgd2hpY2ggcmVwcmVzZW50cyB0aGUgcmFuZG9tIGVmZmVjdCBvZiB0aGUgbW9kZWwuCgpgYGB7cn0KIyBCb3hwbG90OiBSZWFjdGlvbiB0aW1lIGJ5IFN1YmplY3QKZ2dwbG90KHNsZWVwc3R1ZHksIGFlcyh4ID0gZmFjdG9yKFN1YmplY3QpLCB5ID0gUmVhY3Rpb24pKSArCiAgZ2VvbV9ib3hwbG90KCkgKwogIGxhYnModGl0bGUgPSAiUmVhY3Rpb24gVGltZSBieSBTdWJqZWN0IChSYW5kb20gRWZmZWN0KSIsIHggPSAiU3ViamVjdCIsIHkgPSAiUmVhY3Rpb24gVGltZSAobXMpIikKCmBgYApUaGlzIHBsb3Qgc2hvd3MgdGhhdCBpbmRpdmlkdWFsIHN1YmplY3RzIGhhdmUgdmFyeWluZyByZWFjdGlvbiB0aW1lcywgaWxsdXN0cmF0aW5nIHRoZSByYW5kb20gZWZmZWN0IG9mIHN1YmplY3QgdmFyaWFiaWxpdHkuCgojIyAyLiBTY2F0dGVycGxvdCBvZiBSZWFjdGlvbiBUaW1lIHZzLiBEYXlzIChGaXhlZCBFZmZlY3QpOgoKTmV4dCwgd2UgdmlzdWFsaXplIGhvdyByZWFjdGlvbiB0aW1lIGNoYW5nZXMgd2l0aCB0aGUgbnVtYmVyIG9mIGRheXMgb2Ygc2xlZXAgZGVwcml2YXRpb24uCmBgYHtyfQojIFNjYXR0ZXJwbG90OiBSZWFjdGlvbiB0aW1lIHZzLiBEYXlzCmdncGxvdChzbGVlcHN0dWR5LCBhZXMoeCA9IERheXMsIHkgPSBSZWFjdGlvbikpICsKICBnZW9tX3BvaW50KGFscGhhID0gMC41KSArCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgY29sb3IgPSAiYmx1ZSIpICsKICBsYWJzKHRpdGxlID0gIlJlYWN0aW9uIFRpbWUgdnMuIERheXMgKEZpeGVkIEVmZmVjdCkiLCB4ID0gIkRheXMgb2YgU2xlZXAgRGVwcml2YXRpb24iLCB5ID0gIlJlYWN0aW9uIFRpbWUgKG1zKSIpCgpgYGAKClRoZSBzY2F0dGVycGxvdCB3aXRoIGEgcmVncmVzc2lvbiBsaW5lIHNob3dzIHRoYXQgcmVhY3Rpb24gdGltZSBnZW5lcmFsbHkgaW5jcmVhc2VzIGFzIHRoZSBudW1iZXIgb2YgZGF5cyBvZiBzbGVlcCBkZXByaXZhdGlvbiBpbmNyZWFzZXMuIFRoaXMgcmVsYXRpb25zaGlwIGlzIG1vZGVsZWQgYXMgdGhlIGZpeGVkIGVmZmVjdCBpbiB0aGUgbW9kZWwuCgojIyBTdGVwIDU6IE1vZGVsIERpYWdub3N0aWNzCiMjIyAxLiBSZXNpZHVhbCBQbG90OgoKVG8gY2hlY2sgaG93IHdlbGwgdGhlIG1vZGVsIGZpdHMgdGhlIGRhdGEsIHdlIHBsb3QgdGhlIHJlc2lkdWFscyBvZiB0aGUgbW9kZWwuCmBgYHtyfQojIFBsb3QgcmVzaWR1YWxzIHRvIGNoZWNrIG1vZGVsIGZpdApwbG90KHJlc2lkdWFscyhtb2RlbF9yZW1sKSwgbWFpbiA9ICJSZXNpZHVhbHMgb2YgTWl4ZWQtRWZmZWN0cyBNb2RlbCIpCgpgYGAKCklmIHRoZSByZXNpZHVhbHMgYXJlIHJhbmRvbWx5IHNjYXR0ZXJlZCBhcm91bmQgemVybywgaXQgaW5kaWNhdGVzIHRoYXQgdGhlIG1vZGVsIGZpdHMgdGhlIGRhdGEgd2VsbC4KCiMjIDIuIFJhbmRvbSBFZmZlY3QgVmFyaWFuY2U6CgpXZSBjYW4gY2FsY3VsYXRlIHRoZSB2YXJpYW5jZSBvZiB0aGUgcmFuZG9tIGVmZmVjdCAoU3ViamVjdCkgdG8gdW5kZXJzdGFuZCBob3cgbXVjaCBpbmRpdmlkdWFsIGRpZmZlcmVuY2VzIGFmZmVjdCByZWFjdGlvbiB0aW1lLgoKYGBge3J9CiMgQ2FsY3VsYXRlIHJhbmRvbSBlZmZlY3QgdmFyaWFuY2UKcmFuZG9tX2VmZmVjdF92YXJpYW5jZSA8LSBhcy5kYXRhLmZyYW1lKFZhckNvcnIobW9kZWxfcmVtbCkpJHZjb3ZbMl0gICMgU3ViamVjdC1zcGVjaWZpYyB2YXJpYW5jZQpwcmludChwYXN0ZSgiUmFuZG9tIEVmZmVjdCBWYXJpYW5jZSAoU3ViamVjdCk6Iiwgcm91bmQocmFuZG9tX2VmZmVjdF92YXJpYW5jZSwgMikpKQoKYGBgCgpUaGUgcmFuZG9tIGVmZmVjdCB2YXJpYW5jZSB0ZWxscyB1cyBob3cgbXVjaCBpbmRpdmlkdWFsIHZhcmlhYmlsaXR5IGluIHJlYWN0aW9uIHRpbWVzIChiZXR3ZWVuIHN1YmplY3RzKSBjb250cmlidXRlcyB0byB0aGUgb3ZlcmFsbCB2YXJpYXRpb24gaW4gdGhlIGRhdGEuCgojIyBTdGVwIDY6IEludGVycHJldGF0aW9uIG9mIFJlc3VsdHMKCiMjIyBLZXkgRmluZGluZ3M6CgogICAgICogRml4ZWQgRWZmZWN0IChEYXlzKTogVGhlIGZpeGVkIGVmZmVjdCBzaG93cyBob3cgbXVjaCByZWFjdGlvbiB0aW1lIGluY3JlYXNlcyBwZXIgYWRkaXRpb25hbCBkYXkgb2Ygc2xlZXAgZGVwcml2YXRpb24uIEluIHRoaXMgbW9kZWwsIGZvciBldmVyeSBkYXkgb2Ygc2xlZXAgZGVwcml2YXRpb24sIHJlYWN0aW9uIHRpbWUgaW5jcmVhc2VzIGJ5IGFwcHJveGltYXRlbHkgdGhlIGZpeGVkIGVmZmVjdCBjb2VmZmljaWVudCB2YWx1ZS4KICAgICAKICAgICogRWZmZWN0IChTdWJqZWN0KTogVGhlIHJhbmRvbSBlZmZlY3QgY2FwdHVyZXMgaG93IG11Y2ggcmVhY3Rpb24gdGltZXMgdmFyeSBiZXR3ZWVuIHN1YmplY3RzLiBBIGhpZ2ggcmFuZG9tIGVmZmVjdCB2YXJpYW5jZSBpbmRpY2F0ZXMgdGhhdCB0aGVyZSBhcmUgc2lnbmlmaWNhbnQgZGlmZmVyZW5jZXMgaW4gcmVhY3Rpb24gdGltZXMgYWNyb3NzIGluZGl2aWR1YWxzLCB3aGljaCBhcmUgaW5kZXBlbmRlbnQgb2YgdGhlIHNsZWVwIGRlcHJpdmF0aW9uIGVmZmVjdC4KICAgIAojIyBDb25jbHVzaW9uOgoKSW4gdGhpcyBwcm9qZWN0LCB3ZSB1c2VkIFJFTUwgYW5kIEJMVUUgdG8gYW5hbHl6ZSB0aGUgZWZmZWN0cyBvZiBzbGVlcCBkZXByaXZhdGlvbiBvbiByZWFjdGlvbiB0aW1lLiBCeSBhY2NvdW50aW5nIGZvciBpbmRpdmlkdWFsIGRpZmZlcmVuY2VzIChyYW5kb20gZWZmZWN0cykgYW5kIHRoZSBlZmZlY3Qgb2Ygc2xlZXAgZGVwcml2YXRpb24gKGZpeGVkIGVmZmVjdCksIHdlIHdlcmUgYWJsZSB0byBiZXR0ZXIgdW5kZXJzdGFuZCBob3cgdGhlc2UgZmFjdG9ycyBpbnRlcmFjdC4gVGhlIFJFTUwgbWV0aG9kIHByb3ZpZGVkIHVzIHdpdGggZXN0aW1hdGVzIG9mIGluZGl2aWR1YWwgdmFyaWFiaWxpdHksIHdoaWxlIEJMVUUgZ2F2ZSB1cyB0aGUgdW5iaWFzZWQgZml4ZWQgZWZmZWN0IGVzdGltYXRlIG9mIHNsZWVwIGRlcHJpdmF0aW9uIG9uIHJlYWN0aW9uIHRpbWUuCgpUaGlzIHByb2plY3QgZGVtb25zdHJhdGVzIGhvdyBtaXhlZC1lZmZlY3RzIG1vZGVscyBjYW4gYmUgdXNlZCBpbiByZWFsLXdvcmxkIHNjZW5hcmlvcyB0byBhY2NvdW50IGZvciBib3RoIGZpeGVkIGFuZCByYW5kb20gZmFjdG9ycyBpbmZsdWVuY2luZyBhbiBvdXRjb21lLg==