Assignment Objectives
Enhance understanding the logic and procedure of hypothesis
testing .
Implement the procedures for power and sample size calculation
for basic hypothesis testing procedures using nuilt-in function and
manual calculation.
**Simple versus Composite Hypothesis*
Simple Hypothesis
Simple Hypothesis Test is a hypothesis that
completely specifies the population distribution. Mathematically, simple
hypothesis fixes all parameters to specific values. For example, The
simple hypotheses are: \(H_0: \mu = 5\)
(if \(\alpha\) is known), \(H_0: \mu = 100, \sigma^2 = 25\), and \(H_1: p = 0.7\) for a Bernoulli
distribution.
Example Scenario Test if a coin is
fair:
\[\begin{aligned}
H_0&: p = 0.5 \quad \text{(completely specified)} \\
H_1&: p = 0.6 \quad \text{(also completely specified)}
\end{aligned}\]
Both are simple hypotheses.
Composite Hypothesis
Composite Hypothesis is a hypothesis that does
not completely specify the distribution. Mathematically, it allows a
range of values for at least one parameter. For example, in one-sided:
\(\mu >5\); in two-sided: \(\mu \le 5\).
Example Scenarios
\[\begin{aligned}
&H_0: \mu = 5 && \text{(simple)} \\
&H_1: \mu > 5 && \text{(composite)}
\end{aligned}\]
\[\begin{aligned}
&H_0: \mu \leq 5 && \text{(composite)} \\
&H_1: \mu > 5 && \text{(composite)}
\end{aligned}\]
\[\begin{aligned}
&H_0: \text{data follows } N(\mu, 1), \mu = 0 &&
\text{(simple)} \\
&H_1: \text{data follows Poisson}(\lambda) &&
\text{(composite – different family)}
\end{aligned}\]
This assignment focuses on performing
performing a test of mean (\(\mu\)) a
normal population and calculating the power and sample size based on
various assumptions
Question: New Cholesterol Medication
A pharmaceutical company develops “CholestFix” to
reduce Low-Density Lipoprotein (LDL, fat carrier that’s low in
density) cholesterol. The current standard drug
lowers LDL by an average of 25 mg/dL with a standard deviation of 15
mg/dL. A clinical trial with 5 participants were recruited in the study
for three months. At the end of the study, the mean reduction is 29
mg/dL. Assume that the variance of LDL reduction of new drug is the same
as that of the standard drugs.
Based on the results in the clinical trial, researchers in the company
believe
CholestFix is more effective.
a). Perform a formal hypothesis test of the researchers’ belief
regarding LDL reduction, using a significance level of \(\alpha = 0.05\).
b). Given \(n = 50, \sigma = 15, \alpha =
0.05\), and an effect size we wish to detect \(\delta = 4\) mg/dL (corresponding to a
reduction from 29 mg/dL to 25 mg/dL). What is the probability that we’d
detect a true improvement?
c). Determine the minimum sample size required to detect an effect
size of 4 mg/dL with a power of \(1 - \beta =
0.8\) and a significance level of \(\alpha = 0.05\). Assume the standard
deviation of LDL reduction is 15 mg/dL.
d).
Power curve: To assess the impact of sample size on
power, we can create a power function in terms of the sample size
\(n\) and use the remaining information from
part (b). Plot the power curve by selecting a sequence of sample sizes.
Note: For each of the questions
above, write a short summary of what you observed, justify why your
analysis is valid, and interpret the results.
LS0tDQp0aXRsZTogIkFzc2lnbm1lbnQgOTogSHlwb3RoZXNpcyBUZXN0aW5nIGFuZCBQb3dlciBhbmQgU2FtcGxlIHNpemUgRGV0ZXJtaW5hdGlvbiINCmF1dGhvcjogIllvdXIgTmFtZSAiDQpkYXRlOiAiIER1ZTogIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50OiANCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogNA0KICAgIHRvY19mbG9hdDogeWVzDQogICAgbnVtYmVyX3NlY3Rpb25zOiBubw0KICAgIHRvY19jb2xsYXBzZWQ6IHllcw0KICAgIGNvZGVfZm9sZGluZzogaGlkZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KICAgIHNtb290aF9zY3JvbGw6IHllcw0KICAgIGhpZ2hsaWdodDogbW9ub2Nocm9tZQ0KICAgIHRoZW1lOiBzcGFjZWxhYg0KICB3b3JkX2RvY3VtZW50OiANCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogNA0KICAgIGZpZ19jYXB0aW9uOiB5ZXMNCiAgICBrZWVwX21kOiB5ZXMNCiAgcGRmX2RvY3VtZW50OiANCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogNA0KICAgIGZpZ19jYXB0aW9uOiB5ZXMNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIGZpZ193aWR0aDogMw0KICAgIGZpZ19oZWlnaHQ6IDMNCmVkaXRvcl9vcHRpb25zOiANCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGlubGluZQ0KLS0tDQoNCmBgYHtjc3MsIGVjaG8gPSBGQUxTRX0NCiNUT0M6OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJUYWJsZSBvZiBDb250ZW50cyI7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmb250LXNpemU6IDEuMmVtOw0KICBkaXNwbGF5OiBibG9jazsNCiAgY29sb3I6IG5hdnk7DQogIG1hcmdpbi1ib3R0b206IDEwcHg7DQp9DQoNCg0KZGl2I1RPQyBsaSB7ICAgICAvKiB0YWJsZSBvZiBjb250ZW50ICAqLw0KICAgIGxpc3Qtc3R5bGU6dXBwZXItcm9tYW47DQogICAgYmFja2dyb3VuZC1pbWFnZTpub25lOw0KICAgIGJhY2tncm91bmQtcmVwZWF0Om5vbmU7DQogICAgYmFja2dyb3VuZC1wb3NpdGlvbjowOw0KfQ0KDQpoMS50aXRsZSB7ICAgIC8qIGxldmVsIDEgaGVhZGVyIG9mIHRpdGxlICAqLw0KICBmb250LXNpemU6IDIycHg7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBjb2xvcjogRGFya1JlZDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBmb250LWZhbWlseTogIkdpbGwgU2FucyIsIHNhbnMtc2VyaWY7DQp9DQoNCmg0LmF1dGhvciB7IC8qIEhlYWRlciA0IC0gYW5kIHRoZSBhdXRob3IgYW5kIGRhdGEgaGVhZGVycyB1c2UgdGhpcyB0b28gICovDQogIGZvbnQtc2l6ZTogMTVweDsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogIGZvbnQtZmFtaWx5OiBzeXN0ZW0tdWk7DQogIGNvbG9yOiBuYXZ5Ow0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCmg0LmRhdGUgeyAvKiBIZWFkZXIgNCAtIGFuZCB0aGUgYXV0aG9yIGFuZCBkYXRhIGhlYWRlcnMgdXNlIHRoaXMgdG9vICAqLw0KICBmb250LXNpemU6IDE4cHg7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmb250LWZhbWlseTogIkdpbGwgU2FucyIsIHNhbnMtc2VyaWY7DQogIGNvbG9yOiBEYXJrQmx1ZTsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQpoMSB7IC8qIEhlYWRlciAxIC0gYW5kIHRoZSBhdXRob3IgYW5kIGRhdGEgaGVhZGVycyB1c2UgdGhpcyB0b28gICovDQogICAgZm9udC1zaXplOiAyMHB4Ow0KICAgIGZvbnQtd2VpZ2h0OiBib2xkOw0KICAgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICAgIGNvbG9yOiBkYXJrcmVkOw0KICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KaDIgeyAvKiBIZWFkZXIgMiAtIGFuZCB0aGUgYXV0aG9yIGFuZCBkYXRhIGhlYWRlcnMgdXNlIHRoaXMgdG9vICAqLw0KICAgIGZvbnQtc2l6ZTogMThweDsNCiAgICBmb250LXdlaWdodDogYm9sZDsNCiAgICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgICBjb2xvcjogbmF2eTsNCiAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQpoMyB7IC8qIEhlYWRlciAzIC0gYW5kIHRoZSBhdXRob3IgYW5kIGRhdGEgaGVhZGVycyB1c2UgdGhpcyB0b28gICovDQogICAgZm9udC1zaXplOiAxNnB4Ow0KICAgIGZvbnQtd2VpZ2h0OiBib2xkOw0KICAgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICAgIGNvbG9yOiBuYXZ5Ow0KICAgIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCmg0IHsgLyogSGVhZGVyIDQgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8NCiAgICBmb250LXNpemU6IDE0cHg7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICAgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICAgIGNvbG9yOiBkYXJrcmVkOw0KICAgIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCi8qIEFkZCBkb3RzIGFmdGVyIG51bWJlcmVkIGhlYWRlcnMgKi8NCi5oZWFkZXItc2VjdGlvbi1udW1iZXI6OmFmdGVyIHsNCiAgY29udGVudDogIi4iOw0KDQpib2R5IHtiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAgY29sb3I6ICMwMDAwMDA7DQogICAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7DQogICAgICBmb250LXNpemU6IDFyZW07DQogICAgICBsaW5lLWhlaWdodDogMS42Ow0KICAgICAgfQ0KDQouaGlnaGxpZ2h0bWUgeyBiYWNrZ3JvdW5kLWNvbG9yOnllbGxvdzsgfQ0KDQpwIHsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfQ0KDQp9DQpgYGANCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQojIGNvZGUgY2h1bmsgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIFIgY29kZSwgd2FybmluZ3MsIGFuZCBvdXRwdXQgDQojIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIG91dHB1dCBmaWxlcy4NCmlmICghcmVxdWlyZSgia25pdHIiKSkgew0KICAgaW5zdGFsbC5wYWNrYWdlcygia25pdHIiKQ0KICAgbGlicmFyeShrbml0cikNCn0NCmlmICghcmVxdWlyZSgicGFuZGVyIikpIHsNCiAgIGluc3RhbGwucGFja2FnZXMoInBhbmRlciIpDQogICBsaWJyYXJ5KHBhbmRlcikNCn0NCmlmICghcmVxdWlyZSgiZ2dwbG90MiIpKSB7DQogIGluc3RhbGwucGFja2FnZXMoImdncGxvdDIiKQ0KICBsaWJyYXJ5KGdncGxvdDIpDQp9DQppZiAoIXJlcXVpcmUoInRpZHl2ZXJzZSIpKSB7DQogIGluc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpDQogIGxpYnJhcnkodGlkeXZlcnNlKQ0KfQ0KDQppZiAoIXJlcXVpcmUoInBsb3RseSIpKSB7DQogIGluc3RhbGwucGFja2FnZXMoInBsb3RseSIpDQogIGxpYnJhcnkocGxvdGx5KQ0KfQ0KDQppZiAoIXJlcXVpcmUoIlZHQU0iKSkgew0KICBpbnN0YWxsLnBhY2thZ2VzKCJWR0FNIikNCiAgbGlicmFyeShWR0FNKQ0KfQ0KIyMjIyBWR0FNDQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsICAgICAgICMgaW5jbHVkZSBjb2RlIGNodW5rIGluIHRoZSBvdXRwdXQgZmlsZQ0KICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmcgPSBGQUxTRSwgICAjIHNvbWV0aW1lcywgeW91IGNvZGUgbWF5IHByb2R1Y2Ugd2FybmluZyBtZXNzYWdlcywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB5b3UgY2FuIGNob29zZSB0byBpbmNsdWRlIHRoZSB3YXJuaW5nIG1lc3NhZ2VzIGluDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdGhlIG91dHB1dCBmaWxlLiANCiAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzID0gVFJVRSwgICAgIyB5b3UgY2FuIGFsc28gZGVjaWRlIHdoZXRoZXIgdG8gaW5jbHVkZSB0aGUgb3V0cHV0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaW4gdGhlIG91dHB1dCBmaWxlLg0KICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBGQUxTRSwNCiAgICAgICAgICAgICAgICAgICAgICBjb21tZW50ID0gTkENCiAgICAgICAgICAgICAgICAgICAgICApICANCmBgYA0KIA0KIFwNCiANCiMjICoqQXNzaWdubWVudCBPYmplY3RpdmVzKiogDQoNCjxwPg0KKiBFbmhhbmNlIHVuZGVyc3RhbmRpbmcgdGhlIGxvZ2ljIGFuZCBwcm9jZWR1cmUgb2YgaHlwb3RoZXNpcyB0ZXN0aW5nIC4NCg0KKiBJbXBsZW1lbnQgdGhlIHByb2NlZHVyZXMgZm9yIHBvd2VyIGFuZCBzYW1wbGUgc2l6ZSBjYWxjdWxhdGlvbiBmb3IgYmFzaWMgaHlwb3RoZXNpcyB0ZXN0aW5nIHByb2NlZHVyZXMgdXNpbmcgbnVpbHQtaW4gZnVuY3Rpb24gYW5kIG1hbnVhbCBjYWxjdWxhdGlvbi4NCjwvcD4NCg0KDQojIyAqKlBvbGljaWVzIG9mIFVzaW5nIEFJIFRvb2xzKioNCg0KPHA+DQoqKlBvbGljeSBvbiBBSSBUb29sIFVzZSoqOiBQbGVhc2UgYWRoZXJlIHRvIHRoZSBBSSB0b29sIHBvbGljeSBzcGVjaWZpZWQgaW4gdGhlIGNvdXJzZSBzeWxsYWJ1cy4gVGhlIGRpcmVjdCBjb3B5aW5nIG9mIEFJLWdlbmVyYXRlZCBjb250ZW50IGlzIHN0cmljdGx5IHByb2hpYml0ZWQuIEFsbCBzdWJtaXR0ZWQgd29yayBtdXN0IHJlZmxlY3QgeW91ciBvd24gdW5kZXJzdGFuZGluZzsgd2hlcmUgZXh0ZXJuYWwgdG9vbHMgYXJlIGNvbnN1bHRlZCwgY29udGVudCBtdXN0IGJlIHRob3JvdWdobHkgcmVwaHJhc2VkIGFuZCBzeW50aGVzaXplZCBpbiB5b3VyIG93biB3b3Jkcy4NCjwvcD4NCg0KPHA+DQoqKkNvZGUgSW5jbHVzaW9uIFJlcXVpcmVtZW50Kio6IEFueSBjb2RlIGluY2x1ZGVkIGluIHlvdXIgZXNzYXkgbXVzdCBiZSBwcm9wZXJseSBjb21tZW50ZWQgdG8gZXhwbGFpbiB0aGUgcHVycG9zZSBhbmQvb3IgZXhwZWN0ZWQgb3V0cHV0IG9mIGtleSBjb2RlIGxpbmVzLiBTdWJtaXR0aW5nIEFJLWdlbmVyYXRlZCBjb2RlIHdpdGhvdXQgbWVhbmluZ2Z1bCwgc3R1ZGVudC1hZGRlZCBjb21tZW50cyB3aWxsIG5vdCBiZSBhY2NlcHRlZC4NCjwvcD4NCg0KDQojIyAqKlNpbXBsZSB2ZXJzdXMgQ29tcG9zaXRlIEh5cG90aGVzaXMqDQoNCioqU2ltcGxlIEh5cG90aGVzaXMqKg0KDQoqICoqU2ltcGxlIEh5cG90aGVzaXMgVGVzdCoqIGlzIGEgaHlwb3RoZXNpcyB0aGF0IGNvbXBsZXRlbHkgc3BlY2lmaWVzIHRoZSBwb3B1bGF0aW9uIGRpc3RyaWJ1dGlvbi4gTWF0aGVtYXRpY2FsbHksIHNpbXBsZSBoeXBvdGhlc2lzIGZpeGVzIGFsbCBwYXJhbWV0ZXJzIHRvIHNwZWNpZmljIHZhbHVlcy4gRm9yIGV4YW1wbGUsIFRoZSBzaW1wbGUgaHlwb3RoZXNlcyBhcmU6ICRIXzA6IFxtdSA9IDUkIChpZiAkXGFscGhhJCBpcyBrbm93biksICRIXzA6IFxtdSA9IDEwMCwgXHNpZ21hXjIgPSAyNSQsIGFuZCAkSF8xOiBwID0gMC43JCBmb3IgYSBCZXJub3VsbGkgZGlzdHJpYnV0aW9uLg0KDQoqICoqRXhhbXBsZSBTY2VuYXJpbyoqICBUZXN0IGlmIGEgY29pbiBpcyBmYWlyOg0KDQpcYmVnaW57YWxpZ25lZH0NCkhfMCY6IHAgPSAwLjUgXHF1YWQgXHRleHR7KGNvbXBsZXRlbHkgc3BlY2lmaWVkKX0gXFwNCkhfMSY6IHAgPSAwLjYgXHF1YWQgXHRleHR7KGFsc28gY29tcGxldGVseSBzcGVjaWZpZWQpfQ0KXGVuZHthbGlnbmVkfQ0KDQpCb3RoIGFyZSAqKnNpbXBsZSoqIGh5cG90aGVzZXMuDQoNCioqQ29tcG9zaXRlIEh5cG90aGVzaXMqKg0KDQoqICoqQ29tcG9zaXRlIEh5cG90aGVzaXMqKiBpcyBhIGh5cG90aGVzaXMgdGhhdCBkb2VzIG5vdCBjb21wbGV0ZWx5IHNwZWNpZnkgdGhlIGRpc3RyaWJ1dGlvbi4gTWF0aGVtYXRpY2FsbHksIGl0IGFsbG93cyBhIHJhbmdlIG9mIHZhbHVlcyBmb3IgYXQgbGVhc3Qgb25lIHBhcmFtZXRlci4gRm9yIGV4YW1wbGUsIGluIG9uZS1zaWRlZDogJFxtdSA+NSQ7IGluIHR3by1zaWRlZDogJFxtdSBcbGUgNSQuDQoNCiogKipFeGFtcGxlIFNjZW5hcmlvcyoqIA0KDQoNClxiZWdpbnthbGlnbmVkfQ0KJkhfMDogXG11ID0gNSAmJiBcdGV4dHsoc2ltcGxlKX0gXFwNCiZIXzE6IFxtdSA+IDUgJiYgXHRleHR7KGNvbXBvc2l0ZSl9DQpcZW5ke2FsaWduZWR9DQoNCg0KDQpcYmVnaW57YWxpZ25lZH0NCiZIXzA6IFxtdSBcbGVxIDUgJiYgXHRleHR7KGNvbXBvc2l0ZSl9IFxcDQomSF8xOiBcbXUgPiA1ICYmIFx0ZXh0eyhjb21wb3NpdGUpfQ0KXGVuZHthbGlnbmVkfQ0KDQoNClxiZWdpbnthbGlnbmVkfQ0KJkhfMDogXHRleHR7ZGF0YSBmb2xsb3dzIH0gTihcbXUsIDEpLCBcbXUgPSAwICYmIFx0ZXh0eyhzaW1wbGUpfSBcXA0KJkhfMTogXHRleHR7ZGF0YSBmb2xsb3dzIFBvaXNzb259KFxsYW1iZGEpICYmIFx0ZXh0eyhjb21wb3NpdGUg4oCTIGRpZmZlcmVudCBmYW1pbHkpfQ0KXGVuZHthbGlnbmVkfQ0KDQoNCg0KPHA+PGZvbnQgY29sb3IgPSAiZGFya3JlZCI+KipUaGlzIGFzc2lnbm1lbnQgZm9jdXNlcyBvbiBwZXJmb3JtaW5nIHBlcmZvcm1pbmcgYSB0ZXN0IG9mIG1lYW4gKCRcbXUkKSBhIG5vcm1hbCBwb3B1bGF0aW9uIGFuZCBjYWxjdWxhdGluZyB0aGUgcG93ZXIgYW5kIHNhbXBsZSBzaXplIGJhc2VkIG9uIHZhcmlvdXMgYXNzdW1wdGlvbnMqKjwvZm9udD48L3A+DQoNCg0KXA0KDQojIyAqKlF1ZXN0aW9uOiBOZXcgQ2hvbGVzdGVyb2wgTWVkaWNhdGlvbioqDQoNCjxwPg0KQSBwaGFybWFjZXV0aWNhbCBjb21wYW55IGRldmVsb3BzICoqIkNob2xlc3RGaXgiKiogdG8gcmVkdWNlIExvdy1EZW5zaXR5IExpcG9wcm90ZWluIChMREwsICpmYXQgY2FycmllciB0aGF0J3MgbG93IGluIGRlbnNpdHkqKSBjaG9sZXN0ZXJvbC4gVGhlICoqY3VycmVudCBzdGFuZGFyZCBkcnVnKiogbG93ZXJzIExETCBieSBhbiBhdmVyYWdlIG9mIDI1IG1nL2RMIHdpdGggYSBzdGFuZGFyZCBkZXZpYXRpb24gb2YgMTUgbWcvZEwuIEEgY2xpbmljYWwgdHJpYWwgd2l0aCA1IHBhcnRpY2lwYW50cyB3ZXJlIHJlY3J1aXRlZCBpbiB0aGUgc3R1ZHkgZm9yIHRocmVlIG1vbnRocy4gQXQgdGhlIGVuZCBvZiB0aGUgc3R1ZHksIHRoZSBtZWFuIHJlZHVjdGlvbiBpcyAyOSBtZy9kTC4gQXNzdW1lIHRoYXQgdGhlIHZhcmlhbmNlIG9mIExETCByZWR1Y3Rpb24gb2YgbmV3IGRydWcgaXMgdGhlIHNhbWUgYXMgdGhhdCBvZiB0aGUgc3RhbmRhcmQgZHJ1Z3MuDQoNCkJhc2VkIG9uIHRoZSByZXN1bHRzIGluIHRoZSBjbGluaWNhbCB0cmlhbCwgcmVzZWFyY2hlcnMgaW4gdGhlIGNvbXBhbnkgYmVsaWV2ZSAqKkNob2xlc3RGaXgqKiBpcyBtb3JlIGVmZmVjdGl2ZS4NCjwvcD4NCg0KDQo8cD4NCmEpLiBQZXJmb3JtIGEgZm9ybWFsIGh5cG90aGVzaXMgdGVzdCBvZiB0aGUgcmVzZWFyY2hlcnPigJkgYmVsaWVmIHJlZ2FyZGluZyBMREwgcmVkdWN0aW9uLCB1c2luZyBhIHNpZ25pZmljYW5jZSBsZXZlbCBvZiAkXGFscGhhID0gMC4wNSQuDQoNCmIpLiBHaXZlbiAkbiA9IDUwLCBcc2lnbWEgPSAxNSwgXGFscGhhID0gMC4wNSQsIGFuZCBhbiBlZmZlY3Qgc2l6ZSB3ZSB3aXNoIHRvIGRldGVjdCAkXGRlbHRhID0gNCQgbWcvZEwgKGNvcnJlc3BvbmRpbmcgdG8gYSByZWR1Y3Rpb24gZnJvbSAyOSBtZy9kTCB0byAyNSBtZy9kTCkuICBXaGF0IGlzIHRoZSBwcm9iYWJpbGl0eSB0aGF0IHdlJ2QgZGV0ZWN0IGEgdHJ1ZSBpbXByb3ZlbWVudD8NCg0KDQpjKS4gRGV0ZXJtaW5lIHRoZSBtaW5pbXVtIHNhbXBsZSBzaXplIHJlcXVpcmVkIHRvIGRldGVjdCBhbiBlZmZlY3Qgc2l6ZSBvZiA0IG1nL2RMIHdpdGggYSBwb3dlciBvZiAkMSAtIFxiZXRhID0gMC44JCAgYW5kIGEgc2lnbmlmaWNhbmNlIGxldmVsIG9mICRcYWxwaGEgPSAwLjA1JC4gQXNzdW1lIHRoZSBzdGFuZGFyZCBkZXZpYXRpb24gb2YgTERMIHJlZHVjdGlvbiBpcyAxNSBtZy9kTC4NCg0KZCkuICoqUG93ZXIgY3VydmUqKjogVG8gYXNzZXNzIHRoZSBpbXBhY3Qgb2Ygc2FtcGxlIHNpemUgb24gcG93ZXIsIHdlIGNhbiBjcmVhdGUgYSBwb3dlciBmdW5jdGlvbiBpbiB0ZXJtcyBvZiB0aGUgc2FtcGxlIHNpemUgJG4kIGFuZCB1c2UgdGhlIHJlbWFpbmluZyBpbmZvcm1hdGlvbiBmcm9tIHBhcnQgKGIpLiBQbG90IHRoZSBwb3dlciBjdXJ2ZSBieSBzZWxlY3RpbmcgYSBzZXF1ZW5jZSBvZiBzYW1wbGUgc2l6ZXMuDQo8L3A+DQoNCg0KPGZvbnQgY29sb3IgPSAicmVkIj4qKk5vdGUqKjogRm9yIGVhY2ggb2YgdGhlIHF1ZXN0aW9ucyBhYm92ZSwgd3JpdGUgYSBzaG9ydCBzdW1tYXJ5IG9mIHdoYXQgeW91IG9ic2VydmVkLCBqdXN0aWZ5IHdoeSB5b3VyIGFuYWx5c2lzIGlzIHZhbGlkLCBhbmQgaW50ZXJwcmV0IHRoZSByZXN1bHRzLjwvZm9udD4NCg0K