Problem 8.20 (2 points)

We are given a sample size of \(n = 1013\) and an estimate \(\hat{p} = 0.54\). The standard error for \(\hat{p}\) is \[ \sigma_{\hat{p}} = \sqrt{p(1-p)/n} \doteq \sqrt{0.54\cdot 0.46 / 1013} \doteq 0.0152. \] A two standard error bound is \(2 \sigma_{\hat{p}} \doteq 0.0313\). We calculate that \(\hat{p} - 2 \sigma_{\hat{p}} \doteq 0.51\) and \(\hat{p} + 2 \sigma_{\hat{p}} \doteq 0.57\). We conclude that \(\hat{p}\) is approximately normal, and a two standard error bound is approximately \(\pm 3\%\). In repeated random samples of size \(n = 1013\), we expect that about \(95\%\) of the time the unknown proportion \(p\) will be within two standard errors of the point estimator \(\hat{p}\). Therefore, since \(\hat{p} - 2 \sigma_{\hat{p}} \doteq 0.51 > 0.50\), the data in this sample support the statement that more than \(50\%\) of the people in this age group feel that religion is a very important part of their lives.

Problem 8.24 (2 points)

In a study of the relationship between birth order and college success, an investigator found that \(y_1 = 126\) in a sample of \(n_1 = 180\) college graduates were firstborn or only children; in a sample of \(n_2 = 100\) non-graduates of comparable age and socioeconomic background, the number of firstborn or only children was \(y_2 = 54\). From these data we estimate \(p_1\), the proportion of firstborn or only children among college graduates, to be \(\hat{p}_1 = y_1/n_1 = 126/180 = 0.7\). Similarly, we estimate \(p_2\), the proportion of firstborn or only children among non-graduates, to be \(\hat{p}_2 = y_2/n_2 = 54/100 = 0.54\). An estimate for the standard error of \(\hat{p}_1 - \hat{p}_2\) is \[ \sigma_{\hat{p}_1 - \hat{p}_2} \doteq \sqrt{(0.70\cdot 0.30/180) + (0.54\cdot 0.46 / 100)} \doteq 0.06. \] An estimate for \(p_1 - p_2\) with a two standard error bound on the error of estimation is \(\hat{p}_1 - \hat{p}_2 \pm 2\sigma_{\hat{p}_1 - \hat{p}_2} \doteq 0.16 \pm 0.12\).

Problem 8.26 (4 points)

Survey’s inquiring into the health habits of Americans have been conducted for more than 15 years by Louis Harris & Associates. The polling organization’s recent findings were labeled “terribly disturbing” by Dr. Todd Davis, an executive vice president of the American Medical Association. The results of the surveys conducted in 1983 and 1992 are given in the accompanying table. The 1992 survey involved \(n_2 = 1251\) subjects. Although the size of the 1983 survey is not given in the article, assume that it involved \(n_1 = 1250\) individuals.

Health Issue 1983 Survey 1992 Survey
Avoided fat 0.55 0.51
Avoided excess salt 0.53 0.46
  1. Let \(p_1\) denote the proportion of Americans who avoided fat in 1983 and let \(p_2\) denote the proportion of Americans who avoided fat in 1992. We may estimate \(p_1 - p_2\) with the point estimator \[\hat{p}_1 - \hat{p}_2 = 0.55 - 0.51 = 0.04.\] An estimate for the standard error of \(\hat{p}_1 - \hat{p}_2\) is \[ \sigma_{\hat{p}_1 - \hat{p}_2} \doteq \sqrt{(0.55\cdot 0.45 / 1250) + (0.51\cdot 0.49 / 1251)} \doteq 0.02, \] which gives a two standard error bound of \(0.04 \pm 0.04\). Since \(0.04 - 0.04 = 0\), these data find it hard to distinguish \(p_1 - p_2\) from 0.
  2. Let \(p_1\) denote the proportion of Americans who avoided excess salt in 1983 and let \(p_2\) denote the proportion of Americans who avoided excess salt in 1992. We may estimate \(p_1 - p_2\) with the point estimator \[\hat{p}_1 - \hat{p}_2 = 0.53 - 0.46 = 0.07.\] An estimate for the standard error of \(\hat{p}_1 - \hat{p}_2\) is \[ \sigma_{\hat{p}_1 - \hat{p}_2} \doteq \sqrt{(0.53\cdot 0.47 / 1250) + (0.46\cdot 0.54 / 1251)} \doteq 0.02, \] which gives a two standard error bound of \(0.07 \pm 0.04\). Since \(0.07 - 0.04 = 0.03\), these data find it hard to distinguish \(p_1 - p_2\) from a slight decrease.
  3. Both results are suggestive of a downward trend in the proportion of Americans who avoid these two particular dietary factors. To describe the results as “terribly disturbing” may be unwarranted, since the decreases may be fairly small in magnitude.

Problem 8.30 (2 points)

We can place a two-standard-deviation bound on the error of estimation with any estimator for which we can find a reasonable estimate of the standard error. Suppose that \(Y_1, Y_2, \dotsc, Y_n\) represent a random sample from a Poisson distribution with mean \(\lambda\). We know that \(V(Y_i) = \lambda\), and hence \(E[\overline{Y}] = \lambda\) and \(V[\overline{Y}] = \lambda/n\). Thus \(\overline{Y}\) is an unbiased estimator for \(\lambda\), and \(\sqrt{\overline{Y}/n}\) provides a reasonable estimate for the standard error \(\sigma_{\overline{Y}}\).

Problem 8.35 (2 points)

Suppose that the random variable \(Y\) has a gamma distribution with parameters \(\alpha = 2\) and an unknown \(\beta\). In exercise 6.40, you used the method of moment-generating functions to prove a general result implying that \(2Y/\beta\) has a \(\chi^2\)-distribution with \(\nu = 4\) degrees of freedom. Using \(2Y/\beta\) as a pivotal quantity, derive a \(90\%\) confidence interval for \(\beta\).

With \(\nu = 4\) degrees of freedom, \(\chi^2_{0.05} \doteq 9.48773\) and \(\chi^2_{0.95} \doteq 0.710721\). Since \(2Y/\beta \sim \chi^2(\nu = 4)\), \[\begin{align*} P(\chi^2_{0.95} \le 2Y/\beta \le \chi^2_{0.05}) &= 0.90 \\ \implies P(2Y/\chi^2_{0.05} \le \beta \le 2Y/\chi^2_{0.95}) &= 0.90. \end{align*}\] Therefore, a we may use \(\hat{\theta}_L = 2Y/\chi^2_{0.05} = 0.21080\cdot Y\) as the lower confidence limit and \(\hat{\theta}_U = 2Y/\chi^2_{0.95} = 2.81404\cdot Y\) as the upper confidence limit in a \(90\%\) confidence interval for \(\beta\).

Problem 8.38 (6 points)

Suppose that \(Y\) is normally distributed with mean \(0\) and unknown variance \(\sigma^2\). Then \(Y^2/\sigma^2\) has a \(\chi^2\)-distribution with \(\nu = 1\) degree of freedom.

  1. From Table 6 on pages 794 - 795, \(\chi^2_{0.025} \doteq 5.02389\) and \(\chi^2_{0.975} \doteq 0.0009821\). Thus \[\begin{align*} P(0.0009821 \le Y^2 / \sigma^2 \le 5.02389) &\doteq 0.95 \\ \implies P(\,\vert\, Y\,\vert\, /\sqrt{5.02389} \le \sigma \le \,\vert\, Y\,\vert\, /\sqrt{0.0009821}) &\doteq 0.95, \end{align*}\] and therefore \((\hat{\sigma}_L , \hat{\sigma}_U) = (0.446149\cdot \,\vert\, Y\,\vert\,, 31.90966\cdot \,\vert\, Y\,\vert\,)\) is a \(95\%\) confidence interval for \(\sigma\).
  2. From Table 6 on pages 794 - 795, \(\chi^2_{0.950} \doteq 0.0039321\). Thus \[\begin{align*} P(0.0039321 \le Y^2 / \sigma^2) &\doteq 0.95 \\ \implies P(\sigma \le \,\vert\, Y\,\vert\,/\sqrt{0.0039321}) &\doteq 0.95, \end{align*}\] and therefore \(\hat{\sigma}_U = 15.94732\cdot \,\vert\, Y\,\vert\,\) is a \(95\%\) upper confidence limit for \(\sigma\).
  3. From Table 6 on pages 794 - 795, \(\chi^2_{0.050} \doteq 3.84146\). Thus \[\begin{align*} P(Y^2 / \sigma^2 \le 3.84146) &\doteq 0.95 \\ \implies P(\,\vert\, Y\,\vert\,/\sqrt{3.84146} \le \sigma) &\doteq 0.95, \end{align*}\] and therefore \(\hat{\sigma}_L = 0.5102134\cdot \,\vert\, Y\,\vert\,\) is a \(95\%\) lower confidence limit for \(\sigma\).

Problem 8.39 (4 points)

