Packages
Roadmap
Pearson Chi-Quadrat-Test | Cramers V
Hypothese
Voraussetzungen
Balkendiagramm
Kreuztabelle
Erwarteten Werte
X²
Cramers ´V
Aussage
library(readxl)
uebung9 <- read_excel("C:/Users/Alfa/Desktop/Uebungen/uebung9.xlsx")
#View(uebung9)
head(uebung9)
summary(uebung9)
ID Geschlecht Brille
Min. : 1.00 Length:200 Length:200
1st Qu.: 50.75 Class :character Class :character
Median :100.50 Mode :character Mode :character
Mean :100.50
3rd Qu.:150.25
Max. :200.00
str(uebung9)
tibble [200 x 3] (S3: tbl_df/tbl/data.frame)
$ ID : num [1:200] 1 2 3 4 5 6 7 8 9 10 ...
$ Geschlecht: chr [1:200] "w" "w" "w" "w" ...
$ Brille : chr [1:200] "ja" "ja" "ja" "ja" ...
uebung9$Geschlecht <- as.factor(uebung9$Geschlecht)
uebung9$Brille <- as.factor(uebung9$Brille)
str(uebung9)
tibble [200 x 3] (S3: tbl_df/tbl/data.frame)
$ ID : num [1:200] 1 2 3 4 5 6 7 8 9 10 ...
$ Geschlecht: Factor w/ 2 levels "m","w": 2 2 2 2 2 2 2 2 2 2 ...
$ Brille : Factor w/ 2 levels "ja","nein": 1 1 1 1 1 1 1 1 1 1 ...
1. Hypothese
H1: Es gibt einen Zusammenhang zwischen dem Geschlecht(m/w) und Bereitschaft eine Brille (ja/nein) zu tragen.
H0: Es gibt keinen Zusammenhang zwischen dem Geschlecht(m/w) und Bereitschaft eine Brille (ja/nein) zu tragen.
2. Voraussetzungen
Die Variablen sind kategorial (nominal- oder ordinalskaliert) -> Erfüllt da beide Variablen(Geschlecht/Brille) kategorial sind.
1) Die Stichprobe ist > 50. 200 > 50
2) Ist dies nicht der Fall, so wird bei einer Stichprobe kleiner als 20 der exakte Test nach Fisher verwendet
3) bei einer Stichprobengroesse zwischen 20 und 50 die Korrektur nach Yates.
sprintf("Anzahl der Daten: %d",nrow(uebung9) )
[1] "Anzahl der Daten: 200"
Es hat sich gezeigt, dass insgesamt 200 Teilnehmer befragt worden sind.
Die Freiheitsgrade des Chi-Quadrat-Tests sind groesser als 1. Ist dies nicht der Fall, so wird die Korrektur nach Yates verwendet
\[df = (Gruppe-1)*(Gruppe-1)\]
In diesem Beispiel liegt ein 2x2 Design vor. Daher liegt der df bei 1 und wir müssen nach Yates korrigieren.
Die erwarteten Zellhäufigkeiten sind > 5. Ist dies nicht der Fall, so wird der exakte Test nach Fisher verwendet. –> Klärung in Punkt 5
3. Balkendiagramm
counts<- table(uebung9$Geschlecht, by = uebung9$Brille)
barplot(counts, main="Balkendiagramm",
col=c("deepskyblue","tomato"),
ylab="Anzahl Personen",xlab = "Geschlecht und Brille",
beside=T,
names.arg =c("M-Brille","F-Brille","M-ohne-Brille", "F-ohneBrille"))

counts<- table(uebung9$Geschlecht, by = uebung9$Brille)
barplot(counts, main="Brille und Geschlecht",
col=c("blue","red"),
ylab="Anzahl Personen",xlab = "Bereitschaft eine Brille",
ylim=c(0,130),
beside=FALSE,
names.arg =c("Mit Brille","Ohne Brille"),
legend=TRUE)