Let \(Y_1, Y_2, \dotsc , Y_n\) denote a random sample of size \(n\) from a population with a uniform distribution on the interval \((0,\theta)\). Let \(Y_{(n)} = \max(Y_1, Y_2, \dotsc , Y_n)\). Then the respective distribution functions for \(Y\) and \(Y_{(n)}\) are \[\begin{align*} F_Y(y) &= \begin{cases} 1 & , y > \theta \\ y/\theta & , 0 \le y \le \theta \\ 0 & , y < 0 \end{cases}, \\ F_{(n)}(y) &= \begin{cases} 1 & , y > \theta \\ (y/\theta)^n & , 0 \le y \le \theta \\ 0 & , y < 0 \end{cases}. \end{align*}\]
  1. Let \(U = (1/\theta) Y_{(n)}\). Then \[\begin{align*} F_U(u) &= P(U \le u) \\ &= P((1/\theta) Y_{(n)} \le u) \\ &= P(Y_{(n)} \le \theta \cdot u) \\ &= F_{(n)}(\theta \cdot u) \\ &= \begin{cases} 1 & , \theta \cdot u > \theta \\ (\theta \cdot u/\theta)^n & , 0 \le \theta \cdot u \le \theta \\ 0 & , \theta \cdot u < 0 \end{cases} \\ &= \begin{cases} 1 & , u > 1 \\ u^n & , 0 \le u \le 1 \\ 0 & , u < 0 \end{cases}. \\ \end{align*}\]
  2. Because the distribution of \(U\) does not depend on \(\theta\), \(U\) is a pivotal quantity. \(P(U \le (0.95)^{1/n}) = 0.95\) \(\implies\) \(P(Y_{(n)} / (0.95)^{1/n} \le \theta) = 0.95\). Therefore, a \(95\%\) lower confidence bound for \(\theta\) is \(\hat{\theta}_L = Y_{(n)} / (0.95)^{1/n}\).

Problem 8.41 (4 points)

Let \(Y\) have distribution function \[ F_Y(y) = \begin{cases} 0 & , y \le 0 \\ \frac{2y}{\theta} - \frac{y^2}{\theta^2} & , 0 < y < \theta \\ 1 & , y \ge \theta \end{cases}. \] From problem 8.40 we know that \(U = Y/\theta\) is a pivotal quantity. A short calculation shows that \(U\) has distribution function \[ F_U(u) = \begin{cases} 0 & , u \le 0 \\ 2u - u^2 & , 0 < u < 1 \\ 1 & , u \ge 1 \end{cases}. \]
  1. To find a \(90\%\) upper confidence limit for \(\theta\), we need to solve the equation \(F_U(u) = 2u - u^2 = 0.10\). The root we seek is \(u_{0.90} = (2 - \sqrt{3.6})/2 \doteq 0.0513\). Thus, \[\begin{align*} P(U \le 0.0513) &\doteq 0.10 \\ \implies P(U > 0.0513) &\doteq 0.90 \\ \implies P(\theta < Y/0.0513) &\doteq 0.90, \end{align*}\] from which we conclude that \(\hat{\theta}_U \doteq Y/0.0513 \doteq 19.493\cdot Y\) is a \(90\%\) upper confidence limit for \(\theta\).
  2. Let \(\hat{\theta}_L\) be the \(90\%\) lower confidence limit from problem 8.40 and let \(\hat{\theta}_U\) be the \(90\%\) upper confidence limit from part (a) of this problem. Since both confidence limits were derived from the same pivotal quantity \(U=Y/\theta\), we have \[\begin{align*} P(\hat{\theta}_L \le \theta \le \hat{\theta}_U) &= P(u_{0.90} \le U \le u_{0.10}) \\ &= F_U(u_{0.10}) - F_U(u_{0.90}) \\ &= 0.90 - 0.10 \\ &= 0.80. \end{align*}\]

Problem 8.42 (4 points)

In this problem the sample size is \(n=500\), and the point estimator \(\hat{p} = 268/500 = 0.536\). We estimate the standard error \(\sigma_{\hat{p}} \doteq \sqrt{\hat{p}(1-\hat{p})/n} \doteq 0.0223\).
  1. We seek a two-sided \(98\%\) confidence interval. Given the confidence coefficient of \(1-\alpha = 0.98\), we have \(\alpha = 0.02\) and \(\alpha/2 = 0.01\). From the standard normal table, \(z_{0.01} \doteq 2.325\), and we calculate \(z_{0.01} \cdot \sigma_{\hat{p}} \doteq 0.052\). Thus, a \(98\%\) confidence interval for \(p\) is \(\hat{p} \pm z_{\alpha/2}\cdot \sigma_{\hat{p}}\), \((0.484,0.588)\).
  2. This interval includes the prior value of \(p = 0.51\). We conclude that Proposition 48 had little to no affect on graduation rates of athletes.

Problem 8.44 (2 points)

We are given a sample size of \(n = 500\) patients, a sample average of \(\bar{y} = 5.4\) days, and a sample standard deviation of \(s = 3.1\) days. With a confidence coefficient of \(1 - \alpha = 0.95\), we have \(z_{\alpha/2} = z_{0.025} \doteq 1.96\). We estimate the standard error \(\sigma_{\overline{Y}} = \sigma/\sqrt{n} \doteq 3.1/\sqrt{500} \doteq 0.1386\). Thus, a \(95\%\) confidence interval for \(\mu\) is \(\bar{y} \pm z_{\alpha/2}\cdot \sigma_{\overline{Y}}\), which is \((5.13 , 5.67)\).

Problem 8.48 (2 points)

The following table summarizes the mean molting time for normal male crustaceans versus males that were split from their mates.

Time to Moult (days)
Normal vs. Split Mean s n
Normal 24.8 7.1 34
Split 21.3 8.1 41

Find a \(99\%\) confidence interval for the difference in mean molt times.

We estimate \(\mu_1 - \mu_2\) by \(\bar{y}_1 - \bar{y}_2 = 24.8 - 21.3 = 3.5\) days. We estimate the standard error \[ \sigma_{\,\overline{Y}_1 - \overline{Y}_2} = \sqrt{\sigma_1^2/n_1 + \sigma_2^2/n_2} \doteq \sqrt{(7.1)^2/34 + (8.1)^2/41} \doteq 1.7558. \] With confidence coefficient \(1-\alpha = 0.99\), \(z_{\alpha/2} = z_{0.005} \doteq 2.575\), which gives \(z_{\alpha/2}\cdot \sigma_{\,\overline{Y}_1 - \overline{Y}_2} \doteq 4.52\). This gives a \(99\%\) confidence interval for the difference in mean molting times of \[ (-1.02 , 8.02). \] Since the interval contains 0, the difference in molting times cannot be distinguished at the \(99\%\) level.

Problem 8.50 (4 points)

In a 1983 poll, \(\hat{p}_1 = 59\%\) of the \(n_1 = 1250\) respondents indicated that they ate the recommended amount of fibrous food. In a 1992 poll, \(\hat{p}_2 = 53\%\) of the \(n_2 = 1251\) respondents indicated that they ate the recommended amount of fibrous food.

We estimate the difference in the proportions of people who ate the recommended amount of fibrous food, \(p_1 - p_2\), by \[ \hat{p}_1 - \hat{p}_2 \doteq 0.59 - 0.53 = 0.06. \]

We estimate the variances of \(\hat{p}_1\) and \(\hat{p}_2\) by \[\begin{align*} \sigma_{\hat{p}_1}^2 &\doteq \hat{p}_1 (1 - \hat{p}_1)/n1 \doteq 0.59\cdot 0.41 / 1250 \doteq 0.00019352 \\ \sigma_{\hat{p}_2}^2 &\doteq \hat{p}_2 (1 - \hat{p}_2)/n2 \doteq 0.53\cdot 0.47 / 1251 \doteq 0.00019912. \end{align*}\]

Using these values, we estimate the standard error of \(\hat{p}_1 - \hat{p}_2\) by \[ \sigma_{\hat{p}_1 - \hat{p}_2} = \sqrt{\sigma_{\hat{p}_1}^2 + \sigma_{\hat{p}_2}^2} \doteq 0.0198. \]
  1. With confidence coefficient \(1-\alpha=0.98\), we have \(z_{\alpha/2} = z_{0.01} \doteq 2.352\) and \(z_{\alpha/2}\cdot \sigma_{\hat{p}_1 - \hat{p}_2} \doteq 0.046\). Thus, a \(98\%\) confidence interval for the difference \(p_1 - p_2\) is \(0.06 \pm 0.046\) or \[ (0.014 , 0.106). \]
  2. The results from (a) support the claim that there is a decrease from 1983 to 1992.

Problem 8.54 (6 points)

  1. Give a \(95\%\) confidence interval for the difference in the means for male and female students for the cultural activity scale. The data are summarized in this table.

    Cultural Activities
    Males Females
    \(n_1 = 252\) \(n_2 = 307\)
    \(\bar{y}_1 = 11.48\) \(\bar{y}_2 = 13.21\)
    \(s_1 = 5.69\) \(s_2 = 5.31\)

    We estimate the difference in means \(\mu_1 - \mu_2\) by \[ \bar{y}_1 - \bar{y}_2 = -1.73. \]

    We estimate the standard error by \[ \sigma_{\,\overline{Y}_1 - \overline{Y}_2} \doteq \sqrt{s_1^2/n_1 + s_2^2/n_2} \doteq 0.4694. \]

    With confidence coefficient \(1-\alpha = 0.95\), we find \(z_{\alpha/2} \doteq 1.96\) and \(z_{\alpha/2}\cdot \sigma_{\,\overline{Y}_1 - \overline{Y}_2} \doteq 0.920\). A \(95\%\) confidence interval for the difference in means is \(-1.73 \pm 0.4694\) or \[ (-2.65 , -0.81). \] Since this interval does not contain 0, the data from this sample support the statement that there is a difference in the means between male and female students.
  2. Give a \(90\%\) confidence interval for the difference in the means for male and female students for the social fun factor scale activity. The data are summarized in this table.

Social Fun
Males Females
\(n_1 = 252\) \(n_2 = 307\)
\(\bar{y}_1 = 22.05\) \(\bar{y}_2 = 25.96\)
\(s_1 = 5.12\) \(s_2 = 5.07\)

We estimate the difference in means \(\mu_1 - \mu_2\) by \[ \bar{y}_1 - \bar{y}_2 = -3.91. \]

We estimate the standard error by \[ \sigma_{\,\overline{Y}_1 - \overline{Y}_2} \doteq \sqrt{s_1^2/n_1 + s_2^2/n_2} \doteq 0.4333. \]