counts<- table( uebung9$Brille, by = uebung9$Geschlecht)
#counts
barplot(counts, main="Brille und Geschlecht",
col=c("orange","lightgreen"),
ylab="Anzahl Personen",xlab = "Geschlecht",
ylim=c(0,130),
beside=FALSE,
names.arg =c("Männer","Frauen"),
legend=TRUE)

kurz<- c("M-Brille","F-Brille","M-ohne-Brille", "F-ohneBrille")
Anzahl <- c(70,40,30,60)
brillegender <- data.frame(kurz,Anzahl)
barplot(brillegender$Anzahl, names.arg = brillegender$kurz)

4. Kreuztabelle
counts<- table( Geschlecht = uebung9$Geschlecht, Brille = uebung9$Brille)
head(counts)
Brille
Geschlecht ja nein
m 70 40
w 30 60
Wie der Tabelle zu entnehmen ist, gibt es 70 Mann, die eine Brille tragen, 30 Frauen, die eine Brille tragen, 40 Männer, die keine Brille tragen, sowie 60 Frauen, die keine Brille tragen.
library("sjPlot")
library("sjmisc")
sjt.xtab(uebung9$Geschlecht, uebung9$Brille)
5. Erwarteten Werte
Die erwarteten Zellhäufigkeiten sind > 5. Ist dies nicht der Fall, so wird der exakte Test nach Fisher verwendet. Zur Klärung dieser Frage werden die erwarteten Werte errechnet.
\[f= \frac{Zeilensumme*Spaltensumme}{n}\]
ch1 <- chisq.test(counts)
ch1$expected
Brille
Geschlecht ja nein
m 55 55
w 45 45
Wie der Tabelle entnommen, werden kann zeigt es sich, dass die erwarteten Zellhäufigkeiten größer als 5 sind, daher ist keine Anpassung nach Fisher notwendig.
sjt.xtab(uebung9$Geschlecht, uebung9$Brille,
title = "Brille und Geschlecht im Zusammenhang",
show.cell.prc = TRUE, show.exp = TRUE, show.legend = T)
Prozentangabe, der jeweiligen Ausprägung
sjt.xtab(uebung9$Geschlecht, uebung9$Brille,
title = "Brille und Geschlecht im Zusammenhang",
show.cell.prc = TRUE, show.exp = TRUE, show.legend =
T)
Prozentangabe, der jeweiligen Ausprägung
frq(uebung9$Geschlecht,
title = "Geschlecht ",
out = "viewer")
frq(uebung9$Brille,
title = "Brille",
out = "viewer")
frq(uebung9$Brille,
title = "Brille",
out = "viewer")
6. \(\chi^2\)
Zur Berechnung des \(\chi^2\) ist eine Anpassung nach Yates notwendig, aber keine Anpassung nach Fisher. Daher wird folgender R-Code verwendet.
ergebnis<- chisq.test(counts, correct=T)
ergebnis
Pearson's Chi-squared test with Yates' continuity correction
data: counts
X-squared = 16.99, df = 1, p-value = 3.758e-05
An der Überschrift “Pearson’s Chi-squared test with Yates’ continuity correction” ist zu erkennen, das nach Yates der Chi-Wert angepasst wurden.
sprintf("kritischer Prüfwert: %.2f",qchisq(0.95, df=1))
[1] "kritischer Prüfwert: 3.84"
Hinweis: \[kritische \thinspace Prüfwert < empirsche \thinspace Prüfwert \rightarrow sig. \\ 3.84 < 16.99 \rightarrow sig\]
Es zeigt sich, dass ein sig. Ergebnis vorliegt (Chi-Quadrat(1) = 16.99, p = 3.758e-05, n = 200). Damit gibt es einen Zusammenhang zwischen dem Geschlecht und dem Tragen einer Brille.
7. Cramers ´V
anzahl <- nrow(uebung9)
sprintf("Die Anzahl liegt bei %d.", nrow(uebung9))
[1] "Die Anzahl liegt bei 200."
\[ \mbox{Cramers V} = \sqrt{\frac{\chi^2}{n(2-1)}} = \sqrt{\frac{16.989899}{200 (2-1)}}\]
** Es liegt ein 2X2 Design vor.**
cramersV <- sqrt(ergebnis$statistic/anzahl*(2-1))
sprintf("Die Effektstärke liegt bei %.2f.", cramersV)
[1] "Die Effektstärke liegt bei 0.29."
Cramers V liegt bei jeder Kreuztabelle unabhaengig von der Anzahl der Zellen zwischen 0 (Minimum) und 1 (Maximum)
Cramers V ist immer positiv -> keine Aussage über Richtung des Zusammenhangs
\[
\begin{align}
\text{Schwacher Effekt: } 0.1 &< ||Cramers V|| \leq 0.3 \\
\text{Schwacher bis mittlerer Effekt: }0.3 &< ||Cramers V|| \leq 0.4 \\
\text{Mittlerer Effekt: } 0.4 &< ||Cramers V|| < 0.5 \\
\text{Mittlerer bis starker Effekt: }0.5 &= ||Cramers V|| \\
\text{Starker Effekt: } 0.5 &< ||Cramers V||
\end{align}
\] Es zeigt sich für unsere Auswertung, dass ein schwacher Zusammenhang besteht.
8. Aussage
Das Geschlecht und das Tragen einer Brille steht in einem Zusammenhang (Chi-Quadrat(1)=16.99, p = 3.758e-05, n = 200). Der Zusammenhang ist schwach (Cramers V = .29). Damit kann die H0 verworfen werden.
LS0tDQp0aXRsZTogIlBlYXJzb24gQ2hpLVF1YWRyYXQtVGVzdCB8IENyYW1lcnMgViINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQojIyBQYWNrYWdlcw0KDQoNCiMjIFJvYWRtYXANClBlYXJzb24gQ2hpLVF1YWRyYXQtVGVzdCB8IENyYW1lcnMgVg0KDQoxLglIeXBvdGhlc2UgDQoNCjIuCVZvcmF1c3NldHp1bmdlbg0KDQozLglCYWxrZW5kaWFncmFtbQ0KDQo0LglLcmV1enRhYmVsbGUgDQoNCjUuCUVyd2FydGV0ZW4gV2VydGUgDQoNCjYuCVjCsg0KDQo3LglDcmFtZXJzIMK0Vg0KDQo4LglBdXNzYWdlIA0KDQoNCg0KDQpgYGB7cn0NCmxpYnJhcnkocmVhZHhsKQ0KdWVidW5nOSA8LSByZWFkX2V4Y2VsKCJDOi9Vc2Vycy9BbGZhL0Rlc2t0b3AvVWVidW5nZW4vdWVidW5nOS54bHN4IikNCiNWaWV3KHVlYnVuZzkpDQpgYGANCg0KDQpgYGB7cn0NCmhlYWQodWVidW5nOSkNCmBgYA0KDQpgYGB7cn0NCnN1bW1hcnkodWVidW5nOSkNCmBgYA0KDQpgYGB7cn0NCnN0cih1ZWJ1bmc5KQ0KdWVidW5nOSRHZXNjaGxlY2h0IDwtIGFzLmZhY3Rvcih1ZWJ1bmc5JEdlc2NobGVjaHQpDQp1ZWJ1bmc5JEJyaWxsZSA8LSBhcy5mYWN0b3IodWVidW5nOSRCcmlsbGUpDQpzdHIodWVidW5nOSkNCmBgYA0KDQoNCg0KIyMgMS4JSHlwb3RoZXNlIA0KDQpIMTogRXMgZ2lidCBlaW5lbiBadXNhbW1lbmhhbmcgendpc2NoZW4gZGVtIEdlc2NobGVjaHQobS93KSB1bmQgQmVyZWl0c2NoYWZ0IGVpbmUgQnJpbGxlIChqYS9uZWluKSB6dSB0cmFnZW4uPGJyPg0KSDA6IEVzIGdpYnQga2VpbmVuIFp1c2FtbWVuaGFuZyB6d2lzY2hlbiBkZW0gR2VzY2hsZWNodChtL3cpIHVuZCBCZXJlaXRzY2hhZnQgZWluZSBCcmlsbGUgKGphL25laW4pIHp1IHRyYWdlbi4NCg0KIyMgMi4JVm9yYXVzc2V0enVuZ2VuDQpEaWUgVmFyaWFibGVuIHNpbmQga2F0ZWdvcmlhbCAobm9taW5hbC0gb2RlciBvcmRpbmFsc2thbGllcnQpDQotPiBFcmbDvGxsdCBkYSBiZWlkZSBWYXJpYWJsZW4oR2VzY2hsZWNodC9CcmlsbGUpIGthdGVnb3JpYWwgc2luZC4NCg0KDQoqKjEpIERpZSBTdGljaHByb2JlIGlzdCA+IDUwLiAyMDAgPiA1MCAqKg0KDQoqMikgSXN0IGRpZXMgbmljaHQgZGVyIEZhbGwsIHNvIHdpcmQgYmVpIGVpbmVyIFN0aWNocHJvYmUga2xlaW5lciBhbHMgMjAgZGVyIGV4YWt0ZSBUZXN0IG5hY2ggRmlzaGVyIHZlcndlbmRldCoNCg0KKjMpIGJlaSBlaW5lciBTdGljaHByb2Jlbmdyb2Vzc2Ugendpc2NoZW4gMjAgdW5kIDUwIGRpZSBLb3JyZWt0dXIgbmFjaCBZYXRlcy4qDQoNCg0KDQoNCmBgYHtyfQ0Kc3ByaW50ZigiQW56YWhsIGRlciBEYXRlbjogJWQiLG5yb3codWVidW5nOSkgKQ0KYGBgDQpFcyBoYXQgc2ljaCBnZXplaWd0LCBkYXNzIGluc2dlc2FtdCAyMDAgVGVpbG5laG1lciBiZWZyYWd0IHdvcmRlbiBzaW5kLiANCg0KDQoNCioqRGllIEZyZWloZWl0c2dyYWRlIGRlcyBDaGktUXVhZHJhdC1UZXN0cyBzaW5kIGdyb2Vzc2VyIGFscyAxLiBJc3QgZGllcyBuaWNodCBkZXIgRmFsbCwgc28gd2lyZCBkaWUgS29ycmVrdHVyIG5hY2ggWWF0ZXMgdmVyd2VuZGV0KioNCg0KJCRkZiA9IChHcnVwcGUtMSkqKEdydXBwZS0xKSQkDQoNCkluIGRpZXNlbSBCZWlzcGllbCBsaWVndCBlaW4gMngyIERlc2lnbiB2b3IuIERhaGVyIGxpZWd0IGRlciBkZiBiZWkgMSB1bmQgd2lyIG3DvHNzZW4gbmFjaCBZYXRlcyBrb3JyaWdpZXJlbi4NCg0KRGllIGVyd2FydGV0ZW4gWmVsbGjDpHVmaWdrZWl0ZW4gc2luZCA+IDUuIElzdCBkaWVzIG5pY2h0IGRlciBGYWxsLCBzbyB3aXJkIGRlciBleGFrdGUgVGVzdCBuYWNoIEZpc2hlciB2ZXJ3ZW5kZXQuIC0tPiBLbMOkcnVuZyBpbiBQdW5rdCA1IA0KDQoNCiMjIDMuCUJhbGtlbmRpYWdyYW1tDQoNCmBgYHtyfQ0KY291bnRzPC0gdGFibGUodWVidW5nOSRHZXNjaGxlY2h0LCBieSA9IHVlYnVuZzkkQnJpbGxlKQ0KDQpiYXJwbG90KGNvdW50cywgbWFpbj0iQmFsa2VuZGlhZ3JhbW0iLA0KY29sPWMoImRlZXBza3libHVlIiwidG9tYXRvIiksDQp5bGFiPSJBbnphaGwgUGVyc29uZW4iLHhsYWIgPSAiR2VzY2hsZWNodCB1bmQgQnJpbGxlIiwNCmJlc2lkZT1ULA0KbmFtZXMuYXJnID1jKCJNLUJyaWxsZSIsIkYtQnJpbGxlIiwiTS1vaG5lLUJyaWxsZSIsICJGLW9obmVCcmlsbGUiKSkNCmBgYA0KYGBge3J9DQpjb3VudHM8LSB0YWJsZSh1ZWJ1bmc5JEdlc2NobGVjaHQsIGJ5ID0gdWVidW5nOSRCcmlsbGUpDQoNCmJhcnBsb3QoY291bnRzLCBtYWluPSJCcmlsbGUgdW5kIEdlc2NobGVjaHQiLA0KY29sPWMoImJsdWUiLCJyZWQiKSwNCnlsYWI9IkFuemFobCBQZXJzb25lbiIseGxhYiA9ICJCZXJlaXRzY2hhZnQgZWluZSBCcmlsbGUiLA0KeWxpbT1jKDAsMTMwKSwNCmJlc2lkZT1GQUxTRSwNCm5hbWVzLmFyZyA9YygiTWl0IEJyaWxsZSIsIk9obmUgQnJpbGxlIiksDQpsZWdlbmQ9VFJVRSkNCmBgYA0KYGBge3J9DQoNCmNvdW50czwtIHRhYmxlKCB1ZWJ1bmc5JEJyaWxsZSwgYnkgPSB1ZWJ1bmc5JEdlc2NobGVjaHQpDQojY291bnRzDQpiYXJwbG90KGNvdW50cywgbWFpbj0iQnJpbGxlIHVuZCBHZXNjaGxlY2h0IiwNCmNvbD1jKCJvcmFuZ2UiLCJsaWdodGdyZWVuIiksDQp5bGFiPSJBbnphaGwgUGVyc29uZW4iLHhsYWIgPSAiR2VzY2hsZWNodCIsDQp5bGltPWMoMCwxMzApLA0KYmVzaWRlPUZBTFNFLA0KbmFtZXMuYXJnID1jKCJNw6RubmVyIiwiRnJhdWVuIiksDQpsZWdlbmQ9VFJVRSkNCmBgYA0KDQoNCmBgYHtyfQ0Ka3VyejwtIGMoIk0tQnJpbGxlIiwiRi1CcmlsbGUiLCJNLW9obmUtQnJpbGxlIiwgIkYtb2huZUJyaWxsZSIpDQpBbnphaGwgPC0gYyg3MCw0MCwzMCw2MCkNCmJyaWxsZWdlbmRlciA8LSBkYXRhLmZyYW1lKGt1cnosQW56YWhsKQ0KDQpgYGANCiANCiANCmBgYHtyfQ0KYmFycGxvdChicmlsbGVnZW5kZXIkQW56YWhsLCBuYW1lcy5hcmcgPSBicmlsbGVnZW5kZXIka3VyeikNCmBgYA0KIA0KIyMgNC4JS3JldXp0YWJlbGxlDQoNCmBgYHtyfQ0KY291bnRzPC0gdGFibGUoIEdlc2NobGVjaHQgPSB1ZWJ1bmc5JEdlc2NobGVjaHQsIEJyaWxsZSA9IHVlYnVuZzkkQnJpbGxlKQ0KaGVhZChjb3VudHMpDQpgYGANCg0KV2llIGRlciBUYWJlbGxlIHp1IGVudG5laG1lbiBpc3QsIGdpYnQgZXMgDQoqNzAqIE1hbm4sIGRpZSBlaW5lIEJyaWxsZSB0cmFnZW4sIA0KKjMwKiBGcmF1ZW4sIGRpZSBlaW5lIEJyaWxsZSB0cmFnZW4sIA0KKjQwKiBNw6RubmVyLCBkaWUga2VpbmUgQnJpbGxlIHRyYWdlbiwgc293aWUgDQoqNjAqIEZyYXVlbiwgZGllIGtlaW5lIEJyaWxsZSB0cmFnZW4uDQoNCg0KYGBge3J9DQpsaWJyYXJ5KCJzalBsb3QiKQ0KbGlicmFyeSgic2ptaXNjIikNCmBgYA0KDQpgYGB7cn0NCnNqdC54dGFiKHVlYnVuZzkkR2VzY2hsZWNodCwgdWVidW5nOSRCcmlsbGUpDQpgYGANCg0KDQojIyA1LglFcndhcnRldGVuIFdlcnRlIA0KDQoNCioqRGllIGVyd2FydGV0ZW4gWmVsbGjDpHVmaWdrZWl0ZW4gc2luZCA+IDUuIElzdCBkaWVzIG5pY2h0IGRlciBGYWxsLCBzbyB3aXJkIGRlciBleGFrdGUgVGVzdCBuYWNoIEZpc2hlciB2ZXJ3ZW5kZXQuKioNClp1ciBLbMOkcnVuZyBkaWVzZXIgRnJhZ2Ugd2VyZGVuIGRpZSBlcndhcnRldGVuIFdlcnRlIGVycmVjaG5ldC4gDQoNCiQkZj0gXGZyYWN7WmVpbGVuc3VtbWUqU3BhbHRlbnN1bW1lfXtufSQkDQoNCmBgYHtyfQ0KY2gxIDwtIGNoaXNxLnRlc3QoY291bnRzKQ0KY2gxJGV4cGVjdGVkDQpgYGANCldpZSBkZXIgVGFiZWxsZSBlbnRub21tZW4sIHdlcmRlbiBrYW5uIHplaWd0IGVzIHNpY2gsIGRhc3MgZGllIGVyd2FydGV0ZW4gWmVsbGjDpHVmaWdrZWl0ZW4gZ3LDtsOfZXIgYWxzIDUgc2luZCwgZGFoZXIgaXN0IGtlaW5lIEFucGFzc3VuZyBuYWNoIEZpc2hlciBub3R3ZW5kaWcuIA0KDQoNCg0KYGBge3J9DQpzanQueHRhYih1ZWJ1bmc5JEdlc2NobGVjaHQsIHVlYnVuZzkkQnJpbGxlLA0KICAgICAgICAgdGl0bGUgPSAiQnJpbGxlIHVuZCBHZXNjaGxlY2h0IGltIFp1c2FtbWVuaGFuZyIsDQogICAgICAgICBzaG93LmNlbGwucHJjID0gVFJVRSwgc2hvdy5leHAgPSBUUlVFLCBzaG93LmxlZ2VuZCA9ICAgICAgICAgIFQpDQpgYGANCg0KIyMjIFByb3plbnRhbmdhYmUsIGRlciBqZXdlaWxpZ2VuIEF1c3Byw6RndW5nDQoNCg0KYGBge3J9DQpzanQueHRhYih1ZWJ1bmc5JEdlc2NobGVjaHQsIHVlYnVuZzkkQnJpbGxlLA0KICAgICAgICAgdGl0bGUgPSAiQnJpbGxlIHVuZCBHZXNjaGxlY2h0IGltIFp1c2FtbWVuaGFuZyIsDQogICAgICAgICBzaG93LmNlbGwucHJjID0gVFJVRSwgc2hvdy5leHAgPSBUUlVFLCBzaG93LmxlZ2VuZCA9IA0KICAgICAgICAgICBUKQ0KYGBgDQoNCiMjIyBQcm96ZW50YW5nYWJlLCBkZXIgamV3ZWlsaWdlbiBBdXNwcsOkZ3VuZw0KDQpgYGB7cn0NCmZycSh1ZWJ1bmc5JEdlc2NobGVjaHQsDQogICAgdGl0bGUgPSAiR2VzY2hsZWNodCAiLA0KICAgIG91dCA9ICJ2aWV3ZXIiKQ0KYGBgDQoNCmBgYHtyfQ0KZnJxKHVlYnVuZzkkQnJpbGxlLCANCiAgICB0aXRsZSA9ICJCcmlsbGUiLA0KICAgIG91dCA9ICJ2aWV3ZXIiKQ0KYGBgDQoNCmBgYHtyfQ0KZnJxKHVlYnVuZzkkQnJpbGxlLCANCiAgICB0aXRsZSA9ICJCcmlsbGUiLA0KICAgIG91dCA9ICJ2aWV3ZXIiKQ0KYGBgDQoNCiMjIDYuCSRcY2hpXjIkDQoNCg0KWnVyIEJlcmVjaG51bmcgZGVzICRcY2hpXjIkIGlzdCBlaW5lIEFucGFzc3VuZyBuYWNoIFlhdGVzIG5vdHdlbmRpZywgYWJlciBrZWluZSBBbnBhc3N1bmcgbmFjaCBGaXNoZXIuIERhaGVyIHdpcmQgZm9sZ2VuZGVyIFItQ29kZSB2ZXJ3ZW5kZXQuIA0KDQoNCmBgYHtyfQ0KZXJnZWJuaXM8LSBjaGlzcS50ZXN0KGNvdW50cywgY29ycmVjdD1UKQ0KZXJnZWJuaXMNCmBgYA0KQW4gZGVyIMOcYmVyc2NocmlmdCAiUGVhcnNvbidzIENoaS1zcXVhcmVkIHRlc3Qgd2l0aCBZYXRlcycgY29udGludWl0eSBjb3JyZWN0aW9uIiBpc3QgenUgZXJrZW5uZW4sIGRhcyBuYWNoIFlhdGVzIGRlciBDaGktV2VydCBhbmdlcGFzc3Qgd3VyZGVuLiANCg0KDQpgYGB7cn0NCnNwcmludGYoImtyaXRpc2NoZXIgUHLDvGZ3ZXJ0OiAlLjJmIixxY2hpc3EoMC45NSwgZGY9MSkpDQpgYGANCg0KKipIaW53ZWlzOioqICQka3JpdGlzY2hlIFx0aGluc3BhY2UgUHLDvGZ3ZXJ0IDwgZW1waXJzY2hlIFx0aGluc3BhY2UgUHLDvGZ3ZXJ0ICBccmlnaHRhcnJvdyBzaWcuIFxcIDMuODQgPCAxNi45OSBccmlnaHRhcnJvdyBzaWckJA0KICAgICAgICANCg0KDQpFcyB6ZWlndCBzaWNoLCBkYXNzIGVpbiBzaWcuIEVyZ2VibmlzIHZvcmxpZWd0IChDaGktUXVhZHJhdCgxKSA9IDE2Ljk5LCBwID0gMy43NThlLTA1LCBuID0gMjAwKS4gRGFtaXQgZ2lidCBlcyBlaW5lbiBadXNhbW1lbmhhbmcgendpc2NoZW4gZGVtIEdlc2NobGVjaHQgdW5kIGRlbSBUcmFnZW4gZWluZXIgQnJpbGxlLiANCg0KDQojIyA3LglDcmFtZXJzIMK0Vg0KDQpgYGB7cn0NCmFuemFobCA8LSBucm93KHVlYnVuZzkpDQpzcHJpbnRmKCJEaWUgQW56YWhsIGxpZWd0IGJlaSAlZC4iLCBucm93KHVlYnVuZzkpKQ0KDQpgYGANCg0KJCQgXG1ib3h7Q3JhbWVycyBWfSA9IFxzcXJ0e1xmcmFje1xjaGleMn17bigyLTEpfX0gPSBcc3FydHtcZnJhY3tgciBlcmdlYm5pcyRzdGF0aXN0aWNgfXtgciBhbnphaGxgICgyLTEpfX0kJA0KDQoqKiBFcyBsaWVndCBlaW4gMlgyIERlc2lnbiB2b3IuKioNCg0KYGBge3J9DQpjcmFtZXJzViA8LSBzcXJ0KGVyZ2VibmlzJHN0YXRpc3RpYy9hbnphaGwqKDItMSkpDQpzcHJpbnRmKCJEaWUgRWZmZWt0c3TDpHJrZSBsaWVndCBiZWkgJS4yZi4iLCBjcmFtZXJzVikNCmBgYA0KQ3JhbWVycyBWIGxpZWd0IGJlaSBqZWRlciBLcmV1enRhYmVsbGUgdW5hYmhhZW5naWcgdm9uIGRlciBBbnphaGwgZGVyIFplbGxlbiB6d2lzY2hlbiAwIChNaW5pbXVtKSB1bmQgMSAoTWF4aW11bSkNCg0KQ3JhbWVycyBWIGlzdCBpbW1lciBwb3NpdGl2IC0+IGtlaW5lIEF1c3NhZ2Ugw7xiZXIgUmljaHR1bmcgZGVzIFp1c2FtbWVuaGFuZ3MNCg0KJCQNClxiZWdpbnthbGlnbn0NClx0ZXh0e1NjaHdhY2hlciBFZmZla3Q6IH0gMC4xICY8IHx8Q3JhbWVycyBWfHwgXGxlcSAgMC4zIFxcDQpcdGV4dHtTY2h3YWNoZXIgYmlzIG1pdHRsZXJlciBFZmZla3Q6IH0wLjMgJjwgfHxDcmFtZXJzIFZ8fCBcbGVxICAwLjQgXFwNClx0ZXh0e01pdHRsZXJlciBFZmZla3Q6IH0gMC40ICY8IHx8Q3JhbWVycyBWfHwgPCAwLjUgXFwNClx0ZXh0e01pdHRsZXJlciBiaXMgc3RhcmtlciBFZmZla3Q6IH0wLjUgJj0gfHxDcmFtZXJzIFZ8fCBcXA0KXHRleHR7U3RhcmtlciBFZmZla3Q6IH0gMC41ICY8IHx8Q3JhbWVycyBWfHwgDQpcZW5ke2FsaWdufQ0KJCQNCkVzIHplaWd0IHNpY2ggZsO8ciB1bnNlcmUgQXVzd2VydHVuZywgZGFzcyBlaW4gc2Nod2FjaGVyIFp1c2FtbWVuaGFuZyBiZXN0ZWh0Lg0KDQojIyA4LglBdXNzYWdlIA0KDQpEYXMgR2VzY2hsZWNodCB1bmQgZGFzIFRyYWdlbiBlaW5lciBCcmlsbGUgc3RlaHQgaW4gZWluZW0gWnVzYW1tZW5oYW5nIChDaGktUXVhZHJhdCgxKT0xNi45OSwgcCA9IDMuNzU4ZS0wNSwgbiA9IDIwMCkuIERlciBadXNhbW1lbmhhbmcgaXN0IHNjaHdhY2ggKENyYW1lcnMgViA9IC4yOSkuIERhbWl0IGthbm4gZGllIEgwIHZlcndvcmZlbiB3ZXJkZW4uDQoNCg0K