With confidence coefficient \(1-\alpha = 0.90\), we find \(z_{\alpha/2} \doteq 1.645\) and \(z_{\alpha/2}\cdot \sigma_{\,\overline{Y}_1 - \overline{Y}_2} \doteq 0.7128\). A \(90\%\) confidence interval for the difference in means is \(-3.91 \pm 0.7128\) or \[ (-4.62 , -3.20). \] Since this interval does not contain 0, the data from this sample support the statement that there is a difference in the means between male and female students.
  • In both cases the data support the statement that there is a difference in the means between male and female students.
  • LS0tCnRpdGxlOiAiU29sdXRpb25zIHRvIEhvbWV3b3JrIEFzc2lnbm1lbnQgNCIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKIyMgUHJvYmxlbSA4LjIwICgyIHBvaW50cykKV2UgYXJlIGdpdmVuIGEgc2FtcGxlIHNpemUgb2YgXChuID0gMTAxM1wpIGFuZCBhbiBlc3RpbWF0ZQpcKFxoYXR7cH0gPSAwLjU0XCkuIFRoZSBzdGFuZGFyZCBlcnJvciBmb3IgXChcaGF0e3B9XCkgaXMKXFsKXHNpZ21hX3tcaGF0e3B9fSA9IFxzcXJ0e3AoMS1wKS9ufSAKICBcZG90ZXEgXHNxcnR7MC41NFxjZG90IDAuNDYgLyAxMDEzfQogIFxkb3RlcSAwLjAxNTIuClxdCkEgdHdvIHN0YW5kYXJkIGVycm9yIGJvdW5kIGlzIFwoMiBcc2lnbWFfe1xoYXR7cH19IFxkb3RlcSAwLjAzMTNcKS4KV2UgY2FsY3VsYXRlIHRoYXQgXChcaGF0e3B9IC0gMiBcc2lnbWFfe1xoYXR7cH19IFxkb3RlcSAwLjUxXCkgYW5kClwoXGhhdHtwfSArIDIgXHNpZ21hX3tcaGF0e3B9fSBcZG90ZXEgMC41N1wpLiBXZSBjb25jbHVkZSB0aGF0IFwoXGhhdHtwfVwpIGlzIGFwcHJveGltYXRlbHkgbm9ybWFsLCBhbmQgYSB0d28gc3RhbmRhcmQgZXJyb3IgYm91bmQgaXMgYXBwcm94aW1hdGVseSBcKFxwbSAzXCVcKS4gSW4gcmVwZWF0ZWQgcmFuZG9tIHNhbXBsZXMgb2Ygc2l6ZSBcKG4gPSAxMDEzXCksIHdlIGV4cGVjdCB0aGF0IGFib3V0IFwoOTVcJVwpIG9mIHRoZSB0aW1lIHRoZSB1bmtub3duIHByb3BvcnRpb24gXChwXCkgd2lsbCBiZSB3aXRoaW4gdHdvIHN0YW5kYXJkIGVycm9ycyBvZiB0aGUgcG9pbnQgZXN0aW1hdG9yIFwoXGhhdHtwfVwpLiBUaGVyZWZvcmUsIHNpbmNlIFwoXGhhdHtwfSAtIDIgXHNpZ21hX3tcaGF0e3B9fSBcZG90ZXEgMC41MSA+IDAuNTBcKSwgdGhlIGRhdGEgaW4gdGhpcyBzYW1wbGUgc3VwcG9ydCB0aGUgc3RhdGVtZW50IHRoYXQgbW9yZSB0aGFuIFwoNTBcJVwpIG9mIHRoZSBwZW9wbGUgaW4gdGhpcyBhZ2UgZ3JvdXAgZmVlbCB0aGF0IHJlbGlnaW9uIGlzIGEgdmVyeSBpbXBvcnRhbnQgcGFydCBvZiB0aGVpciBsaXZlcy4KCiMjIFByb2JsZW0gOC4yNCAoMiBwb2ludHMpCgpJbiBhIHN0dWR5IG9mIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBiaXJ0aCBvcmRlciBhbmQgY29sbGVnZSBzdWNjZXNzLCBhbiBpbnZlc3RpZ2F0b3IgZm91bmQgdGhhdCBcKHlfMSA9IDEyNlwpIGluIGEgc2FtcGxlIG9mIFwobl8xID0gMTgwXCkgY29sbGVnZSBncmFkdWF0ZXMgd2VyZSBmaXJzdGJvcm4gb3Igb25seSBjaGlsZHJlbjsgaW4gYSBzYW1wbGUgb2YgXChuXzIgPSAxMDBcKSBub24tZ3JhZHVhdGVzIG9mIGNvbXBhcmFibGUgYWdlIGFuZCBzb2Npb2Vjb25vbWljIGJhY2tncm91bmQsIHRoZSBudW1iZXIgb2YgZmlyc3Rib3JuIG9yIG9ubHkgY2hpbGRyZW4gd2FzIFwoeV8yID0gNTRcKS4gRnJvbSB0aGVzZSBkYXRhIHdlIGVzdGltYXRlIFwocF8xXCksIHRoZSBwcm9wb3J0aW9uIG9mIGZpcnN0Ym9ybiBvciBvbmx5IGNoaWxkcmVuIGFtb25nIGNvbGxlZ2UgZ3JhZHVhdGVzLCB0byBiZSBcKFxoYXR7cH1fMSA9IHlfMS9uXzEgPSAxMjYvMTgwID0gYHIgMTI2LzE4MGBcKS4gU2ltaWxhcmx5LCB3ZSBlc3RpbWF0ZSBcKHBfMlwpLCB0aGUgcHJvcG9ydGlvbiBvZiBmaXJzdGJvcm4gb3Igb25seSBjaGlsZHJlbiBhbW9uZyBub24tZ3JhZHVhdGVzLCB0byBiZQpcKFxoYXR7cH1fMiA9IHlfMi9uXzIgPSA1NC8xMDAgPSBgciA1NC8xMDBgXCkuIEFuIGVzdGltYXRlIGZvciB0aGUgc3RhbmRhcmQgZXJyb3Igb2YgXChcaGF0e3B9XzEgLSBcaGF0e3B9XzJcKSBpcwpcWwpcc2lnbWFfe1xoYXR7cH1fMSAtIFxoYXR7cH1fMn0gXGRvdGVxClxzcXJ0eygwLjcwXGNkb3QgMC4zMC8xODApICsgKDAuNTRcY2RvdCAwLjQ2IC8gMTAwKX0gXGRvdGVxCmByIHJvdW5kKHNxcnQoKDAuNzAgKiAwLjMwLzE4MCkgKyAoMC41NCAqIDAuNDYgLyAxMDApKSwyKWAuClxdCkFuIGVzdGltYXRlIGZvciBcKHBfMSAtIHBfMlwpIHdpdGggYSB0d28gc3RhbmRhcmQgZXJyb3IgYm91bmQgb24gdGhlIGVycm9yIG9mIGVzdGltYXRpb24gaXMKXChcaGF0e3B9XzEgLSBcaGF0e3B9XzIgXHBtIDJcc2lnbWFfe1xoYXR7cH1fMSAtIFxoYXR7cH1fMn0gXGRvdGVxIDAuMTYgXHBtIDAuMTJcKS4KCiMjIFByb2JsZW0gOC4yNiAoNCBwb2ludHMpClN1cnZleSdzIGlucXVpcmluZyBpbnRvIHRoZSBoZWFsdGggaGFiaXRzIG9mIEFtZXJpY2FucyBoYXZlIGJlZW4gY29uZHVjdGVkIGZvciBtb3JlIHRoYW4gMTUgeWVhcnMgYnkgTG91aXMgSGFycmlzICZhbXA7IEFzc29jaWF0ZXMuIApUaGUgcG9sbGluZyBvcmdhbml6YXRpb24ncyByZWNlbnQgZmluZGluZ3Mgd2VyZSBsYWJlbGVkICJ0ZXJyaWJseSBkaXN0dXJiaW5nIiBieSBEci4gVG9kZCBEYXZpcywgYW4gZXhlY3V0aXZlIHZpY2UgcHJlc2lkZW50IG9mIHRoZSBBbWVyaWNhbiBNZWRpY2FsIEFzc29jaWF0aW9uLiBUaGUgcmVzdWx0cyBvZiB0aGUgc3VydmV5cyBjb25kdWN0ZWQgaW4gMTk4MyBhbmQgMTk5MiBhcmUgZ2l2ZW4gaW4gdGhlIGFjY29tcGFueWluZyB0YWJsZS4gVGhlIDE5OTIgc3VydmV5IGludm9sdmVkIFwobl8yID0gMTI1MVwpIHN1YmplY3RzLiBBbHRob3VnaCB0aGUgc2l6ZSBvZiB0aGUgMTk4MyBzdXJ2ZXkgaXMgbm90IGdpdmVuIGluIHRoZSBhcnRpY2xlLCBhc3N1bWUgdGhhdCBpdCBpbnZvbHZlZCBcKG5fMSA9IDEyNTBcKSBpbmRpdmlkdWFscy4KCkhlYWx0aCBJc3N1ZSAgICAgICAgfCAxOTgzIFN1cnZleSB8IDE5OTIgU3VydmV5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tCkF2b2lkZWQgZmF0ICAgICAgICAgfCAwLjU1ICAgICAgICB8IDAuNTEKQXZvaWRlZCBleGNlc3Mgc2FsdCB8IDAuNTMgICAgICAgIHwgMC40NgoKPG9sIHR5cGU9ImEiPgo8bGk+CkxldCBcKHBfMVwpIGRlbm90ZSB0aGUgcHJvcG9ydGlvbiBvZiBBbWVyaWNhbnMgd2hvIGF2b2lkZWQgZmF0IGluIDE5ODMgYW5kIGxldCBcKHBfMlwpIGRlbm90ZSB0aGUgcHJvcG9ydGlvbiBvZiBBbWVyaWNhbnMgd2hvIGF2b2lkZWQgZmF0IGluIDE5OTIuIFdlIG1heSBlc3RpbWF0ZSBcKHBfMSAtIHBfMlwpIHdpdGggdGhlIHBvaW50IGVzdGltYXRvciBcW1xoYXR7cH1fMSAtIFxoYXR7cH1fMiA9IDAuNTUgLSAwLjUxID0gMC4wNC5cXQpBbiBlc3RpbWF0ZSBmb3IgdGhlIHN0YW5kYXJkIGVycm9yIG9mIFwoXGhhdHtwfV8xIC0gXGhhdHtwfV8yXCkgaXMKXFsKXHNpZ21hX3tcaGF0e3B9XzEgLSBcaGF0e3B9XzJ9IFxkb3RlcQpcc3FydHsoMC41NVxjZG90IDAuNDUgLyAxMjUwKSArICgwLjUxXGNkb3QgMC40OSAvIDEyNTEpfSBcZG90ZXEKYHIgcm91bmQoc3FydCgoMC41NSowLjQ1IC8gMTI1MCkgKyAoMC41MSowLjQ5IC8gMTI1MSkpLDIpYCwKXF0Kd2hpY2ggZ2l2ZXMgYSB0d28gc3RhbmRhcmQgZXJyb3IgYm91bmQgb2YgXCgwLjA0IFxwbSAwLjA0XCkuIFNpbmNlIFwoMC4wNCAtIDAuMDQgPSAwXCksIHRoZXNlIGRhdGEgZmluZCBpdCBoYXJkIHRvIGRpc3Rpbmd1aXNoIFwocF8xIC0gcF8yXCkgZnJvbSAwLiAKPC9saT4KPGxpPgpMZXQgXChwXzFcKSBkZW5vdGUgdGhlIHByb3BvcnRpb24gb2YgQW1lcmljYW5zIHdobyBhdm9pZGVkIGV4Y2VzcyBzYWx0IGluIDE5ODMgYW5kIGxldCBcKHBfMlwpIGRlbm90ZSB0aGUgcHJvcG9ydGlvbiBvZiBBbWVyaWNhbnMgd2hvIGF2b2lkZWQgZXhjZXNzIHNhbHQgaW4gMTk5Mi4gV2UgbWF5IGVzdGltYXRlIFwocF8xIC0gcF8yXCkgd2l0aCB0aGUgcG9pbnQgZXN0aW1hdG9yIFxbXGhhdHtwfV8xIC0gXGhhdHtwfV8yID0gMC41MyAtIDAuNDYgPSAwLjA3LlxdCkFuIGVzdGltYXRlIGZvciB0aGUgc3RhbmRhcmQgZXJyb3Igb2YgXChcaGF0e3B9XzEgLSBcaGF0e3B9XzJcKSBpcwpcWwpcc2lnbWFfe1xoYXR7cH1fMSAtIFxoYXR7cH1fMn0gXGRvdGVxClxzcXJ0eygwLjUzXGNkb3QgMC40NyAvIDEyNTApICsgKDAuNDZcY2RvdCAwLjU0IC8gMTI1MSl9IFxkb3RlcQpgciByb3VuZChzcXJ0KCgwLjUzKjAuNDcgLyAxMjUwKSArICgwLjQ2KjAuNTQgLyAxMjUxKSksMilgLApcXQp3aGljaCBnaXZlcyBhIHR3byBzdGFuZGFyZCBlcnJvciBib3VuZCBvZiBcKDAuMDcgXHBtIDAuMDRcKS4gU2luY2UgXCgwLjA3IC0gMC4wNCA9IDAuMDNcKSwgdGhlc2UgZGF0YSBmaW5kIGl0IGhhcmQgdG8gZGlzdGluZ3Vpc2ggXChwXzEgLSBwXzJcKSBmcm9tIGEgc2xpZ2h0IGRlY3JlYXNlLiAKPC9saT4KPGxpPgpCb3RoIHJlc3VsdHMgYXJlIHN1Z2dlc3RpdmUgb2YgYSBkb3dud2FyZCB0cmVuZCBpbiB0aGUgcHJvcG9ydGlvbiBvZiBBbWVyaWNhbnMgd2hvIGF2b2lkIHRoZXNlIHR3byBwYXJ0aWN1bGFyIGRpZXRhcnkgZmFjdG9ycy4gVG8gZGVzY3JpYmUgdGhlIHJlc3VsdHMgYXMgInRlcnJpYmx5IGRpc3R1cmJpbmciIG1heSBiZSB1bndhcnJhbnRlZCwgc2luY2UgdGhlIGRlY3JlYXNlcyBtYXkgYmUgZmFpcmx5IHNtYWxsIGluIG1hZ25pdHVkZS4KPC9saT4KPC9vbD4KCiMjIFByb2JsZW0gOC4zMCAoMiBwb2ludHMpCldlIGNhbiBwbGFjZSBhIHR3by1zdGFuZGFyZC1kZXZpYXRpb24gYm91bmQgb24gdGhlIGVycm9yIG9mIGVzdGltYXRpb24gd2l0aCBhbnkgZXN0aW1hdG9yIGZvciB3aGljaCB3ZSBjYW4gZmluZCBhIHJlYXNvbmFibGUgZXN0aW1hdGUgb2YgdGhlIHN0YW5kYXJkIGVycm9yLiBTdXBwb3NlIHRoYXQgXChZXzEsIFlfMiwgXGRvdHNjLCBZX25cKSByZXByZXNlbnQgYSByYW5kb20gc2FtcGxlIGZyb20gYSBQb2lzc29uIGRpc3RyaWJ1dGlvbiB3aXRoIG1lYW4gXChcbGFtYmRhXCkuIFdlIGtub3cgdGhhdCBcKFYoWV9pKSA9IFxsYW1iZGFcKSwgYW5kIGhlbmNlClwoRVtcb3ZlcmxpbmV7WX1dID0gXGxhbWJkYVwpIGFuZCBcKFZbXG92ZXJsaW5le1l9XSA9IFxsYW1iZGEvblwpLiBUaHVzIFwoXG92ZXJsaW5le1l9XCkgaXMgYW4gdW5iaWFzZWQgZXN0aW1hdG9yIGZvciBcKFxsYW1iZGFcKSwgYW5kIApcKFxzcXJ0e1xvdmVybGluZXtZfS9ufVwpIHByb3ZpZGVzIGEgcmVhc29uYWJsZSBlc3RpbWF0ZSBmb3IgdGhlIHN0YW5kYXJkIGVycm9yIFwoXHNpZ21hX3tcb3ZlcmxpbmV7WX19XCkuCgojIyBQcm9ibGVtIDguMzUgKDIgcG9pbnRzKQpTdXBwb3NlIHRoYXQgdGhlIHJhbmRvbSB2YXJpYWJsZSBcKFlcKSBoYXMgYSBnYW1tYSBkaXN0cmlidXRpb24gd2l0aCBwYXJhbWV0ZXJzIFwoXGFscGhhID0gMlwpIGFuZCBhbiB1bmtub3duIFwoXGJldGFcKS4gSW4gZXhlcmNpc2UgNi40MCwgeW91IHVzZWQgdGhlIG1ldGhvZCBvZiBtb21lbnQtZ2VuZXJhdGluZyBmdW5jdGlvbnMgdG8gcHJvdmUgYSBnZW5lcmFsIHJlc3VsdCBpbXBseWluZyB0aGF0IFwoMlkvXGJldGFcKSBoYXMgYSBcKFxjaGleMlwpLWRpc3RyaWJ1dGlvbiB3aXRoIFwoXG51ID0gNFwpIGRlZ3JlZXMgb2YgZnJlZWRvbS4gVXNpbmcgXCgyWS9cYmV0YVwpIGFzIGEgcGl2b3RhbCBxdWFudGl0eSwgZGVyaXZlIGEgXCg5MFwlXCkgY29uZmlkZW5jZSBpbnRlcnZhbCBmb3IgXChcYmV0YVwpLgoKV2l0aCBcKFxudSA9IDRcKSBkZWdyZWVzIG9mIGZyZWVkb20sIFwoXGNoaV4yX3swLjA1fSBcZG90ZXEgOS40ODc3M1wpIGFuZCBcKFxjaGleMl97MC45NX0gXGRvdGVxIDAuNzEwNzIxXCkuIFNpbmNlIApcKDJZL1xiZXRhIFxzaW0gXGNoaV4yKFxudSA9IDQpXCksClxiZWdpbnthbGlnbip9ClAoXGNoaV4yX3swLjk1fSBcbGUgMlkvXGJldGEgXGxlIFxjaGleMl97MC4wNX0pICY9IDAuOTAgXFwKXGltcGxpZXMgClAoMlkvXGNoaV4yX3swLjA1fSBcbGUgXGJldGEgXGxlIDJZL1xjaGleMl97MC45NX0pICY9IDAuOTAuClxlbmR7YWxpZ24qfQpUaGVyZWZvcmUsIGEgd2UgbWF5IHVzZSAKXChcaGF0e1x0aGV0YX1fTCA9IDJZL1xjaGleMl97MC4wNX0gPSAwLjIxMDgwXGNkb3QgWVwpIGFzIHRoZSBsb3dlciBjb25maWRlbmNlIGxpbWl0IGFuZApcKFxoYXR7XHRoZXRhfV9VID0gMlkvXGNoaV4yX3swLjk1fSA9IDIuODE0MDRcY2RvdCBZXCkgYXMgdGhlIHVwcGVyIGNvbmZpZGVuY2UgbGltaXQgaW4gYSBcKDkwXCVcKSBjb25maWRlbmNlIGludGVydmFsIGZvciBcKFxiZXRhXCkuCgojIyBQcm9ibGVtIDguMzggKDYgcG9pbnRzKQpTdXBwb3NlIHRoYXQgXChZXCkgaXMgbm9ybWFsbHkgZGlzdHJpYnV0ZWQgd2l0aCBtZWFuIFwoMFwpIGFuZCB1bmtub3duIHZhcmlhbmNlIFwoXHNpZ21hXjJcKS4gVGhlbiBcKFleMi9cc2lnbWFeMlwpIGhhcyBhIApcKFxjaGleMlwpLWRpc3RyaWJ1dGlvbiB3aXRoIFwoXG51ID0gMVwpIGRlZ3JlZSBvZiBmcmVlZG9tLgoKPG9sIHR5cGU9ImEiPgo8bGk+CkZyb20gVGFibGUgNiBvbiBwYWdlcyA3OTQgLSA3OTUsClwoXGNoaV4yX3swLjAyNX0gXGRvdGVxIDUuMDIzODlcKSBhbmQgClwoXGNoaV4yX3swLjk3NX0gXGRvdGVxIDAuMDAwOTgyMVwpLiBUaHVzClxiZWdpbnthbGlnbip9ClAoMC4wMDA5ODIxIFxsZSBZXjIgLyBcc2lnbWFeMiBcbGUgNS4wMjM4OSkgJlxkb3RlcSAwLjk1IFxcClxpbXBsaWVzClAoXCxcdmVydFwsIFlcLFx2ZXJ0XCwgL1xzcXJ0ezUuMDIzODl9IFxsZSBcc2lnbWEgXGxlIFwsXHZlcnRcLCBZXCxcdmVydFwsIC9cc3FydHswLjAwMDk4MjF9KSAmXGRvdGVxIDAuOTUsClxlbmR7YWxpZ24qfQphbmQgdGhlcmVmb3JlIApcKChcaGF0e1xzaWdtYX1fTCAsIFxoYXR7XHNpZ21hfV9VKSA9ICgwLjQ0NjE0OVxjZG90IFwsXHZlcnRcLCBZXCxcdmVydFwsLCAzMS45MDk2NlxjZG90IFwsXHZlcnRcLCBZXCxcdmVydFwsKVwpCmlzIGEgXCg5NVwlXCkgY29uZmlkZW5jZSBpbnRlcnZhbCBmb3IgXChcc2lnbWFcKS4KPC9saT4KPGxpPgpGcm9tIFRhYmxlIDYgb24gcGFnZXMgNzk0IC0gNzk1LApcKFxjaGleMl97MC45NTB9IFxkb3RlcSAwLjAwMzkzMjFcKS4gVGh1cwpcYmVnaW57YWxpZ24qfQpQKDAuMDAzOTMyMSBcbGUgWV4yIC8gXHNpZ21hXjIpICZcZG90ZXEgMC45NSBcXApcaW1wbGllcwpQKFxzaWdtYSBcbGUgXCxcdmVydFwsIFlcLFx2ZXJ0XCwvXHNxcnR7MC4wMDM5MzIxfSkgJlxkb3RlcSAwLjk1LApcZW5ke2FsaWduKn0KYW5kIHRoZXJlZm9yZSBcKFxoYXR7XHNpZ21hfV9VID0gMTUuOTQ3MzJcY2RvdCBcLFx2ZXJ0XCwgWVwsXHZlcnRcLFwpIGlzIGEgXCg5NVwlXCkgdXBwZXIgY29uZmlkZW5jZSBsaW1pdCBmb3IgXChcc2lnbWFcKS4KPC9saT4KPGxpPgpGcm9tIFRhYmxlIDYgb24gcGFnZXMgNzk0IC0gNzk1LApcKFxjaGleMl97MC4wNTB9IFxkb3RlcSAzLjg0MTQ2XCkuIFRodXMKXGJlZ2lue2FsaWduKn0KUChZXjIgLyBcc2lnbWFeMiBcbGUgMy44NDE0NikgJlxkb3RlcSAwLjk1IFxcClxpbXBsaWVzClAoXCxcdmVydFwsIFlcLFx2ZXJ0XCwvXHNxcnR7My44NDE0Nn0gXGxlIFxzaWdtYSkgJlxkb3RlcSAwLjk1LApcZW5ke2FsaWduKn0KYW5kIHRoZXJlZm9yZSBcKFxoYXR7XHNpZ21hfV9MID0gMC41MTAyMTM0XGNkb3QgXCxcdmVydFwsIFlcLFx2ZXJ0XCxcKSBpcyBhIFwoOTVcJVwpIGxvd2VyIGNvbmZpZGVuY2UgbGltaXQgZm9yIFwoXHNpZ21hXCkuCjwvbGk+Cjwvb2w+CgojIyBQcm9ibGVtIDguMzkgKDQgcG9pbnRzKQpMZXQgXChZXzEsIFlfMiwgXGRvdHNjICwgWV9uXCkgZGVub3RlIGEgcmFuZG9tIHNhbXBsZSBvZiBzaXplIFwoblwpIGZyb20gYSBwb3B1bGF0aW9uIHdpdGggYSB1bmlmb3JtIGRpc3RyaWJ1dGlvbiBvbiB0aGUgaW50ZXJ2YWwgXCgoMCxcdGhldGEpXCkuIExldCBcKFlfeyhuKX0gPSBcbWF4KFlfMSwgWV8yLCBcZG90c2MgLCBZX24pXCkuICBUaGVuIHRoZSByZXNwZWN0aXZlIGRpc3RyaWJ1dGlvbiBmdW5jdGlvbnMgZm9yIFwoWVwpIGFuZCBcKFlfeyhuKX1cKSBhcmUKXGJlZ2lue2FsaWduKn0KRl9ZKHkpICY9ClxiZWdpbntjYXNlc30KMSAmICwgeSA+IFx0aGV0YSBcXAp5L1x0aGV0YSAmICwgMCBcbGUgeSBcbGUgXHRoZXRhIFxcCjAgJiAsIHkgPCAwClxlbmR7Y2FzZXN9LCBcXApGX3sobil9KHkpICY9ClxiZWdpbntjYXNlc30KMSAmICwgeSA+IFx0aGV0YSBcXAooeS9cdGhldGEpXm4gJiAsIDAgXGxlIHkgXGxlIFx0aGV0YSBcXAowICYgLCB5IDwgMApcZW5ke2Nhc2VzfS4KXGVuZHthbGlnbip9CjxvbCB0eXBlPSJhIj4KPGxpPgpMZXQgXChVID0gKDEvXHRoZXRhKSBZX3sobil9XCkuIFRoZW4KXGJlZ2lue2FsaWduKn0KRl9VKHUpICY9IFAoVSBcbGUgdSkgXFwKJj0gUCgoMS9cdGhldGEpIFlfeyhuKX0gXGxlIHUpIFxcCiY9IFAoWV97KG4pfSBcbGUgXHRoZXRhIFxjZG90IHUpIFxcCiY9IEZfeyhuKX0oXHRoZXRhIFxjZG90IHUpIFxcCiY9ClxiZWdpbntjYXNlc30KMSAmICwgXHRoZXRhIFxjZG90IHUgPiBcdGhldGEgXFwKKFx0aGV0YSBcY2RvdCB1L1x0aGV0YSlebiAmICwgMCBcbGUgXHRoZXRhIFxjZG90IHUgXGxlIFx0aGV0YSBcXAowICYgLCBcdGhldGEgXGNkb3QgdSA8IDAKXGVuZHtjYXNlc30gXFwKJj0KXGJlZ2lue2Nhc2VzfQoxICYgLCB1ID4gMSBcXAp1Xm4gJiAsIDAgXGxlIHUgXGxlIDEgXFwKMCAmICwgdSA8IDAKXGVuZHtjYXNlc30uIFxcClxlbmR7YWxpZ24qfQo8L2xpPgo8bGk+CkJlY2F1c2UgdGhlIGRpc3RyaWJ1dGlvbiBvZiBcKFVcKSBkb2VzIG5vdCBkZXBlbmQgb24gXChcdGhldGFcKSwgXChVXCkgaXMgYSBwaXZvdGFsIHF1YW50aXR5LgpcKFAoVSBcbGUgKDAuOTUpXnsxL259KSA9IDAuOTVcKSBcKFxpbXBsaWVzXCkgXChQKFlfeyhuKX0gLyAoMC45NSleezEvbn0gXGxlIFx0aGV0YSkgPSAwLjk1XCkuIFRoZXJlZm9yZSwgYSBcKDk1XCVcKSBsb3dlciBjb25maWRlbmNlIGJvdW5kIGZvciBcKFx0aGV0YVwpIGlzIFwoXGhhdHtcdGhldGF9X0wgPSBZX3sobil9IC8gKDAuOTUpXnsxL259XCkuCjwvbGk+Cjwvb2w+CgojIyBQcm9ibGVtIDguNDEgKDQgcG9pbnRzKQpMZXQgXChZXCkgaGF2ZSBkaXN0cmlidXRpb24gZnVuY3Rpb24KXFsKRl9ZKHkpID0KXGJlZ2lue2Nhc2VzfQowICYgLCB5IFxsZSAwIFxcClxmcmFjezJ5fXtcdGhldGF9IC0gXGZyYWN7eV4yfXtcdGhldGFeMn0gJiAsIDAgPCB5IDwgXHRoZXRhIFxcCjEgJiAsIHkgXGdlIFx0aGV0YQpcZW5ke2Nhc2VzfS4KXF0KRnJvbSBwcm9ibGVtIDguNDAgd2Uga25vdyB0aGF0IFwoVSA9IFkvXHRoZXRhXCkgaXMgYSBwaXZvdGFsIHF1YW50aXR5LiBBIHNob3J0IGNhbGN1bGF0aW9uIHNob3dzIHRoYXQgXChVXCkgaGFzIGRpc3RyaWJ1dGlvbiBmdW5jdGlvbgpcWwpGX1UodSkgPQpcYmVnaW57Y2FzZXN9CjAgJiAsIHUgXGxlIDAgXFwKMnUgLSB1XjIgJiAsIDAgPCB1IDwgMSBcXAoxICYgLCB1IFxnZSAxClxlbmR7Y2FzZXN9LgpcXQo8b2wgdHlwZT0iYSI+CjxsaT4KVG8gZmluZCBhIFwoOTBcJVwpIHVwcGVyIGNvbmZpZGVuY2UgbGltaXQgZm9yIFwoXHRoZXRhXCksIHdlIG5lZWQgdG8gc29sdmUgdGhlIGVxdWF0aW9uIFwoRl9VKHUpID0gMnUgLSB1XjIgPSAwLjEwXCkuIFRoZSByb290IHdlIHNlZWsgaXMgXCh1X3swLjkwfSA9ICgyIC0gXHNxcnR7My42fSkvMiBcZG90ZXEgMC4wNTEzXCkuIFRodXMsClxiZWdpbnthbGlnbip9ClAoVSBcbGUgMC4wNTEzKSAmXGRvdGVxIDAuMTAgXFwKXGltcGxpZXMKUChVID4gMC4wNTEzKSAmXGRvdGVxIDAuOTAgXFwKXGltcGxpZXMKUChcdGhldGEgPCBZLzAuMDUxMykgJlxkb3RlcSAwLjkwLApcZW5ke2FsaWduKn0KZnJvbSB3aGljaCB3ZSBjb25jbHVkZSB0aGF0IFwoXGhhdHtcdGhldGF9X1UgXGRvdGVxIFkvMC4wNTEzIFxkb3RlcSAxOS40OTNcY2RvdCBZXCkKaXMgYSBcKDkwXCVcKSB1cHBlciBjb25maWRlbmNlIGxpbWl0IGZvciBcKFx0aGV0YVwpLgo8L2xpPgo8bGk+CkxldCBcKFxoYXR7XHRoZXRhfV9MXCkgYmUgdGhlIFwoOTBcJVwpIGxvd2VyIGNvbmZpZGVuY2UgbGltaXQgZnJvbSBwcm9ibGVtIDguNDAgYW5kIGxldCBcKFxoYXR7XHRoZXRhfV9VXCkgYmUgdGhlIFwoOTBcJVwpIHVwcGVyIGNvbmZpZGVuY2UgbGltaXQgZnJvbSBwYXJ0IChhKSBvZiB0aGlzIHByb2JsZW0uIFNpbmNlIGJvdGggY29uZmlkZW5jZSBsaW1pdHMgd2VyZSBkZXJpdmVkIGZyb20gdGhlIHNhbWUgcGl2b3RhbCBxdWFudGl0eSBcKFU9WS9cdGhldGFcKSwgd2UgaGF2ZQpcYmVnaW57YWxpZ24qfQpQKFxoYXR7XHRoZXRhfV9MIFxsZSBcdGhldGEgXGxlIFxoYXR7XHRoZXRhfV9VKSAKJj0gUCh1X3swLjkwfSBcbGUgVSBcbGUgdV97MC4xMH0pIFxcCiY9IEZfVSh1X3swLjEwfSkgLSBGX1UodV97MC45MH0pIFxcCiY9IDAuOTAgLSAwLjEwIFxcCiY9IDAuODAuClxlbmR7YWxpZ24qfQo8L2xpPgo8L29sPgoKIyMgUHJvYmxlbSA4LjQyICg0IHBvaW50cykKSW4gdGhpcyBwcm9ibGVtIHRoZSBzYW1wbGUgc2l6ZSBpcyBcKG49NTAwXCksIGFuZCB0aGUgcG9pbnQgZXN0aW1hdG9yIFwoXGhhdHtwfSA9IDI2OC81MDAgPSAwLjUzNlwpLiBXZSBlc3RpbWF0ZSB0aGUgc3RhbmRhcmQgZXJyb3IgXChcc2lnbWFfe1xoYXR7cH19IFxkb3RlcSBcc3FydHtcaGF0e3B9KDEtXGhhdHtwfSkvbn0gXGRvdGVxIDAuMDIyM1wpLgo8b2wgdHlwZT0iYSI+CjxsaT4KV2Ugc2VlayBhIHR3by1zaWRlZCBcKDk4XCVcKSBjb25maWRlbmNlIGludGVydmFsLiBHaXZlbiB0aGUgY29uZmlkZW5jZSBjb2VmZmljaWVudCBvZiBcKDEtXGFscGhhID0gMC45OFwpLCB3ZSBoYXZlClwoXGFscGhhID0gMC4wMlwpIGFuZCBcKFxhbHBoYS8yID0gMC4wMVwpLiBGcm9tIHRoZSBzdGFuZGFyZCBub3JtYWwgdGFibGUsIFwoel97MC4wMX0gXGRvdGVxIDIuMzI1XCksIGFuZCB3ZSBjYWxjdWxhdGUKXCh6X3swLjAxfSBcY2RvdCBcc2lnbWFfe1xoYXR7cH19IFxkb3RlcSAwLjA1MlwpLiBUaHVzLCBhIFwoOThcJVwpIGNvbmZpZGVuY2UgaW50ZXJ2YWwgZm9yIFwocFwpIGlzIFwoXGhhdHtwfSBccG0gel97XGFscGhhLzJ9XGNkb3QgXHNpZ21hX3tcaGF0e3B9fVwpLCBcKCgwLjQ4NCwwLjU4OClcKS4KPC9saT4KPGxpPgpUaGlzIGludGVydmFsIGluY2x1ZGVzIHRoZSBwcmlvciB2YWx1ZSBvZiBcKHAgPSAwLjUxXCkuIFdlIGNvbmNsdWRlIHRoYXQgUHJvcG9zaXRpb24gNDggaGFkIGxpdHRsZSB0byBubyBhZmZlY3Qgb24gZ3JhZHVhdGlvbiByYXRlcyBvZiBhdGhsZXRlcy4KPC9saT4KPC9vbD4KCiMjIFByb2JsZW0gOC40NCAoMiBwb2ludHMpCldlIGFyZSBnaXZlbiBhIHNhbXBsZSBzaXplIG9mIFwobiA9IDUwMFwpIHBhdGllbnRzLCBhIHNhbXBsZSBhdmVyYWdlIG9mIFwoXGJhcnt5fSA9IDUuNFwpIGRheXMsIGFuZCBhIHNhbXBsZSBzdGFuZGFyZCBkZXZpYXRpb24gb2YgXChzID0gMy4xXCkgZGF5cy4gV2l0aCBhIGNvbmZpZGVuY2UgY29lZmZpY2llbnQgb2YgXCgxIC0gXGFscGhhID0gMC45NVwpLCB3ZSBoYXZlIFwoel97XGFscGhhLzJ9ID0gel97MC4wMjV9IFxkb3RlcSAxLjk2XCkuIFdlIGVzdGltYXRlIHRoZSBzdGFuZGFyZCBlcnJvciBcKFxzaWdtYV97XG92ZXJsaW5le1l9fSA9IFxzaWdtYS9cc3FydHtufSBcZG90ZXEgMy4xL1xzcXJ0ezUwMH0gXGRvdGVxIDAuMTM4NlwpLiBUaHVzLCBhIFwoOTVcJVwpIGNvbmZpZGVuY2UgaW50ZXJ2YWwgZm9yIFwoXG11XCkgaXMgXChcYmFye3l9IFxwbSB6X3tcYWxwaGEvMn1cY2RvdCBcc2lnbWFfe1xvdmVybGluZXtZfX1cKSwgd2hpY2ggaXMgXCgoNS4xMyAsIDUuNjcpXCkuCgojIyBQcm9ibGVtIDguNDggKDIgcG9pbnRzKQpUaGUgZm9sbG93aW5nIHRhYmxlIHN1bW1hcml6ZXMgdGhlIG1lYW4gbW9sdGluZyB0aW1lIGZvciBub3JtYWwgbWFsZSBjcnVzdGFjZWFucyB2ZXJzdXMgbWFsZXMgdGhhdCB3ZXJlIHNwbGl0IGZyb20gdGhlaXIgbWF0ZXMuCgojIyMjIyBUaW1lIHRvIE1vdWx0IChkYXlzKQpOb3JtYWwgdnMuIFNwbGl0IHwgTWVhbiB8ICBzICB8ICBuICAKLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tfC0tLS0tfC0tLS0tCk5vcm1hbCAgICAgICAgICAgfCAyNC44IHwgNy4xIHwgMzQKU3BsaXQgICAgICAgICAgICB8IDIxLjMgfCA4LjEgfCA0MQoKRmluZCBhIFwoOTlcJVwpIGNvbmZpZGVuY2UgaW50ZXJ2YWwgZm9yIHRoZSBkaWZmZXJlbmNlIGluIG1lYW4gbW9sdCB0aW1lcy4KCldlIGVzdGltYXRlIFwoXG11XzEgLSBcbXVfMlwpIGJ5IFwoXGJhcnt5fV8xIC0gXGJhcnt5fV8yID0gMjQuOCAtIDIxLjMgPSAzLjVcKSBkYXlzLiBXZSBlc3RpbWF0ZSB0aGUgc3RhbmRhcmQgZXJyb3IKXFsKXHNpZ21hX3tcLFxvdmVybGluZXtZfV8xIC0gXG92ZXJsaW5le1l9XzJ9Cj0gXHNxcnR7XHNpZ21hXzFeMi9uXzEgKyBcc2lnbWFfMl4yL25fMn0KXGRvdGVxIFxzcXJ0eyg3LjEpXjIvMzQgKyAoOC4xKV4yLzQxfSBcZG90ZXEgMS43NTU4LgpcXQpXaXRoIGNvbmZpZGVuY2UgY29lZmZpY2llbnQgXCgxLVxhbHBoYSA9IDAuOTlcKSwgClwoel97XGFscGhhLzJ9ID0gel97MC4wMDV9IFxkb3RlcSAyLjU3NVwpLCB3aGljaCBnaXZlcwpcKHpfe1xhbHBoYS8yfVxjZG90IFxzaWdtYV97XCxcb3ZlcmxpbmV7WX1fMSAtIFxvdmVybGluZXtZfV8yfQpcZG90ZXEgNC41MlwpLiBUaGlzIGdpdmVzIGEgXCg5OVwlXCkgY29uZmlkZW5jZSBpbnRlcnZhbCBmb3IgdGhlIGRpZmZlcmVuY2UgaW4gbWVhbiBtb2x0aW5nIHRpbWVzIG9mClxbCigtMS4wMiAsIDguMDIpLgpcXQpTaW5jZSB0aGUgaW50ZXJ2YWwgY29udGFpbnMgMCwgdGhlIGRpZmZlcmVuY2UgaW4gbW9sdGluZyB0aW1lcyBjYW5ub3QgYmUgZGlzdGluZ3Vpc2hlZCBhdCB0aGUgXCg5OVwlXCkgbGV2ZWwuCgojIyBQcm9ibGVtIDguNTAgKDQgcG9pbnRzKQpJbiBhIDE5ODMgcG9sbCwgXChcaGF0e3B9XzEgPSA1OVwlXCkgb2YgdGhlIFwobl8xID0gMTI1MFwpIHJlc3BvbmRlbnRzIGluZGljYXRlZCB0aGF0IHRoZXkgYXRlIHRoZSByZWNvbW1lbmRlZCBhbW91bnQgb2YgZmlicm91cyBmb29kLiBJbiBhIDE5OTIgcG9sbCwgXChcaGF0e3B9XzIgPSA1M1wlXCkgb2YgdGhlIFwobl8yID0gMTI1MVwpIHJlc3BvbmRlbnRzIGluZGljYXRlZCB0aGF0IHRoZXkgYXRlIHRoZSByZWNvbW1lbmRlZCBhbW91bnQgb2YgZmlicm91cyBmb29kLiAKCldlIGVzdGltYXRlIHRoZSBkaWZmZXJlbmNlIGluIHRoZSBwcm9wb3J0aW9ucyBvZiBwZW9wbGUgd2hvIGF0ZSB0aGUgcmVjb21tZW5kZWQgYW1vdW50IG9mIGZpYnJvdXMgZm9vZCwgXChwXzEgLSBwXzJcKSwgYnkKXFsKXGhhdHtwfV8xIC0gXGhhdHtwfV8yIFxkb3RlcSAwLjU5IC0gMC41MyA9IDAuMDYuClxdIAoKV2UgZXN0aW1hdGUgdGhlIHZhcmlhbmNlcyBvZiBcKFxoYXR7cH1fMVwpIGFuZCBcKFxoYXR7cH1fMlwpIGJ5ClxiZWdpbnthbGlnbip9ClxzaWdtYV97XGhhdHtwfV8xfV4yICZcZG90ZXEKXGhhdHtwfV8xICgxIC0gXGhhdHtwfV8xKS9uMSBcZG90ZXEgMC41OVxjZG90IDAuNDEgLyAxMjUwClxkb3RlcSAwLjAwMDE5MzUyIFxcClxzaWdtYV97XGhhdHtwfV8yfV4yICZcZG90ZXEKXGhhdHtwfV8yICgxIC0gXGhhdHtwfV8yKS9uMiBcZG90ZXEgMC41M1xjZG90IDAuNDcgLyAxMjUxClxkb3RlcSAwLjAwMDE5OTEyLgpcZW5ke2FsaWduKn0KClVzaW5nIHRoZXNlIHZhbHVlcywgd2UgZXN0aW1hdGUgdGhlIHN0YW5kYXJkIGVycm9yIG9mIApcKFxoYXR7cH1fMSAtIFxoYXR7cH1fMlwpIGJ5ClxbClxzaWdtYV97XGhhdHtwfV8xIC0gXGhhdHtwfV8yfSA9ClxzcXJ0e1xzaWdtYV97XGhhdHtwfV8xfV4yICsgXHNpZ21hX3tcaGF0e3B9XzJ9XjJ9Clxkb3RlcSAwLjAxOTguClxdCjxvbCB0eXBlPSJhIj4KPGxpPgpXaXRoIGNvbmZpZGVuY2UgY29lZmZpY2llbnQgXCgxLVxhbHBoYT0wLjk4XCksIHdlIGhhdmUKXCh6X3tcYWxwaGEvMn0gPSB6X3swLjAxfSBcZG90ZXEgMi4zNTJcKSBhbmQgClwoel97XGFscGhhLzJ9XGNkb3QgXHNpZ21hX3tcaGF0e3B9XzEgLSBcaGF0e3B9XzJ9Clxkb3RlcSAwLjA0NlwpLiBUaHVzLCBhIFwoOThcJVwpIGNvbmZpZGVuY2UgaW50ZXJ2YWwgZm9yIHRoZSBkaWZmZXJlbmNlIFwocF8xIC0gcF8yXCkgaXMgXCgwLjA2IFxwbSAwLjA0NlwpIG9yClxbCigwLjAxNCAsIDAuMTA2KS4KXF0KPC9saT4KPGxpPgpUaGUgcmVzdWx0cyBmcm9tIChhKSBzdXBwb3J0IHRoZSBjbGFpbSB0aGF0IHRoZXJlIGlzIGEgZGVjcmVhc2UgZnJvbSAxOTgzIHRvIDE5OTIuCjwvbGk+Cjwvb2w+CgojIyBQcm9ibGVtIDguNTQgKDYgcG9pbnRzKQo8b2wgdHlwZT0iYSI+CjxsaT4KR2l2ZSBhIFwoOTVcJVwpIGNvbmZpZGVuY2UgaW50ZXJ2YWwgZm9yIHRoZSBkaWZmZXJlbmNlIGluIHRoZSBtZWFucyBmb3IgbWFsZSBhbmQgZmVtYWxlIHN0dWRlbnRzIGZvciB0aGUgY3VsdHVyYWwgYWN0aXZpdHkgc2NhbGUuIFRoZSBkYXRhIGFyZSBzdW1tYXJpemVkIGluIHRoaXMgdGFibGUuCgojIyMjIyBDdWx0dXJhbCBBY3Rpdml0aWVzCk1hbGVzICAgICAgICAgICAgICAgICB8ICAgICAgICAgICBGZW1hbGVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClwobl8xID0gMjUyXCkgICAgICAgICB8ICAgICBcKG5fMiA9IDMwN1wpClwoXGJhcnt5fV8xID0gMTEuNDhcKSB8IFwoXGJhcnt5fV8yID0gMTMuMjFcKQpcKHNfMSA9IDUuNjlcKSAgICAgICAgfCAgICAgXChzXzIgPSA1LjMxXCkKCldlIGVzdGltYXRlIHRoZSBkaWZmZXJlbmNlIGluIG1lYW5zIFwoXG11XzEgLSBcbXVfMlwpIGJ5ClxbClxiYXJ7eX1fMSAtIFxiYXJ7eX1fMiA9IC0xLjczLgpcXQoKV2UgZXN0aW1hdGUgdGhlIHN0YW5kYXJkIGVycm9yIGJ5ClxbClxzaWdtYV97XCxcb3ZlcmxpbmV7WX1fMSAtIFxvdmVybGluZXtZfV8yfQpcZG90ZXEKXHNxcnR7c18xXjIvbl8xICsgc18yXjIvbl8yfSBcZG90ZXEgMC40Njk0LgpcXQoKV2l0aCBjb25maWRlbmNlIGNvZWZmaWNpZW50IFwoMS1cYWxwaGEgPSAwLjk1XCksIHdlIGZpbmQgClwoel97XGFscGhhLzJ9IFxkb3RlcSAxLjk2XCkgYW5kIApcKHpfe1xhbHBoYS8yfVxjZG90IFxzaWdtYV97XCxcb3ZlcmxpbmV7WX1fMSAtIFxvdmVybGluZXtZfV8yfQpcZG90ZXEgMC45MjBcKS4gQSBcKDk1XCVcKSBjb25maWRlbmNlIGludGVydmFsIGZvciB0aGUgZGlmZmVyZW5jZSBpbiBtZWFucyBpcyBcKC0xLjczIFxwbSAwLjQ2OTRcKSBvcgpcWwooLTIuNjUgLCAtMC44MSkuClxdClNpbmNlIHRoaXMgaW50ZXJ2YWwgZG9lcyBub3QgY29udGFpbiAwLCB0aGUgZGF0YSBmcm9tIHRoaXMgc2FtcGxlIHN1cHBvcnQgdGhlIHN0YXRlbWVudCB0aGF0IHRoZXJlIGlzIGEgZGlmZmVyZW5jZSBpbiB0aGUgbWVhbnMgYmV0d2VlbiBtYWxlIGFuZCBmZW1hbGUgc3R1ZGVudHMuCjwvbGk+CjxsaT4KR2l2ZSBhIFwoOTBcJVwpIGNvbmZpZGVuY2UgaW50ZXJ2YWwgZm9yIHRoZQpkaWZmZXJlbmNlIGluIHRoZSBtZWFucyBmb3IgbWFsZSBhbmQgZmVtYWxlIHN0dWRlbnRzCmZvciB0aGUgc29jaWFsIGZ1biBmYWN0b3Igc2NhbGUgYWN0aXZpdHkuIFRoZSBkYXRhCmFyZSBzdW1tYXJpemVkIGluIHRoaXMgdGFibGUuCgojIyMjIyBTb2NpYWwgRnVuCk1hbGVzICAgICAgICAgICAgICAgICB8ICAgICAgICAgICBGZW1hbGVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpcKG5fMSA9IDI1MlwpICAgICAgICAgfCAgICAgXChuXzIgPSAzMDdcKQpcKFxiYXJ7eX1fMSA9IDIyLjA1XCkgfCBcKFxiYXJ7eX1fMiA9IDI1Ljk2XCkKXChzXzEgPSA1LjEyXCkgICAgICAgIHwgICAgIFwoc18yID0gNS4wN1wpCgpXZSBlc3RpbWF0ZSB0aGUgZGlmZmVyZW5jZSBpbiBtZWFucyBcKFxtdV8xIC0gXG11XzJcKSBieQpcWwpcYmFye3l9XzEgLSBcYmFye3l9XzIgPSAtMy45MS4KXF0KCldlIGVzdGltYXRlIHRoZSBzdGFuZGFyZCBlcnJvciBieQpcWwpcc2lnbWFfe1wsXG92ZXJsaW5le1l9XzEgLSBcb3ZlcmxpbmV7WX1fMn0KXGRvdGVxClxzcXJ0e3NfMV4yL25fMSArIHNfMl4yL25fMn0gXGRvdGVxIDAuNDMzMy4KXF0KCldpdGggY29uZmlkZW5jZSBjb2VmZmljaWVudCBcKDEtXGFscGhhID0gMC45MFwpLCB3ZSBmaW5kIApcKHpfe1xhbHBoYS8yfSBcZG90ZXEgMS42NDVcKSBhbmQgClwoel97XGFscGhhLzJ9XGNkb3QgXHNpZ21hX3tcLFxvdmVybGluZXtZfV8xIC0gXG92ZXJsaW5le1l9XzJ9Clxkb3RlcSAwLjcxMjhcKS4gQSBcKDkwXCVcKSBjb25maWRlbmNlIGludGVydmFsIGZvciB0aGUgZGlmZmVyZW5jZSBpbiBtZWFucyBpcyBcKC0zLjkxIFxwbSAwLjcxMjhcKSBvcgpcWwooLTQuNjIgLCAtMy4yMCkuClxdClNpbmNlIHRoaXMgaW50ZXJ2YWwgZG9lcyBub3QgY29udGFpbiAwLCB0aGUgZGF0YSBmcm9tIHRoaXMgc2FtcGxlIHN1cHBvcnQgdGhlIHN0YXRlbWVudCB0aGF0IHRoZXJlIGlzIGEgZGlmZmVyZW5jZSBpbiB0aGUgbWVhbnMgYmV0d2VlbiBtYWxlIGFuZCBmZW1hbGUgc3R1ZGVudHMuCjwvbGk+CjxsaT4KSW4gYm90aCBjYXNlcyB0aGUgZGF0YSBzdXBwb3J0IHRoZSBzdGF0ZW1lbnQgdGhhdCB0aGVyZSBpcyBhIGRpZmZlcmVuY2UgaW4gdGhlIG1lYW5zIGJldHdlZW4gbWFsZSBhbmQgZmVtYWxlIHN0dWRlbnRzLgo8L2xpPgo8L29sPgo=