Mehrfaktorielle Varianzanalyse
mehranova$Alkohol<-factor(mehranova$Alkohol, levels=c("gering", "mittel", "hoch"))
Hypothese
Haupteffekt A
H0:Es gibt keinen Unterschied zwischen dem Geschlecht und der gesungenen Anzahl an Songs.
H1:Es gibt einen Unterschied zwischen dem Geschlecht und der gesungenen Anzahl an Songs.
Haupteffekt B
H0:Es gibt einen Unterschied zwischen dem Alkoholgehalt und der gesungenen Anzahl an Songs.
H1:Es gibt einen Unterschied zwischen dem Alkoholgehalt und der gesungenen Anzahl an Songs.
Interaktion AxB
H1: Es gibt einen Unterschied zwischen dem Geschlecht, bzw. dem Alkoholgehalt des ersten Getränkes und der Anzahl der gesungenen Songs.
H0: Es gibt keinen Unterschied zwischen dem Geschlecht, bzw. dem Alkoholgehalt des ersten Getränkes und der Anzahl der gesungenen Songs.
Voraussetzungen für die mehrfaktorielle Varianzanalyse (ohne Messwiederholung)
Die abhängige Variable ist intervallskaliert -> ist gegeben, sogar absolutskaliert.
Die unabhängigen Variablen (Geschlecht und Alkoholgehalt) sind kategorial (nominal- oder ordinalskaliert) -> sind sie. Die durch die Faktoren gebildeten Gruppen sind unabhängig -> Entweder ist der Gast biologisch weiblich / männlich , bzw. der Alkoholgehalt des ersten Getränkes ist entweder 0.05 | 0.15 | 0.35.
Die abhängige Variablen ist normalverteilt innerhalb jeder der Gruppen. Ab 25 Probanden pro Gruppe sind Verletzungen dieser Voraussetzung unproblematisch-> siehe Histogramm
omogenität der Varianzen: Die Gruppen stammen aus Grundgesamtheiten mit annähernd identischen Varianzen der abhängigen Variablen -> siehe Levene-Test
Deskriptive Statistiken + Prüfung der Voraussetzung
Histogramm zur Prüfung der Normalvertweilung
Alkohol
library(dplyr)
library(ggplot2)
mehranova %>%
group_by(Alkohol) %>%
ggplot(aes(Songs, color=Alkohol)) +
geom_histogram(aes(fill = Alkohol), binwidth = 1.5) +
facet_wrap(~Alkohol) +
theme_grey()+
labs(x= "Anzahl der Songs",y = "Anzahl" )

Die Daten sind normalverteilt innerhalb der Gruppe Alkohol und Anzahl der gesungenen Songs.
mehranova %>%
group_by(Geschlecht) %>%
ggplot(aes(Songs, color=Geschlecht)) +
geom_histogram(aes(fill = Geschlecht), binwidth = 3.3) +
facet_wrap(~Geschlecht) +
theme_grey()+
labs(x= "Anzahl der Songs",y = "Anzahl" )

Die Daten sind normalverteilt innerhalb der Gruppe Geschlecht und Anzahl der gesungenen Songs, nicht sehr schön. Ab 25 Teilnehmer pro Gruppe ist das Testverfahren robust.
ggplot(mehranova, aes(x=Songs))+
geom_histogram()+
theme_grey()+
facet_wrap(Alkohol~Geschlecht, ncol = 2)

Ab 25 Teilnehmer pro Gruppe ist das Testverfahren robust. Jedoch gibt es Schwierigkeiten bei der Normalverteilung bei mittlerem Alkoholgehalt bei den weiblichen Barbesuchern.
Boxplot
ggplot(mehranova, aes(Geschlecht, Songs, fill=factor(Alkohol))) +
geom_boxplot() +
theme_minimal()+
labs(fill = "Alkoholniveau", x="Geschlecht", y="Anzahl Songs")

Deskriptive Statistiken
mehranova %>%
group_by(Alkohol) %>%
summarize(Anzahl = n(), Mittelwert = mean(Songs), Median = median(Songs), Standardabweichung = sd(Songs)) %>%
mutate_if(is.numeric, round, 2)
Bei geringem Alkoholgehalt werden 2.66 Songs im Schnitt gesungen (SD = 1.15, n = 50). Bei mittlerem Alkoholgehalt singen die Barbesucher 5.88 Songs im Durchschnitt (SD = 1.92, n = 50). Bei hoher Alkoholgehalt singen die Barbesucher deutlich mehr Songs - im Schnitt 11 Songs (SD = 2.54, n = 50).
mehranova %>%
group_by(Geschlecht) %>%
summarize(Anzahl = n(), Mittelwert = mean(Songs), Median = median(Songs), Standardabweichung = sd(Songs)) %>%
mutate_if(is.numeric, round, 2)
Es zeichnet sich ein schwieriges Bild. Der Geschlechterunterschied ist nur minimal. Barbesucher singen 6.44 Songs im Schnitt, wohingegen Barbesucherinnen 6.59 Songs singen. Darüber hinaus zeigen auch die Standardabweichung und der Mittelwert, dass wahrscheinlich keine Signifikanz vorliegt.
mehranova %>%
group_by(Geschlecht, Alkohol) %>%
summarize(Anzahl = n(), Mittelwert = mean(Songs), Median = median(Songs), Standardabweichung = sd(Songs)) %>%
mutate_if(is.numeric, round, 2)
`summarise()` has grouped output by 'Geschlecht'. You can override using the `.groups` argument.
`mutate_if()` ignored the following grouping variables:
Column `Geschlecht`
Bei geringer Alkoholgehalt singen die Männer (M = 3.24, SD = 1.164) mehr Songs als die Frauen (M = 2.08, SD = .81). Dies ist auch bei mittlerer Alkoholgehalt ebenfalls der Fall (Männer: M = 6.8, SD = 1.75; Frauen: M = 4.96, SD = .1.64). Bei hoher Alkoholgehalt ist es genau umgekehrt: Die Frauen (M = 12.72, SD = 2.03) singen deutlich mehr Songs als die Männer(M = 9.28, SD = 1.69).
Alternative
mittel <-tapply(mehranova$Songs, list(mehranova$Alkohol, mehranova$Geschlecht), mean, na.rm=TRUE)
mittel
m w
gering 3.24 2.08
mittel 6.80 4.96
hoch 9.28 12.72
sd <-tapply(mehranova$Songs, list(mehranova$Alkohol, mehranova$Geschlecht), sd, na.rm=TRUE)
sd
m w
gering 1.164760 0.8124038
mittel 1.755942 1.6451950
hoch 1.696074 2.0314199
anzahlprogruppe <- tapply(mehranova$Songs, list(mehranova$Alkohol, mehranova$Geschlecht), function(x) sum(!is.na(x)))
anzahlprogruppe
m w
gering 25 25
mittel 25 25
hoch 25 25
Profildiagramm
ggplot(mehranova, aes(x=Alkohol, y=Songs, group=Geschlecht, color= Geschlecht))+
stat_summary(fun.y = mean, geom="point", size=3)+
stat_summary(fun.y = mean, geom="line")+
stat_summary(fun.data = mean_cl_normal, geom="errorbar",width=.2, size=.25)+
labs(x="Alkohol", y="Anzahl der Songs")+
theme_classic()
`fun.y` is deprecated. Use `fun` instead.`fun.y` is deprecated. Use `fun` instead.

Levene -Test
Der Levene-Test prüft die Nullhypothese, dass die Varianzen der Gruppen sich nicht unterscheiden. Ist der Levene-Test nicht signifikant, so kann von homogenen Varianzen ausgegangen. Wäre der Levene-Test jedoch signifikant, so wäre eine der Grundvoraussetzungen der Varianzanalyse verletzt. Gegen leichte Verletzungen gilt die Varianzanalyse als robust; vor allem bei genügend grossen und etwa gleich grossen Gruppen sind Verletzungen nicht problematisch. Bei ungleich grossen Gruppen führt eine starke Verletzung der Varianzhomogenität zu einer Verzerrung des F-Tests. Alternativ können dann auf den Brown-Forsythe-Test oder den Welch-Test zurückgegriffen werden. Dabei handelt es sich um adjustierte F-Tests.
library(car)
leveneTest(Songs ~ Alkohol*Geschlecht, data = mehranova, center = "mean")
Levene's Test for Homogeneity of Variance (center = "mean")
Df F value Pr(>F)
group 5 5.6264 9.088e-05 ***
144
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Im vorliegenden Beispiel ist der Levene-Test signifikant (F(5,144) = 5.626, p < .000 ), so dass von Varianzheterogenität ausgegangen werden kann. Da die Varianzen leider nicht gleich sind, ist es zu empfehlen eine Korrektur mithilfe des Welch-Tests durchzuführen.
Entscheiungsregeln
Mit Welch-Korrektur: p < 0.05 => Ergebnis Signifikant –> Varianzen heterogen
Ohne Welch-Korrektur: p > 0.05 => Ergebnis nicht Signifikant –> Varianzen homogen –> H0 mit Annahme Var1=Var2=… -> Var_n wird angenommen
Ergebnisse der mehrfaktorielle Varianzanalyse (ohne Messwiederholung)
Keine Welch-Korrektur - ist der Standard
mehrAnova1 <- lm(Songs ~ Geschlecht*Alkohol, data = mehranova)
myAnova <- Anova(mehrAnova1 , type = 3)
myAnova
Anova Table (Type III tests)
Response: Songs
Sum Sq Df F value Pr(>F)
(Intercept) 262.44 1 106.3228 < 2.2e-16 ***
Geschlecht 16.82 1 6.8143 0.009999 **
Alkohol 460.88 2 93.3585 < 2.2e-16 ***
Geschlecht:Alkohol 206.25 2 41.7799 4.912e-15 ***
Residuals 355.44 144
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
mit Welch-Korrektur ist zur Kontrolle gedacht
Es liegt eine Verletzung der Varianzhomogenität vor(siehe Levene-Test). Daher sollte ein robusterer Test berücksichtigt werden (* mit welch* ). Allerdings bieten sich hier keine weitgehend akzeptierten Verfahren an. Daher wird der Standard weitergeführt.
geschlechtwelch <- oneway.test(Songs~Geschlecht, data = mehranova, var.equal = F)
geschlechtwelch
One-way analysis of means (not assuming equal variances)
data: Songs and Geschlecht
F = 0.051224, num df = 1.00, denom df = 122.72, p-value = 0.8213
Für den Faktor Geschlecht wird kein Haupteffekt ersichtlich. Die Anzahl der gesungenen Songs scheint demnach unabhängig vom Geschlecht zu sein (F(1,122.72) = .0512, p = .8213).
alkoholwelch <- oneway.test(Songs~Alkohol, data = mehranova, var.equal = F)
alkoholwelch
One-way analysis of means (not assuming equal variances)
data: Songs and Alkohol
F = 238.45, num df = 2.000, denom df = 88.419, p-value < 2.2e-16
Es gibt einen Haupteffekt der Alkoholgehalt auf die Anzahl der gesungenen Songs (F(2,88.419) = 238.45, p = .000). Das bedeutet, dass Gäste der Karaoke-Bar in Abhängigkeit des Alkoholgehalt unterschiedlich viele Songs singen.
AXBwelch <- oneway.test(Songs~Alkohol*Geschlecht, data = mehranova, var.equal = F)
AXBwelch
One-way analysis of means (not assuming equal variances)
data: Songs and Alkohol * Geschlecht
F = 173.72, num df = 5.000, denom df = 65.716, p-value < 2.2e-16
Der Interaktionsterm von Alkoholgehalt und Geschlecht auf die Anzahl der gesungenen Songs ist signifikant (F(5,65.716) = 173.72, p = .000). Der Effekt von Alkoholgehalt hängt demnach zu einem gewissen Teil vom Geschlecht ab.
#zusammenfassung <- rbind(alkoholwelch,geschlechtwelch,AXBwelch)
Post-Hoc-Test
st ein Haupteffekt oder eine Interaktion signifikant, so ist zwar bestätigt, dass ein Effekt vorliegt, doch ist nach wie vor unklar, welche Faktorstufen sich unterscheiden, sobald ein Faktor mehr als zwei Ausprägungen aufweist. (Bei zwei Ausprägungen unterscheiden sich eben diese zwei Ausprägungen voneinander, sonst wäre der F-Test nicht signifikant.) Im vorliegenden Beispiel liegen ein Effekt der Alkoholgehalt sowie ein Interaktionseffekt vor. Post-hoc-Tests können einfach eingesetzt werden, um zu prüfen, welche Levels der Alkoholgehalt sich unterscheiden. Für die Interaktion ist dies in SPSS nicht implementiert.
Wie bereits erwähnt wurde, beinhaltet der Faktor Alkoholgehalt drei Stufen. Aus dem signifikanten Haupteffekt lässt sich nicht ableiten, welche der Faktorstufen einen signifikant unterschiedlichen Einfluss auf die abhängige Variable haben. Zu diesem Zweck werden Tukey-korrigierte Mehrfachvergleiche berechnet.
Bei der Berechnung von Post-hoc-Tests wird im Prinzip für jede Kombination von zwei Mittelwerten ein t-Test durchgeführt. Im aktuellen Beispiel der Alkoholgehalt mit drei Gruppen, bzw. zwei Gruppen sind dies 15 Tests. Multiple Tests sind jedoch problematisch, da der Alpha-Fehler (die fälschliche Ablehnung der Nullhypothese) mit der Anzahl der Vergleiche steigt. Wird nur ein t-Test mit einem Signifikanzlevel von .05 durchgeführt, so beträgt die Wahrscheinlichkeit des Nicht-Eintreffens des Alpha-Fehlers 95%. Werden jedoch 15 solcher Paarvergleiche vorgenommen, so beträgt die Nicht-Eintreffens-Wahrscheinlichkeit des Alpha-Fehlers (.95)15 = .4632. Um die Wahrscheinlichkeit des Eintreffens des Alpha-Fehlers zu bestimmen, wird 1 -.4632 = .5367 gerechnet. Die Wahrscheinlichkeit des Eintreffens des Alpha-Fehlers liegt somit bei 53.67%. Diese Fehlerwahrscheinlichkeit wird als “Familywise Error Rate” bezeichnet.
Um dieses Problem zu beheben, kann zum Beispiel die Tukey-Korrektur angewendet werden. Hierbei wird α durch die Anzahl der Paarvergleiche dividiert. Im hier aufgeführten Fall ist dies .05/15 = .00333. Bei diesem Kozept handelt es sich um eine allgemeine Information.
Die Tukey berücksichtigt die Korrektur, daher kann weiter gegen 0.05 getestet werden.
PostHoc <- aov(Songs ~ Geschlecht*Alkohol, data=mehranova)
#Alternativ auch der Name des Zwischenspeichers "mehr" - PostHoc <- aov(mehr)
TukeyHSD(PostHoc)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = Songs ~ Geschlecht * Alkohol, data = mehranova)
$Geschlecht
diff lwr upr p adj
w-m 0.1466667 -0.3604403 0.6537736 0.568437
$Alkohol
diff lwr upr p adj
mittel-gering 3.22 2.475868 3.964132 0
hoch-gering 8.34 7.595868 9.084132 0
hoch-mittel 5.12 4.375868 5.864132 0
$`Geschlecht:Alkohol`
diff lwr upr p adj
w:gering-m:gering -1.16 -2.4435564 0.1235564 0.1013365
m:mittel-m:gering 3.56 2.2764436 4.8435564 0.0000000
w:mittel-m:gering 1.72 0.4364436 3.0035564 0.0022313
m:hoch-m:gering 6.04 4.7564436 7.3235564 0.0000000
w:hoch-m:gering 9.48 8.1964436 10.7635564 0.0000000
m:mittel-w:gering 4.72 3.4364436 6.0035564 0.0000000
w:mittel-w:gering 2.88 1.5964436 4.1635564 0.0000000
m:hoch-w:gering 7.20 5.9164436 8.4835564 0.0000000
w:hoch-w:gering 10.64 9.3564436 11.9235564 0.0000000
w:mittel-m:mittel -1.84 -3.1235564 -0.5564436 0.0008204
m:hoch-m:mittel 2.48 1.1964436 3.7635564 0.0000017
w:hoch-m:mittel 5.92 4.6364436 7.2035564 0.0000000
m:hoch-w:mittel 4.32 3.0364436 5.6035564 0.0000000
w:hoch-w:mittel 7.76 6.4764436 9.0435564 0.0000000
w:hoch-m:hoch 3.44 2.1564436 4.7235564 0.0000000
Wie vermutet, zeichnet sich bei Geschlecht keine signifikant ab. Die Alkoholgehaltskombinationen unterscheiden sich signifikant.
Für das vorliegende Beispiel wird ersichtlich, dass sich der Alkoholgehalt und das Geschlecht bezüglich der gesungenen Songs signifikant unterscheiden (p < .05). Jedoch kann kein Unterschied für das Geschlecht mit einer geringem Alkoholgehalt von 0.05 Prozent festgestellt werden (p < .05). Es können 5 Gruppen gebildet werden.
Was ist sig und was nicht? 14 von 15 Vergleichen sind sig. (p < .05). Nicht sig. ist w:gering-m:gering (p = .1013365)
Generalisierbarkeit /Unabhängigkeit - global?
- mittel weiblich
- mittel männlich
- hoch weiblich
- hoch männlich
Vier Gruppen sind unabhängige / generalisierbar.
- Gruppenbildung?
Es können 5 Gruppen gebildet werden.
- Interaktion?
Bei geringerem Alkoholgehalt lag Männer (M = 3.24, SD = 1.164) über jenem der Frauen (M = 2.08, SD = .81), allerdings konnte der Unterschied im Post-Hoc nicht bestätigt werden. Bei mittlerer Alkoholgehalt (Männer: M = 6.8, SD = 1.75; Frauen: M = 4.96, SD = .1.64) konnte der Mittelwertsunterschied bestätigt werden. Bei hohem Alkoholgehalt verhält es sich genau andersrum - Frauen sangen (M = 12.72, SD = 2.03) deutlich mehr Songs als die Männer (M = 12.72, SD = 2.03). Das Ergebnis konnte bestätigt werden.
Alternativ
Bonferroni und Tukey: sehr strenge Kontrolle des Fehlers 1. Art, zu geringe Teststärke, deshalb zu konservativ. Bei wenigen Paarvergleichen hat Bonferroni mehr Teststärke, bei vielen Paarvergleichen hat Tukey mehr Teststärke.
pairwise.t.test(mehranova$Songs, mehranova$Geschlecht, data=mehranova, pool.sd=T,var.equal=FALSE)
Pairwise comparisons using t tests with pooled SD
data: mehranova$Songs and mehranova$Geschlecht
m
w 0.82
P value adjustment method: holm
pairwise.t.test(mehranova$Songs, mehranova$Alkohol, data=mehranova, pool.sd=T,var.equal=F)
Pairwise comparisons using t tests with pooled SD
data: mehranova$Songs and mehranova$Alkohol
gering mittel
mittel 9.2e-14 -
hoch < 2e-16 < 2e-16
P value adjustment method: holm
Bei diesem Testverfahren muss der aplhawert korrigiert werden.
newalpha<- 0.05/15
newalpha
[1] 0.003333333
interaktion=paste(mehranova$Geschlecht, mehranova$Alkohol, sep=".")
pairwise.t.test(mehranova$Songs, interaktion, data=mehranova, var.equal=FALSE)
Pairwise comparisons using t tests with pooled SD
data: mehranova$Songs and interaktion
m.gering m.hoch m.mittel w.gering w.hoch
m.hoch < 2e-16 - - - -
m.mittel 2.5e-12 4.6e-07 - - -
w.gering 0.01000 < 2e-16 < 2e-16 - -
w.hoch < 2e-16 9.5e-12 < 2e-16 < 2e-16 -
w.mittel 0.00033 < 2e-16 0.00018 6.8e-09 < 2e-16
P value adjustment method: holm
Games - Howell
interaktion=paste(mehranova$Geschlecht, mehranova$Alkohol, sep=".")
mehranova["interaktion"] <- interaktion
View(mehranova)
#Faktor A
mehranova$Geschlecht <- as.factor(mehranova$Geschlecht)
ANOVA <- aov(Songs~Geschlecht, mehranova)
erg <- PMCMRplus::gamesHowellTest(ANOVA)
summary (erg)
Pairwise comparisons using Games-Howell test
data: Songs by Geschlecht
alternative hypothesis: two.sided
P value adjustment method: none
H0
---
Signif. codes: 0 㤼㸱***㤼㸲 0.001 㤼㸱**㤼㸲 0.01 㤼㸱*㤼㸲 0.05 㤼㸱.㤼㸲 0.1 㤼㸱 㤼㸲 1
# Faktor B
mehranova$Alkohol <- as.factor(mehranova$Alkohol)
ANOVA <- aov(Songs~Alkohol, mehranova)
erg <- PMCMRplus::gamesHowellTest(ANOVA)
summary (erg)
Pairwise comparisons using Games-Howell test
data: Songs by Alkohol
alternative hypothesis: two.sided
P value adjustment method: none
H0
---
Signif. codes: 0 㤼㸱***㤼㸲 0.001 㤼㸱**㤼㸲 0.01 㤼㸱*㤼㸲 0.05 㤼㸱.㤼㸲 0.1 㤼㸱 㤼㸲 1
#Interaktion
mehranova$interaktion <- as.factor(mehranova$interaktion)
ANOVA <- aov(Songs~interaktion, mehranova)
erg <- PMCMRplus::gamesHowellTest(ANOVA)
summary (erg)
Pairwise comparisons using Games-Howell test
data: Songs by interaktion
alternative hypothesis: two.sided
P value adjustment method: none
H0
---
Signif. codes: 0 㤼㸱***㤼㸲 0.001 㤼㸱**㤼㸲 0.01 㤼㸱*㤼㸲 0.05 㤼㸱.㤼㸲 0.1 㤼㸱 㤼㸲 1
Das par. Eta-Quadrat
Das partielle Eta-Quadrat (partielles η2) ist in Abbildung ausgegeben.
\[\eta^2_{partial A}= \frac {QS_A}{QS_A+QS_{inn}}\]
\[\eta^2_{partial B}= \frac {QS_B}{QS_B+QS_{inn}}\]
\[\eta^2_{partial AxB}= \frac {QS_{AxB}}{QS_{AxB}+QS_{inn}}\]
\[\eta_A= \frac {QS_A}{QS_{total}}\] \[\eta_B= \frac {QS_B}{QS_{total}}\] \[\eta_{AxB}= \frac {QS_{AxB}}{QS_{total}}\]
eta <- effectsize::eta_squared(mehrAnova1, partial = TRUE)
eta
Parameter | Eta2 (partial) | 90% CI
--------------------------------------------------
Geschlecht | 2.26e-03 | [0.00, 0.03]
Alkohol | 0.83 | [0.80, 0.86]
Geschlecht:Alkohol | 0.37 | [0.26, 0.45]
Im vorliegenden Beispiel ist der Effekt des Geschlechts nicht signifikant. Daher wird dessen partielles Eta-Quadrat nicht betrachtet. Für die Alkoholgehalt beträgt das partielle Eta-Quadrat .833. Das heisst, die Alkoholgehalt erklärt 83% derjenigen Fehlervariation, die das Modell hätte, wäre Alkoholgehalt nicht im Modell. Das partielle Eta-Quadrat der Interaktion beträgt .367 und erklärt daher 3% der ohne die Interaktion ungeklärten Variation.
Berechnung der Effektstärke
\[f=\sqrt\frac{\eta^{2}}{1-\eta^{2}}=\sqrt\frac{eta^{2}}{1-eta^{2}}\]
Effektstärke fürs Geschlecht
effgender <- sqrt(eta$Eta2_partial[1]/(1-eta$Eta2_partial[1]))
sprintf("Effektstärke fürs Geschlecht: f= %.3f", effgender)
[1] "Effektstärke fürs Geschlecht: f= 0.048"
Effektstärke fürs Alkoholgehalt
effalk <- sqrt(eta$Eta2_partial[2]/(1-eta$Eta2_partial[2]))
sprintf("Effektstärke fürs Alkoholgehalt: f= %.3f",effalk)
[1] "Effektstärke fürs Alkoholgehalt: f= 2.231"
Effektstärke für die Interaktion
effAxB <- sqrt(eta$Eta2_partial[3]/(1-eta$Eta2_partial[3]))
sprintf("Effektstärke für die Interaktion: f= %.3f",effAxB)
[1] "Effektstärke für die Interaktion: f= 0.762"
Um zu beurteilen, wie gross dieser Effekt ist, kann man sich an der Einteilung von Cohen (1988) orientieren:
\[
\begin{align}
\text{Schwacher Effekt: } 0.10 &< ||f|| < 0.25 \\
\text{Schwacher bis mittlerer Effekt: } 0.25 &= ||f|| \\
\text{Mittlerer Effekt: } 0.25 &< ||f|| < 0.40 \\
\text{Mittlerer bis starker Effekt: }0.40 &= ||f|| \\
\text{Starker Effekt: } 0.40 &< ||f||
\end{align}
\]
Damit entsprechen die Effektstärken von 2.23 und 0.76 einem starken Effekt. Für Geschlecht liegt natürlich kein Effekt vor - es sei nur der Vollständigkeit erwähnt.
Eine Aussage
Hypothesen
Es zeigt sich, dass es keinen Unterschied zwichen dem Geschlecht und der Anzahl an gesungenen Songs allein gibt (F(1,122.72) = .0512, p = .8213). H0 für den Haupteffekt A wird angenommen.
Allerdings je nach Alkoholgehalt des ersten Getränkes gibt es einen Unterschied zwischen den gesungenen Songs (F(2,88.419) = 238.45, p = .000). H0 für den Haupteffekt B wird verworfen.
Der Interaktionsterm von Alkoholgehalt und Geschlecht auf die Anzahl der gesungenen Songs ist signifikant (F(5,65.716) = 173.72, p = .000). Der Effekt von Alkoholgehalt hängt demnach zu einem gewissen Teil vom Geschlecht ab. H0 für den Interaktion AxB wird verworfen.
Post- Hoc - Test
Der PostHoc wurde mit Tukey durchgeführt. Für Geschlecht zeigte sich keine signifikant ab (p = 0.101). Es zeigt, dass sich alle Gruppen für Alkoholgehalt signifikant unterscheiden: Gering (M = 2.66 ,SD = 1.15, N=50), mittlere Alkoholniveau (M = 5.88, SD = 1.92, n=50) und hohe Alkoholniveau (M = 11, SD = 2.54, n=50).
Zudem zeigt sich eine signifikante Interaktion von Geschlecht und Alkoholgehalt auf die Anzahl der gesungenen Songs.Dies weist darauf hin, dass sich Alkoholgehalt je nach Geschlecht unterschiedlich auswirkt.
Bei geringerem Alkoholgehalt lag Männer (M = 3.24, SD = 1.164) über jenem der Frauen (M = 2.08, SD = .81), allerdings konnte der Unterschied im Post-Hoc nicht bestätigt werden. Bei mittlerer Alkoholgehalt (Männer: M = 6.8, SD = 1.75; Frauen: M = 4.96, SD = .1.64) konnte der Mittelwertsunterschied bestätigt werden.
Bei hohem Alkoholgehalt verhält es sich genau andersrum - Frauen sangen (M = 12.72, SD = 2.03) deutlich mehr Songs als die Männer (M = 12.72, SD = 2.03). Das Ergebnis konnte bestätigt werden.
Effektstärke
Die Effektstärken sind sowohl für den Haupteffekt der Alkoholgehalt (f = 2.23) als auch für die Interaktion (f = 0,76) nach Cohen (1988) ein starker Effekt
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoNCg0KYGBge3J9DQptZWhyYW5vdmEkQWxrb2hvbDwtZmFjdG9yKG1laHJhbm92YSRBbGtvaG9sLCBsZXZlbHM9YygiZ2VyaW5nIiwgIm1pdHRlbCIsICJob2NoIikpIA0KYGBgDQoNCg0KIyBIeXBvdGhlc2UgDQoNCkhhdXB0ZWZmZWt0IEE8YnI+DQpIMDpFcyBnaWJ0IGtlaW5lbiBVbnRlcnNjaGllZCB6d2lzY2hlbiBkZW0gR2VzY2hsZWNodCB1bmQgZGVyIGdlc3VuZ2VuZW4gQW56YWhsIGFuIFNvbmdzLjxicj4NCkgxOkVzIGdpYnQgZWluZW4gVW50ZXJzY2hpZWQgendpc2NoZW4gZGVtIEdlc2NobGVjaHQgdW5kIGRlciBnZXN1bmdlbmVuIEFuemFobCBhbiBTb25ncy48YnI+DQoNCg0KSGF1cHRlZmZla3QgQjxicj4NCkgwOkVzIGdpYnQgZWluZW4gVW50ZXJzY2hpZWQgendpc2NoZW4gZGVtIEFsa29ob2xnZWhhbHQgdW5kIGRlciBnZXN1bmdlbmVuIEFuemFobCBhbiBTb25ncy48YnI+DQpIMTpFcyBnaWJ0IGVpbmVuIFVudGVyc2NoaWVkIHp3aXNjaGVuIGRlbSBBbGtvaG9sZ2VoYWx0IHVuZCBkZXIgZ2VzdW5nZW5lbiBBbnphaGwgYW4gU29uZ3MuPGJyPg0KDQpJbnRlcmFrdGlvbiBBeEI8YnI+DQpIMTogRXMgZ2lidCBlaW5lbiBVbnRlcnNjaGllZCB6d2lzY2hlbiBkZW0gR2VzY2hsZWNodCwgYnp3LiAgZGVtIEFsa29ob2xnZWhhbHQgZGVzIGVyc3RlbiBHZXRyw6Rua2VzIHVuZCBkZXIgQW56YWhsIGRlciBnZXN1bmdlbmVuIFNvbmdzLiA8YnI+DQpIMDogRXMgZ2lidCBrZWluZW4gVW50ZXJzY2hpZWQgendpc2NoZW4gZGVtIEdlc2NobGVjaHQsIGJ6dy4gIGRlbSBBbGtvaG9sZ2VoYWx0IGRlcyBlcnN0ZW4gR2V0csOkbmtlcyB1bmQgZGVyIEFuemFobCBkZXIgZ2VzdW5nZW5lbiBTb25ncy4gPGJyPg0KDQoNCg0KIyBWb3JhdXNzZXR6dW5nZW4gZsO8ciBkaWUgbWVocmZha3RvcmllbGxlIFZhcmlhbnphbmFseXNlIChvaG5lIE1lc3N3aWVkZXJob2x1bmcpIA0KDQoNCg0KRGllIGFiaMOkbmdpZ2UgVmFyaWFibGUgaXN0IGludGVydmFsbHNrYWxpZXJ0IC0+IGlzdCBnZWdlYmVuLCBzb2dhciBhYnNvbHV0c2thbGllcnQuIA0KDQpEaWUgdW5hYmjDpG5naWdlbiBWYXJpYWJsZW4gKEdlc2NobGVjaHQgdW5kIEFsa29ob2xnZWhhbHQpIHNpbmQga2F0ZWdvcmlhbCAobm9taW5hbC0gb2RlciBvcmRpbmFsc2thbGllcnQpIC0+IHNpbmQgc2llLg0KRGllIGR1cmNoIGRpZSBGYWt0b3JlbiBnZWJpbGRldGVuIEdydXBwZW4gc2luZCB1bmFiaMOkbmdpZyAtPiBFbnR3ZWRlciBpc3QgZGVyIEdhc3QgYmlvbG9naXNjaCB3ZWlibGljaCAvICBtw6RubmxpY2ggLCBiencuIGRlciBBbGtvaG9sZ2VoYWx0IGRlcyBlcnN0ZW4gR2V0csOkbmtlcyBpc3QgZW50d2VkZXIgMC4wNSB8IDAuMTUgfCAwLjM1Lg0KDQpEaWUgYWJow6RuZ2lnZSBWYXJpYWJsZW4gaXN0IG5vcm1hbHZlcnRlaWx0IGlubmVyaGFsYiBqZWRlciBkZXIgR3J1cHBlbi4gQWIgMjUgUHJvYmFuZGVuIHBybyBHcnVwcGUgc2luZCBWZXJsZXR6dW5nZW4gZGllc2VyIFZvcmF1c3NldHp1bmcgdW5wcm9ibGVtYXRpc2NoLT4gc2llaGUgSGlzdG9ncmFtbSANCg0Kb21vZ2VuaXTDpHQgZGVyIFZhcmlhbnplbjogRGllIEdydXBwZW4gc3RhbW1lbiBhdXMgR3J1bmRnZXNhbXRoZWl0ZW4gbWl0IGFubsOkaGVybmQgaWRlbnRpc2NoZW4gVmFyaWFuemVuIGRlciBhYmjDpG5naWdlbiBWYXJpYWJsZW4gLT4gc2llaGUgTGV2ZW5lLVRlc3QNCg0KDQojCURlc2tyaXB0aXZlIFN0YXRpc3Rpa2VuICsgUHLDvGZ1bmcgZGVyIFZvcmF1c3NldHp1bmcNCg0KDQojIyMgSGlzdG9ncmFtbSB6dXIgUHLDvGZ1bmcgZGVyIE5vcm1hbHZlcnR3ZWlsdW5nDQoNCiMjIyMgQWxrb2hvbA0KDQpgYGB7cn0NCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGdncGxvdDIpDQptZWhyYW5vdmEgJT4lDQogIGdyb3VwX2J5KEFsa29ob2wpICU+JQ0KICBnZ3Bsb3QoYWVzKFNvbmdzLCBjb2xvcj1BbGtvaG9sKSkgKyANCiAgZ2VvbV9oaXN0b2dyYW0oYWVzKGZpbGwgPSBBbGtvaG9sKSwgYmlud2lkdGggPSAxLjUpICsNCiAgZmFjZXRfd3JhcCh+QWxrb2hvbCkgKw0KICB0aGVtZV9ncmV5KCkrDQogIGxhYnMoeD0gIkFuemFobCBkZXIgU29uZ3MiLHkgPSAiQW56YWhsIiApDQpgYGANCg0KRGllIERhdGVuIHNpbmQgbm9ybWFsdmVydGVpbHQgaW5uZXJoYWxiIGRlciBHcnVwcGUgQWxrb2hvbCB1bmQgQW56YWhsIGRlciBnZXN1bmdlbmVuIFNvbmdzLg0KDQoNCg0KYGBge3J9DQoNCm1laHJhbm92YSAlPiUNCiAgZ3JvdXBfYnkoR2VzY2hsZWNodCkgJT4lDQogIGdncGxvdChhZXMoU29uZ3MsIGNvbG9yPUdlc2NobGVjaHQpKSArIA0KICBnZW9tX2hpc3RvZ3JhbShhZXMoZmlsbCA9IEdlc2NobGVjaHQpLCBiaW53aWR0aCA9IDMuMykgKw0KICBmYWNldF93cmFwKH5HZXNjaGxlY2h0KSArDQogIHRoZW1lX2dyZXkoKSsNCiAgbGFicyh4PSAiQW56YWhsIGRlciBTb25ncyIseSA9ICJBbnphaGwiICkNCg0KYGBgDQpEaWUgRGF0ZW4gc2luZCBub3JtYWx2ZXJ0ZWlsdCBpbm5lcmhhbGIgZGVyIEdydXBwZSBHZXNjaGxlY2h0IHVuZCBBbnphaGwgZGVyIGdlc3VuZ2VuZW4gU29uZ3MsIG5pY2h0IHNlaHIgc2Now7ZuLiBBYiAyNSBUZWlsbmVobWVyIHBybyBHcnVwcGUgaXN0IGRhcyBUZXN0dmVyZmFocmVuIHJvYnVzdC4gDQpgYGB7cn0NCmdncGxvdChtZWhyYW5vdmEsIGFlcyh4PVNvbmdzKSkrDQpnZW9tX2hpc3RvZ3JhbSgpKw0KdGhlbWVfZ3JleSgpKw0KZmFjZXRfd3JhcChBbGtvaG9sfkdlc2NobGVjaHQsIG5jb2wgPSAyKQ0KYGBgIA0KQWIgMjUgVGVpbG5laG1lciBwcm8gR3J1cHBlIGlzdCBkYXMgVGVzdHZlcmZhaHJlbiByb2J1c3QuIEplZG9jaCBnaWJ0IGVzIFNjaHdpZXJpZ2tlaXRlbiBiZWkgZGVyIE5vcm1hbHZlcnRlaWx1bmcgYmVpIG1pdHRsZXJlbSBBbGtvaG9sZ2VoYWx0IGJlaSBkZW4gd2VpYmxpY2hlbiBCYXJiZXN1Y2hlcm4uIA0KDQojIyMgQm94cGxvdA0KDQoNCg0KYGBge3J9DQpnZ3Bsb3QobWVocmFub3ZhLCBhZXMoR2VzY2hsZWNodCwgU29uZ3MsIGZpbGw9ZmFjdG9yKEFsa29ob2wpKSkgKw0KZ2VvbV9ib3hwbG90KCkgKw0KdGhlbWVfbWluaW1hbCgpKw0KbGFicyhmaWxsID0gIkFsa29ob2xuaXZlYXUiLCB4PSJHZXNjaGxlY2h0IiwgeT0iQW56YWhsIFNvbmdzIikNCmBgYA0KDQojIERlc2tyaXB0aXZlIFN0YXRpc3Rpa2VuDQoNCg0KYGBge3J9DQptZWhyYW5vdmEgJT4lDQpncm91cF9ieShBbGtvaG9sKSAlPiUNCiAgc3VtbWFyaXplKEFuemFobCA9IG4oKSwgTWl0dGVsd2VydCA9IG1lYW4oU29uZ3MpLCBNZWRpYW4gPSBtZWRpYW4oU29uZ3MpLCBTdGFuZGFyZGFid2VpY2h1bmcgPSBzZChTb25ncykpICU+JQ0KICBtdXRhdGVfaWYoaXMubnVtZXJpYywgcm91bmQsIDIpDQpgYGANCg0KQmVpIGdlcmluZ2VtIEFsa29ob2xnZWhhbHQgd2VyZGVuIDIuNjYgU29uZ3MgaW0gU2Nobml0dCBnZXN1bmdlbiAoU0QgPSAxLjE1LCBuID0gNTApLiBCZWkgbWl0dGxlcmVtIEFsa29ob2xnZWhhbHQgc2luZ2VuIGRpZSBCYXJiZXN1Y2hlciA1Ljg4IFNvbmdzIGltIER1cmNoc2Nobml0dCAoU0QgPSAxLjkyLCBuID0gNTApLiBCZWkgaG9oZXIgQWxrb2hvbGdlaGFsdCBzaW5nZW4gZGllIEJhcmJlc3VjaGVyIGRldXRsaWNoIG1laHIgU29uZ3MgLSBpbSBTY2huaXR0IDExIFNvbmdzIChTRCA9IDIuNTQsIG4gPSA1MCkuDQoNCg0KYGBge3J9DQptZWhyYW5vdmEgJT4lDQpncm91cF9ieShHZXNjaGxlY2h0KSAlPiUNCiAgc3VtbWFyaXplKEFuemFobCA9IG4oKSwgTWl0dGVsd2VydCA9IG1lYW4oU29uZ3MpLCBNZWRpYW4gPSBtZWRpYW4oU29uZ3MpLCBTdGFuZGFyZGFid2VpY2h1bmcgPSBzZChTb25ncykpICU+JQ0KICBtdXRhdGVfaWYoaXMubnVtZXJpYywgcm91bmQsIDIpDQpgYGANCg0KDQoNCkVzIHplaWNobmV0IHNpY2ggZWluIHNjaHdpZXJpZ2VzIEJpbGQuIERlciBHZXNjaGxlY2h0ZXJ1bnRlcnNjaGllZCBpc3QgbnVyIG1pbmltYWwuIEJhcmJlc3VjaGVyIHNpbmdlbiA2LjQ0IFNvbmdzIGltIFNjaG5pdHQsIHdvaGluZ2VnZW4gQmFyYmVzdWNoZXJpbm5lbiA2LjU5IFNvbmdzIHNpbmdlbi4gRGFyw7xiZXIgaGluYXVzIHplaWdlbiBhdWNoIGRpZSBTdGFuZGFyZGFid2VpY2h1bmcgdW5kIGRlciBNaXR0ZWx3ZXJ0LCBkYXNzIHdhaHJzY2hlaW5saWNoIGtlaW5lIFNpZ25pZmlrYW56IHZvcmxpZWd0LiANCg0KDQoNCmBgYHtyfQ0KbWVocmFub3ZhICU+JQ0KZ3JvdXBfYnkoR2VzY2hsZWNodCwgQWxrb2hvbCkgJT4lDQogIHN1bW1hcml6ZShBbnphaGwgPSBuKCksIE1pdHRlbHdlcnQgPSBtZWFuKFNvbmdzKSwgTWVkaWFuID0gbWVkaWFuKFNvbmdzKSwgU3RhbmRhcmRhYndlaWNodW5nID0gc2QoU29uZ3MpKSAlPiUNCiAgbXV0YXRlX2lmKGlzLm51bWVyaWMsIHJvdW5kLCAyKQ0KYGBgDQoNCg0KQmVpIGdlcmluZ2VyIEFsa29ob2xnZWhhbHQgc2luZ2VuIGRpZSBNw6RubmVyIChNID0gMy4yNCwgU0QgPSAxLjE2NCkgbWVociBTb25ncyBhbHMgZGllIEZyYXVlbiAoTSA9IDIuMDgsIFNEID0gLjgxKS4gDQpEaWVzIGlzdCBhdWNoIGJlaSBtaXR0bGVyZXIgQWxrb2hvbGdlaGFsdCBlYmVuZmFsbHMgZGVyIEZhbGwgKE3DpG5uZXI6IE0gPSA2LjgsIFNEID0gMS43NTsgRnJhdWVuOiBNID0gNC45NiwgU0QgPSAuMS42NCkuIA0KQmVpIGhvaGVyIEFsa29ob2xnZWhhbHQgaXN0IGVzIGdlbmF1IHVtZ2VrZWhydDogRGllIEZyYXVlbiAoTSA9IDEyLjcyLCBTRCA9IDIuMDMpIHNpbmdlbiBkZXV0bGljaCBtZWhyIFNvbmdzIGFscyBkaWUgTcOkbm5lcihNID0gOS4yOCwgU0QgPSAxLjY5KS4NCg0KDQojIEFsdGVybmF0aXZlIA0KDQoNCmBgYHtyfQ0KDQptaXR0ZWwgPC10YXBwbHkobWVocmFub3ZhJFNvbmdzLCBsaXN0KG1laHJhbm92YSRBbGtvaG9sLCBtZWhyYW5vdmEkR2VzY2hsZWNodCksIG1lYW4sIG5hLnJtPVRSVUUpDQptaXR0ZWwNCg0KYGBgDQoNCmBgYHtyfQ0KDQpzZCA8LXRhcHBseShtZWhyYW5vdmEkU29uZ3MsIGxpc3QobWVocmFub3ZhJEFsa29ob2wsIG1laHJhbm92YSRHZXNjaGxlY2h0KSwgc2QsIG5hLnJtPVRSVUUpDQpzZA0KDQpgYGANCg0KYGBge3J9DQoNCmFuemFobHByb2dydXBwZSA8LSB0YXBwbHkobWVocmFub3ZhJFNvbmdzLCBsaXN0KG1laHJhbm92YSRBbGtvaG9sLCBtZWhyYW5vdmEkR2VzY2hsZWNodCksIGZ1bmN0aW9uKHgpIHN1bSghaXMubmEoeCkpKQ0KYW56YWhscHJvZ3J1cHBlIA0KYGBgDQoNCg0KDQojIFByb2ZpbGRpYWdyYW1tIA0KDQoNCmBgYHtyfQ0KDQpnZ3Bsb3QobWVocmFub3ZhLCBhZXMoeD1BbGtvaG9sLCB5PVNvbmdzLCBncm91cD1HZXNjaGxlY2h0LCBjb2xvcj0gR2VzY2hsZWNodCkpKw0KICBzdGF0X3N1bW1hcnkoZnVuLnkgPSBtZWFuLCBnZW9tPSJwb2ludCIsIHNpemU9MykrDQogIHN0YXRfc3VtbWFyeShmdW4ueSA9IG1lYW4sIGdlb209ImxpbmUiKSsNCiAgc3RhdF9zdW1tYXJ5KGZ1bi5kYXRhID0gbWVhbl9jbF9ub3JtYWwsIGdlb209ImVycm9yYmFyIix3aWR0aD0uMiwgc2l6ZT0uMjUpKw0KICBsYWJzKHg9IkFsa29ob2wiLCB5PSJBbnphaGwgZGVyIFNvbmdzIikrDQogIHRoZW1lX2NsYXNzaWMoKQ0KDQoNCmBgYA0KDQoNCg0KIyBMZXZlbmUgLVRlc3QgDQoNCkRlciBMZXZlbmUtVGVzdCBwcsO8ZnQgZGllIE51bGxoeXBvdGhlc2UsIGRhc3MgZGllIFZhcmlhbnplbiBkZXIgR3J1cHBlbiBzaWNoIG5pY2h0IHVudGVyc2NoZWlkZW4uIElzdCBkZXIgTGV2ZW5lLVRlc3QgbmljaHQgc2lnbmlmaWthbnQsIHNvIGthbm4gdm9uIGhvbW9nZW5lbiBWYXJpYW56ZW4gYXVzZ2VnYW5nZW4uIFfDpHJlIGRlciBMZXZlbmUtVGVzdCBqZWRvY2ggc2lnbmlmaWthbnQsIHNvIHfDpHJlIGVpbmUgZGVyIEdydW5kdm9yYXVzc2V0enVuZ2VuIGRlciBWYXJpYW56YW5hbHlzZSB2ZXJsZXR6dC4gR2VnZW4gbGVpY2h0ZSBWZXJsZXR6dW5nZW4gZ2lsdCBkaWUgVmFyaWFuemFuYWx5c2UgYWxzIHJvYnVzdDsgdm9yIGFsbGVtIGJlaSBnZW7DvGdlbmQgZ3Jvc3NlbiB1bmQgZXR3YSBnbGVpY2ggZ3Jvc3NlbiBHcnVwcGVuIHNpbmQgVmVybGV0enVuZ2VuIG5pY2h0IHByb2JsZW1hdGlzY2guIEJlaSB1bmdsZWljaCBncm9zc2VuIEdydXBwZW4gZsO8aHJ0IGVpbmUgc3RhcmtlIFZlcmxldHp1bmcgZGVyIFZhcmlhbnpob21vZ2VuaXTDpHQgenUgZWluZXIgVmVyemVycnVuZyBkZXMgRi1UZXN0cy4gQWx0ZXJuYXRpdiBrw7ZubmVuIGRhbm4gYXVmIGRlbiBCcm93bi1Gb3JzeXRoZS1UZXN0IG9kZXIgZGVuIFdlbGNoLVRlc3QgenVyw7xja2dlZ3JpZmZlbiB3ZXJkZW4uIERhYmVpIGhhbmRlbHQgZXMgc2ljaCB1bSBhZGp1c3RpZXJ0ZSBGLVRlc3RzLiANCg0KYGBge3J9DQpsaWJyYXJ5KGNhcikNCmBgYA0KDQpgYGB7cn0NCmxldmVuZVRlc3QoU29uZ3MgfiBBbGtvaG9sKkdlc2NobGVjaHQsIGRhdGEgPSBtZWhyYW5vdmEsIGNlbnRlciA9ICJtZWFuIikNCmBgYA0KDQpJbSB2b3JsaWVnZW5kZW4gQmVpc3BpZWwgaXN0IGRlciBMZXZlbmUtVGVzdCBzaWduaWZpa2FudCAoRig1LDE0NCkgPSA1LjYyNiwgcCA8IC4wMDAgKSwgc28gZGFzcyB2b24gVmFyaWFuemhldGVyb2dlbml0w6R0IGF1c2dlZ2FuZ2VuIHdlcmRlbiBrYW5uLiBEYSBkaWUgVmFyaWFuemVuIGxlaWRlciBuaWNodCBnbGVpY2ggc2luZCwgaXN0IGVzIHp1IGVtcGZlaGxlbiBlaW5lIEtvcnJla3R1ciBtaXRoaWxmZSBkZXMgV2VsY2gtVGVzdHMgZHVyY2h6dWbDvGhyZW4uIA0KDQojIyMgRW50c2NoZWl1bmdzcmVnZWxuDQoNCipNaXQgV2VsY2gtS29ycmVrdHVyKjogcCA8IDAuMDUgPT4gRXJnZWJuaXMgU2lnbmlmaWthbnQgLS0+IFZhcmlhbnplbiBoZXRlcm9nZW4NCg0KKk9obmUgV2VsY2gtS29ycmVrdHVyKjogcCA+IDAuMDUgPT4gRXJnZWJuaXMgbmljaHQgU2lnbmlmaWthbnQgLS0+IFZhcmlhbnplbiBob21vZ2VuIC0tPiBIMCBtaXQgQW5uYWhtZSBWYXIxPVZhcjI9Li4uIC0+IFZhcl9uIHdpcmQgYW5nZW5vbW1lbg0KDQoNCiMJRXJnZWJuaXNzZSBkZXIgbWVocmZha3RvcmllbGxlIFZhcmlhbnphbmFseXNlIChvaG5lIE1lc3N3aWVkZXJob2x1bmcpDQoNCipLZWluZSBXZWxjaC1Lb3JyZWt0dXIgKiAtIGlzdCBkZXIgU3RhbmRhcmQNCmBgYHtyfQ0KDQptZWhyQW5vdmExIDwtIGxtKFNvbmdzIH4gR2VzY2hsZWNodCpBbGtvaG9sLCBkYXRhID0gbWVocmFub3ZhKQ0KbXlBbm92YSA8LSBBbm92YShtZWhyQW5vdmExICwgdHlwZSA9IDMpDQpteUFub3ZhDQpgYGANCg0KKm1pdCBXZWxjaC1Lb3JyZWt0dXIgKiBpc3QgenVyIEtvbnRyb2xsZSBnZWRhY2h0IA0KDQpFcyBsaWVndCBlaW5lIFZlcmxldHp1bmcgZGVyIFZhcmlhbnpob21vZ2VuaXTDpHQgdm9yKHNpZWhlIExldmVuZS1UZXN0KS4gRGFoZXIgc29sbHRlIGVpbiByb2J1c3RlcmVyIFRlc3QgYmVyw7xja3NpY2h0aWd0IHdlcmRlbiAoKiBtaXQgd2VsY2gqICkuICoqQWxsZXJkaW5ncyBiaWV0ZW4gc2ljaCBoaWVyIGtlaW5lIHdlaXRnZWhlbmQgYWt6ZXB0aWVydGVuIFZlcmZhaHJlbiBhbioqLiBEYWhlciB3aXJkIGRlciBTdGFuZGFyZCB3ZWl0ZXJnZWbDvGhydC4gDQoNCg0KYGBge3J9DQoNCmdlc2NobGVjaHR3ZWxjaCA8LSBvbmV3YXkudGVzdChTb25nc35HZXNjaGxlY2h0LCBkYXRhID0gbWVocmFub3ZhLCB2YXIuZXF1YWwgPSBGKQ0KZ2VzY2hsZWNodHdlbGNoDQpgYGANCkbDvHIgZGVuIEZha3RvciBHZXNjaGxlY2h0IHdpcmQga2VpbiBIYXVwdGVmZmVrdCBlcnNpY2h0bGljaC4gRGllIEFuemFobCBkZXIgZ2VzdW5nZW5lbiBTb25ncyBzY2hlaW50IGRlbW5hY2ggdW5hYmjDpG5naWcgdm9tIEdlc2NobGVjaHQgenUgc2VpbiAoRigxLDEyMi43MikgPSAuMDUxMiwgcCA9IC44MjEzKS4NCg0KDQpgYGB7cn0NCg0KYWxrb2hvbHdlbGNoIDwtIG9uZXdheS50ZXN0KFNvbmdzfkFsa29ob2wsIGRhdGEgPSBtZWhyYW5vdmEsIHZhci5lcXVhbCA9IEYpDQphbGtvaG9sd2VsY2gNCmBgYA0KDQpFcyBnaWJ0IGVpbmVuIEhhdXB0ZWZmZWt0IGRlciBBbGtvaG9sZ2VoYWx0IGF1ZiBkaWUgQW56YWhsIGRlciBnZXN1bmdlbmVuIFNvbmdzIChGKDIsODguNDE5KSA9IDIzOC40NSwgcCA9IC4wMDApLg0KRGFzIGJlZGV1dGV0LCBkYXNzIEfDpHN0ZSBkZXIgS2FyYW9rZS1CYXIgaW4gQWJow6RuZ2lna2VpdCBkZXMgQWxrb2hvbGdlaGFsdCB1bnRlcnNjaGllZGxpY2ggdmllbGUgU29uZ3Mgc2luZ2VuLiANCg0KYGBge3J9DQoNCkFYQndlbGNoIDwtIG9uZXdheS50ZXN0KFNvbmdzfkFsa29ob2wqR2VzY2hsZWNodCwgZGF0YSA9IG1laHJhbm92YSwgdmFyLmVxdWFsID0gRikNCkFYQndlbGNoIA0KYGBgDQpEZXIgSW50ZXJha3Rpb25zdGVybSB2b24gQWxrb2hvbGdlaGFsdCB1bmQgR2VzY2hsZWNodCBhdWYgZGllIEFuemFobCBkZXIgZ2VzdW5nZW5lbiBTb25ncyBpc3Qgc2lnbmlmaWthbnQgKEYoNSw2NS43MTYpID0gMTczLjcyLCBwID0gLjAwMCkuIERlciBFZmZla3Qgdm9uIEFsa29ob2xnZWhhbHQgaMOkbmd0IGRlbW5hY2ggenUgZWluZW0gZ2V3aXNzZW4gVGVpbCB2b20gR2VzY2hsZWNodCBhYi4gDQoNCg0KDQpgYGB7cn0NCiN6dXNhbW1lbmZhc3N1bmcgPC0gcmJpbmQoYWxrb2hvbHdlbGNoLGdlc2NobGVjaHR3ZWxjaCxBWEJ3ZWxjaCkNCg0KYGBgDQoNCg0KIwlQb3N0LUhvYy1UZXN0DQoNCnN0IGVpbiBIYXVwdGVmZmVrdCBvZGVyIGVpbmUgSW50ZXJha3Rpb24gc2lnbmlmaWthbnQsIHNvIGlzdCB6d2FyIGJlc3TDpHRpZ3QsIGRhc3MgZWluIEVmZmVrdCB2b3JsaWVndCwgZG9jaCBpc3QgbmFjaCB3aWUgdm9yIHVua2xhciwgd2VsY2hlIEZha3RvcnN0dWZlbiBzaWNoIHVudGVyc2NoZWlkZW4sIHNvYmFsZCBlaW4gRmFrdG9yIG1laHIgYWxzIHp3ZWkgQXVzcHLDpGd1bmdlbiBhdWZ3ZWlzdC4gKEJlaSB6d2VpIEF1c3Byw6RndW5nZW4gdW50ZXJzY2hlaWRlbiBzaWNoIGViZW4gZGllc2UgendlaSBBdXNwcsOkZ3VuZ2VuIHZvbmVpbmFuZGVyLCBzb25zdCB3w6RyZSBkZXIgRi1UZXN0IG5pY2h0IHNpZ25pZmlrYW50LikgSW0gdm9ybGllZ2VuZGVuIEJlaXNwaWVsIGxpZWdlbiBlaW4gRWZmZWt0IGRlciBBbGtvaG9sZ2VoYWx0IHNvd2llIGVpbiBJbnRlcmFrdGlvbnNlZmZla3Qgdm9yLiBQb3N0LWhvYy1UZXN0cyBrw7ZubmVuIGVpbmZhY2ggZWluZ2VzZXR6dCB3ZXJkZW4sIHVtIHp1IHByw7xmZW4sIHdlbGNoZSBMZXZlbHMgZGVyIEFsa29ob2xnZWhhbHQgc2ljaCB1bnRlcnNjaGVpZGVuLiBGw7xyIGRpZSBJbnRlcmFrdGlvbiBpc3QgZGllcyBpbiBTUFNTIG5pY2h0IGltcGxlbWVudGllcnQuDQoNCldpZSBiZXJlaXRzIGVyd8OkaG50IHd1cmRlLCBiZWluaGFsdGV0IGRlciBGYWt0b3IgQWxrb2hvbGdlaGFsdCBkcmVpIFN0dWZlbi4gQXVzIGRlbSBzaWduaWZpa2FudGVuIEhhdXB0ZWZmZWt0IGzDpHNzdCBzaWNoIG5pY2h0IGFibGVpdGVuLCB3ZWxjaGUgZGVyIEZha3RvcnN0dWZlbiBlaW5lbiBzaWduaWZpa2FudCB1bnRlcnNjaGllZGxpY2hlbiBFaW5mbHVzcyBhdWYgZGllIGFiaMOkbmdpZ2UgVmFyaWFibGUgaGFiZW4uIFp1IGRpZXNlbSBad2VjayB3ZXJkZW4gVHVrZXkta29ycmlnaWVydGUgTWVocmZhY2h2ZXJnbGVpY2hlIGJlcmVjaG5ldC4NCg0KQmVpIGRlciBCZXJlY2hudW5nIHZvbiBQb3N0LWhvYy1UZXN0cyB3aXJkIGltIFByaW56aXAgZsO8ciBqZWRlIEtvbWJpbmF0aW9uIHZvbiB6d2VpIE1pdHRlbHdlcnRlbiBlaW4gdC1UZXN0IGR1cmNoZ2Vmw7xocnQuIEltIGFrdHVlbGxlbiBCZWlzcGllbCBkZXIgQWxrb2hvbGdlaGFsdCBtaXQgZHJlaSBHcnVwcGVuLCBiencuIHp3ZWkgR3J1cHBlbiBzaW5kIGRpZXMgMTUgVGVzdHMuIE11bHRpcGxlIFRlc3RzIHNpbmQgamVkb2NoIHByb2JsZW1hdGlzY2gsIGRhIGRlciBBbHBoYS1GZWhsZXIgKGRpZSBmw6Rsc2NobGljaGUgQWJsZWhudW5nIGRlciBOdWxsaHlwb3RoZXNlKSBtaXQgZGVyIEFuemFobCBkZXIgVmVyZ2xlaWNoZSBzdGVpZ3QuIFdpcmQgbnVyIGVpbiB0LVRlc3QgbWl0IGVpbmVtIFNpZ25pZmlrYW56bGV2ZWwgdm9uIC4wNSBkdXJjaGdlZsO8aHJ0LCBzbyBiZXRyw6RndCBkaWUgV2FocnNjaGVpbmxpY2hrZWl0IGRlcyBOaWNodC1FaW50cmVmZmVucyBkZXMgQWxwaGEtRmVobGVycyA5NSUuIFdlcmRlbiBqZWRvY2ggMTUgc29sY2hlciBQYWFydmVyZ2xlaWNoZSB2b3JnZW5vbW1lbiwgc28gYmV0csOkZ3QgZGllIE5pY2h0LUVpbnRyZWZmZW5zLVdhaHJzY2hlaW5saWNoa2VpdCBkZXMgQWxwaGEtRmVobGVycyAoLjk1KTE1ID0gLjQ2MzIuIFVtIGRpZSBXYWhyc2NoZWlubGljaGtlaXQgZGVzIEVpbnRyZWZmZW5zIGRlcyBBbHBoYS1GZWhsZXJzIHp1IGJlc3RpbW1lbiwgd2lyZCAxIC0uNDYzMiA9IC41MzY3IGdlcmVjaG5ldC4gRGllIFdhaHJzY2hlaW5saWNoa2VpdCBkZXMgRWludHJlZmZlbnMgZGVzIEFscGhhLUZlaGxlcnMgbGllZ3Qgc29taXQgYmVpIDUzLjY3JS4gRGllc2UgRmVobGVyd2FocnNjaGVpbmxpY2hrZWl0IHdpcmQgYWxzICJGYW1pbHl3aXNlIEVycm9yIFJhdGUiIGJlemVpY2huZXQuDQoNClVtIGRpZXNlcyBQcm9ibGVtIHp1IGJlaGViZW4sIGthbm4genVtIEJlaXNwaWVsIGRpZSBUdWtleS1Lb3JyZWt0dXIgYW5nZXdlbmRldCB3ZXJkZW4uIEhpZXJiZWkgd2lyZCDOsSBkdXJjaCBkaWUgQW56YWhsIGRlciBQYWFydmVyZ2xlaWNoZSBkaXZpZGllcnQuIEltIGhpZXIgYXVmZ2Vmw7xocnRlbiBGYWxsIGlzdCBkaWVzIC4wNS8xNSA9IC4wMDMzMy4gQmVpIGRpZXNlbSBLb3plcHQgaGFuZGVsdCBlcyBzaWNoIHVtIGVpbmUgYWxsZ2VtZWluZSBJbmZvcm1hdGlvbi4NCg0KDQoqRGllIFR1a2V5IGJlcsO8Y2tzaWNodGlndCBkaWUgS29ycmVrdHVyLCBkYWhlciBrYW5uIHdlaXRlciBnZWdlbiAwLjA1IGdldGVzdGV0IHdlcmRlbi4qDQoNCmBgYHtyfQ0KDQpQb3N0SG9jIDwtIGFvdihTb25ncyB+IEdlc2NobGVjaHQqQWxrb2hvbCwgZGF0YT1tZWhyYW5vdmEpIA0KI0FsdGVybmF0aXYgYXVjaCBkZXIgTmFtZSBkZXMgWndpc2NoZW5zcGVpY2hlcnMgIm1laHIiIC0gUG9zdEhvYyA8LSBhb3YobWVocikgIA0KVHVrZXlIU0QoUG9zdEhvYykNCg0KYGBgDQpXaWUgdmVybXV0ZXQsIHplaWNobmV0IHNpY2ggYmVpIEdlc2NobGVjaHQga2VpbmUgc2lnbmlmaWthbnQgYWIuIERpZSBBbGtvaG9sZ2VoYWx0c2tvbWJpbmF0aW9uZW4gdW50ZXJzY2hlaWRlbiBzaWNoIHNpZ25pZmlrYW50LiANCg0KRsO8ciBkYXMgdm9ybGllZ2VuZGUgQmVpc3BpZWwgd2lyZCBlcnNpY2h0bGljaCwgZGFzcyBzaWNoIGRlciBBbGtvaG9sZ2VoYWx0IHVuZCBkYXMgR2VzY2hsZWNodCBiZXrDvGdsaWNoIGRlciBnZXN1bmdlbmVuIFNvbmdzIHNpZ25pZmlrYW50IHVudGVyc2NoZWlkZW4gKHAgPCAuMDUpLiBKZWRvY2gga2FubiBrZWluIFVudGVyc2NoaWVkIGbDvHIgZGFzIEdlc2NobGVjaHQgbWl0IGVpbmVyIGdlcmluZ2VtIEFsa29ob2xnZWhhbHQgdm9uIDAuMDUgUHJvemVudCBmZXN0Z2VzdGVsbHQgd2VyZGVuIChwIDwgLjA1KS4gRXMga8O2bm5lbiA1IEdydXBwZW4gZ2ViaWxkZXQgd2VyZGVuLiANCg0KDQoNCjEpIFdhcyBpc3Qgc2lnIHVuZCB3YXMgbmljaHQ/DQoxNCB2b24gMTUgVmVyZ2xlaWNoZW4gc2luZCBzaWcuICAocCA8IC4wNSkuDQpOaWNodCBzaWcuIGlzdCB3OmdlcmluZy1tOmdlcmluZyAocCA9IC4xMDEzMzY1KQ0KDQoyKSBHZW5lcmFsaXNpZXJiYXJrZWl0IC9VbmFiaMOkbmdpZ2tlaXQgIC0gZ2xvYmFsPw0KDQorIG1pdHRlbCB3ZWlibGljaA0KKyBtaXR0ZWwgbcOkbm5saWNoDQorIGhvY2ggd2VpYmxpY2gNCisgaG9jaCBtw6RubmxpY2gNCg0KVmllciBHcnVwcGVuIHNpbmQgdW5hYmjDpG5naWdlIC8gZ2VuZXJhbGlzaWVyYmFyLiANCg0KMykgR3J1cHBlbmJpbGR1bmc/DQoNCkVzIGvDtm5uZW4gNSBHcnVwcGVuIGdlYmlsZGV0IHdlcmRlbi4gDQoNCjQpIEludGVyYWt0aW9uPw0KDQpCZWkgZ2VyaW5nZXJlbSBBbGtvaG9sZ2VoYWx0IGxhZyBNw6RubmVyIChNID0gMy4yNCwgU0QgPSAxLjE2NCkgw7xiZXIgamVuZW0gZGVyIEZyYXVlbiAoTSA9IDIuMDgsIFNEID0gLjgxKSwgYWxsZXJkaW5ncyBrb25udGUgZGVyIFVudGVyc2NoaWVkIGltIFBvc3QtSG9jIG5pY2h0IGJlc3TDpHRpZ3Qgd2VyZGVuLiANCkJlaSBtaXR0bGVyZXIgQWxrb2hvbGdlaGFsdCAoTcOkbm5lcjogTSA9IDYuOCwgU0QgPSAxLjc1OyBGcmF1ZW46IE0gPSA0Ljk2LCBTRCA9IC4xLjY0KSBrb25udGUgZGVyIE1pdHRlbHdlcnRzdW50ZXJzY2hpZWQgYmVzdMOkdGlndCB3ZXJkZW4uIA0KQmVpIGhvaGVtIEFsa29ob2xnZWhhbHQgdmVyaMOkbHQgZXMgc2ljaCBnZW5hdSBhbmRlcnNydW0gLSAgRnJhdWVuIHNhbmdlbiAoTSA9IDEyLjcyLCBTRCA9IDIuMDMpIGRldXRsaWNoIG1laHIgU29uZ3MgYWxzIGRpZSBNw6RubmVyIChNID0gMTIuNzIsIFNEID0gMi4wMykuIERhcyBFcmdlYm5pcyBrb25udGUgYmVzdMOkdGlndCB3ZXJkZW4uDQoNCg0KDQoNCiMjIyBBbHRlcm5hdGl2DQoNCkJvbmZlcnJvbmkgdW5kIFR1a2V5OiBzZWhyIHN0cmVuZ2UgS29udHJvbGxlIGRlcyBGZWhsZXJzIDEuIEFydCwgenUgZ2VyaW5nZSBUZXN0c3TDpHJrZSwgZGVzaGFsYiB6dSBrb25zZXJ2YXRpdi4gQmVpIHdlbmlnZW4gUGFhcnZlcmdsZWljaGVuIGhhdCBCb25mZXJyb25pIG1laHIgVGVzdHN0w6Rya2UsIGJlaSB2aWVsZW4gUGFhcnZlcmdsZWljaGVuIGhhdCBUdWtleSBtZWhyIFRlc3RzdMOkcmtlLg0KDQoNCmBgYHtyfQ0KDQoNCnBhaXJ3aXNlLnQudGVzdChtZWhyYW5vdmEkU29uZ3MsIG1laHJhbm92YSRHZXNjaGxlY2h0LCBkYXRhPW1laHJhbm92YSwgcG9vbC5zZD1ULHZhci5lcXVhbD1GQUxTRSkNCg0KDQpgYGANCg0KYGBge3J9DQpwYWlyd2lzZS50LnRlc3QobWVocmFub3ZhJFNvbmdzLCBtZWhyYW5vdmEkQWxrb2hvbCwgZGF0YT1tZWhyYW5vdmEsIHBvb2wuc2Q9VCx2YXIuZXF1YWw9RikNCg0KYGBgDQoNCkJlaSBkaWVzZW0gVGVzdHZlcmZhaHJlbiBtdXNzIGRlciBhcGxoYXdlcnQga29ycmlnaWVydCB3ZXJkZW4uIA0KDQoNCmBgYHtyfQ0KbmV3YWxwaGE8LSAgMC4wNS8xNQ0KbmV3YWxwaGENCmBgYA0KYGBge3J9DQppbnRlcmFrdGlvbj1wYXN0ZShtZWhyYW5vdmEkR2VzY2hsZWNodCwgbWVocmFub3ZhJEFsa29ob2wsIHNlcD0iLiIpIA0KDQpwYWlyd2lzZS50LnRlc3QobWVocmFub3ZhJFNvbmdzLCBpbnRlcmFrdGlvbiwgZGF0YT1tZWhyYW5vdmEsIHZhci5lcXVhbD1GQUxTRSkNCg0KYGBgDQoNCiMjIEdhbWVzIC0gSG93ZWxsDQoNCmBgYHtyfQ0KaW50ZXJha3Rpb249cGFzdGUobWVocmFub3ZhJEdlc2NobGVjaHQsIG1laHJhbm92YSRBbGtvaG9sLCBzZXA9Ii4iKSANCg0KbWVocmFub3ZhWyJpbnRlcmFrdGlvbiJdIDwtIGludGVyYWt0aW9uDQoNClZpZXcobWVocmFub3ZhKQ0KYGBgDQoNCg0KYGBge3J9DQojRmFrdG9yIEENCm1laHJhbm92YSRHZXNjaGxlY2h0IDwtIGFzLmZhY3RvcihtZWhyYW5vdmEkR2VzY2hsZWNodCkNCkFOT1ZBIDwtIGFvdihTb25nc35HZXNjaGxlY2h0LCBtZWhyYW5vdmEpDQplcmcgPC0gUE1DTVJwbHVzOjpnYW1lc0hvd2VsbFRlc3QoQU5PVkEpDQpzdW1tYXJ5IChlcmcpDQoNCiMgRmFrdG9yIEINCm1laHJhbm92YSRBbGtvaG9sIDwtIGFzLmZhY3RvcihtZWhyYW5vdmEkQWxrb2hvbCkNCkFOT1ZBIDwtIGFvdihTb25nc35BbGtvaG9sLCBtZWhyYW5vdmEpDQplcmcgPC0gUE1DTVJwbHVzOjpnYW1lc0hvd2VsbFRlc3QoQU5PVkEpDQpzdW1tYXJ5IChlcmcpDQoNCg0KI0ludGVyYWt0aW9uDQoNCm1laHJhbm92YSRpbnRlcmFrdGlvbiA8LSBhcy5mYWN0b3IobWVocmFub3ZhJGludGVyYWt0aW9uKQ0KQU5PVkEgPC0gYW92KFNvbmdzfmludGVyYWt0aW9uLCBtZWhyYW5vdmEpDQplcmcgPC0gUE1DTVJwbHVzOjpnYW1lc0hvd2VsbFRlc3QoQU5PVkEpDQpzdW1tYXJ5IChlcmcpDQpgYGANCg0KDQoNCg0KDQoNCg0KIyBEYXMgcGFyLiBFdGEtUXVhZHJhdA0KDQoNCkRhcyBwYXJ0aWVsbGUgRXRhLVF1YWRyYXQgKHBhcnRpZWxsZXMgzrcyKSBpc3QgaW4gQWJiaWxkdW5nIGF1c2dlZ2ViZW4uIA0KDQoNCg0KJCRcZXRhXjJfe3BhcnRpYWwgQX09IFxmcmFjIHtRU19BfXtRU19BK1FTX3tpbm59fSQkDQoNCiQkXGV0YV4yX3twYXJ0aWFsIEJ9PSBcZnJhYyB7UVNfQn17UVNfQitRU197aW5ufX0kJA0KDQokJFxldGFeMl97cGFydGlhbCBBeEJ9PSBcZnJhYyB7UVNfe0F4Qn19e1FTX3tBeEJ9K1FTX3tpbm59fSQkDQoNCg0KJCRcZXRhX0E9IFxmcmFjIHtRU19BfXtRU197dG90YWx9fSQkDQokJFxldGFfQj0gXGZyYWMge1FTX0J9e1FTX3t0b3RhbH19JCQNCiQkXGV0YV97QXhCfT0gXGZyYWMge1FTX3tBeEJ9fXtRU197dG90YWx9fSQkDQoNCg0KDQoNCg0KDQpgYGB7cn0NCg0KZXRhIDwtIGVmZmVjdHNpemU6OmV0YV9zcXVhcmVkKG1laHJBbm92YTEsIHBhcnRpYWwgPSBUUlVFKQ0KZXRhDQoNCmBgYA0KDQpJbSB2b3JsaWVnZW5kZW4gQmVpc3BpZWwgaXN0IGRlciBFZmZla3QgZGVzIEdlc2NobGVjaHRzIG5pY2h0IHNpZ25pZmlrYW50LiBEYWhlciB3aXJkIGRlc3NlbiBwYXJ0aWVsbGVzIEV0YS1RdWFkcmF0IG5pY2h0IGJldHJhY2h0ZXQuIEbDvHIgZGllIEFsa29ob2xnZWhhbHQgYmV0csOkZ3QgZGFzIHBhcnRpZWxsZSBFdGEtUXVhZHJhdCAuODMzLiBEYXMgaGVpc3N0LCBkaWUgQWxrb2hvbGdlaGFsdCBlcmtsw6RydCA4MyUgZGVyamVuaWdlbiBGZWhsZXJ2YXJpYXRpb24sIGRpZSBkYXMgTW9kZWxsIGjDpHR0ZSwgd8OkcmUgQWxrb2hvbGdlaGFsdCBuaWNodCBpbSBNb2RlbGwuIERhcyBwYXJ0aWVsbGUgRXRhLVF1YWRyYXQgZGVyIEludGVyYWt0aW9uIGJldHLDpGd0IC4zNjcgdW5kIGVya2zDpHJ0IGRhaGVyIDMlIGRlciBvaG5lIGRpZSBJbnRlcmFrdGlvbiB1bmdla2zDpHJ0ZW4gVmFyaWF0aW9uLg0KDQoNCg0KDQojCUJlcmVjaG51bmcgZGVyIEVmZmVrdHN0w6Rya2UNCg0KJCRmPVxzcXJ0XGZyYWN7XGV0YV57Mn19ezEtXGV0YV57Mn19PVxzcXJ0XGZyYWN7ZXRhXnsyfX17MS1ldGFeezJ9fSQkDQoNCg0KDQojIyMjIEVmZmVrdHN0w6Rya2UgZsO8cnMgR2VzY2hsZWNodCANCmBgYHtyfQ0KDQplZmZnZW5kZXIgPC0gc3FydChldGEkRXRhMl9wYXJ0aWFsWzFdLygxLWV0YSRFdGEyX3BhcnRpYWxbMV0pKQ0KDQpzcHJpbnRmKCJFZmZla3RzdMOkcmtlIGbDvHJzIEdlc2NobGVjaHQ6IGY9ICUuM2YiLCBlZmZnZW5kZXIpDQoNCmBgYA0KIyMjIyBFZmZla3RzdMOkcmtlIGbDvHJzIEFsa29ob2xnZWhhbHQgDQpgYGB7cn0NCg0KZWZmYWxrIDwtIHNxcnQoZXRhJEV0YTJfcGFydGlhbFsyXS8oMS1ldGEkRXRhMl9wYXJ0aWFsWzJdKSkNCg0Kc3ByaW50ZigiRWZmZWt0c3TDpHJrZSBmw7xycyBBbGtvaG9sZ2VoYWx0OiBmPSAlLjNmIixlZmZhbGspDQoNCmBgYA0KIyMjIyBFZmZla3RzdMOkcmtlIGbDvHIgZGllIEludGVyYWt0aW9uDQpgYGB7cn0NCg0KZWZmQXhCIDwtIHNxcnQoZXRhJEV0YTJfcGFydGlhbFszXS8oMS1ldGEkRXRhMl9wYXJ0aWFsWzNdKSkNCg0Kc3ByaW50ZigiRWZmZWt0c3TDpHJrZSBmw7xyIGRpZSBJbnRlcmFrdGlvbjogZj0gJS4zZiIsZWZmQXhCKQ0KDQoNCmBgYA0KDQoNCg0KVW0genUgYmV1cnRlaWxlbiwgd2llIGdyb3NzIGRpZXNlciBFZmZla3QgaXN0LCBrYW5uIG1hbiBzaWNoIGFuIGRlciBFaW50ZWlsdW5nIHZvbiBDb2hlbiAoMTk4OCkgb3JpZW50aWVyZW46DQoNCiQkDQpcYmVnaW57YWxpZ259DQpcdGV4dHtTY2h3YWNoZXIgRWZmZWt0OiB9IDAuMTAgJjwgfHxmfHwgPCAwLjI1ICAgICAgICAgICAgIFxcDQpcdGV4dHtTY2h3YWNoZXIgYmlzIG1pdHRsZXJlciBFZmZla3Q6IH0gMC4yNSAmPSB8fGZ8fCAgICAgIFxcDQpcdGV4dHtNaXR0bGVyZXIgRWZmZWt0OiB9IDAuMjUgJjwgfHxmfHwgPCAwLjQwICAgICAgICAgICAgIFxcDQpcdGV4dHtNaXR0bGVyZXIgYmlzIHN0YXJrZXIgRWZmZWt0OiB9MC40MCAmPSB8fGZ8fCAgICAgICAgIFxcDQpcdGV4dHtTdGFya2VyIEVmZmVrdDogfSAwLjQwICY8IHx8Znx8ICAgICAgICANClxlbmR7YWxpZ259DQokJA0KDQpEYW1pdCBlbnRzcHJlY2hlbiBkaWUgRWZmZWt0c3TDpHJrZW4gdm9uIDIuMjMgdW5kIDAuNzYgZWluZW0gc3RhcmtlbiBFZmZla3QuDQpGw7xyIEdlc2NobGVjaHQgbGllZ3QgbmF0w7xybGljaCBrZWluIEVmZmVrdCB2b3IgLSBlcyBzZWkgbnVyIGRlciBWb2xsc3TDpG5kaWdrZWl0IGVyd8OkaG50Lg0KIA0KIwlFaW5lIEF1c3NhZ2UNCg0KIyMgSHlwb3RoZXNlbg0KDQpFcyB6ZWlndCBzaWNoLCBkYXNzIGVzIGtlaW5lbiBVbnRlcnNjaGllZCB6d2ljaGVuIGRlbSBHZXNjaGxlY2h0ICB1bmQgZGVyIEFuemFobCBhbiBnZXN1bmdlbmVuIFNvbmdzIGFsbGVpbiBnaWJ0IChGKDEsMTIyLjcyKSA9IC4wNTEyLCBwID0gLjgyMTMpLiBIMCBmw7xyIGRlbiBIYXVwdGVmZmVrdCBBIHdpcmQgYW5nZW5vbW1lbi4NCg0KQWxsZXJkaW5ncyBqZSBuYWNoIEFsa29ob2xnZWhhbHQgZGVzIGVyc3RlbiBHZXRyw6Rua2VzIGdpYnQgZXMgZWluZW4gVW50ZXJzY2hpZWQgendpc2NoZW4gZGVuIGdlc3VuZ2VuZW4gU29uZ3MgIChGKDIsODguNDE5KSA9IDIzOC40NSwgcCA9IC4wMDApLiAgSDAgZsO8ciBkZW4gSGF1cHRlZmZla3QgQiB3aXJkIHZlcndvcmZlbi4NCg0KRGVyIEludGVyYWt0aW9uc3Rlcm0gdm9uIEFsa29ob2xnZWhhbHQgdW5kIEdlc2NobGVjaHQgYXVmIGRpZSBBbnphaGwgZGVyIGdlc3VuZ2VuZW4gU29uZ3MgaXN0IHNpZ25pZmlrYW50IChGKDUsNjUuNzE2KSA9IDE3My43MiwgcCA9IC4wMDApLiBEZXIgRWZmZWt0IHZvbiBBbGtvaG9sZ2VoYWx0IGjDpG5ndCBkZW1uYWNoIHp1IGVpbmVtIGdld2lzc2VuIFRlaWwgdm9tIEdlc2NobGVjaHQgYWIuIEgwIGbDvHIgZGVuIEludGVyYWt0aW9uIEF4QiB3aXJkIHZlcndvcmZlbi4NCg0KIyMgUG9zdC0gSG9jIC0gVGVzdCANCkRlciBQb3N0SG9jIHd1cmRlIG1pdCBUdWtleSBkdXJjaGdlZsO8aHJ0LiBGw7xyIEdlc2NobGVjaHQgemVpZ3RlIHNpY2gga2VpbmUgc2lnbmlmaWthbnQgYWIgKHAgPSAwLjEwMSkuIEVzIHplaWd0LCBkYXNzIHNpY2ggYWxsZSBHcnVwcGVuIGbDvHIgQWxrb2hvbGdlaGFsdCBzaWduaWZpa2FudCB1bnRlcnNjaGVpZGVuOiBHZXJpbmcgKE0gPSAyLjY2ICxTRCA9IDEuMTUsIE49NTApLCBtaXR0bGVyZSBBbGtvaG9sbml2ZWF1IChNID0gNS44OCwgU0QgPSAxLjkyLCBuPTUwKSB1bmQgaG9oZSBBbGtvaG9sbml2ZWF1IChNID0gMTEsIFNEID0gMi41NCwgbj01MCkuDQoNCipadWRlbSB6ZWlndCBzaWNoIGVpbmUgc2lnbmlmaWthbnRlIEludGVyYWt0aW9uIHZvbiBHZXNjaGxlY2h0IHVuZCBBbGtvaG9sZ2VoYWx0IGF1ZiBkaWUgQW56YWhsIGRlciBnZXN1bmdlbmVuIFNvbmdzLkRpZXMgd2Vpc3QgZGFyYXVmIGhpbiwgZGFzcyBzaWNoIEFsa29ob2xnZWhhbHQgamUgbmFjaCBHZXNjaGxlY2h0IHVudGVyc2NoaWVkbGljaCBhdXN3aXJrdC4qDQoNCkJlaSBnZXJpbmdlcmVtIEFsa29ob2xnZWhhbHQgbGFnIE3DpG5uZXIgKE0gPSAzLjI0LCBTRCA9IDEuMTY0KSDDvGJlciBqZW5lbSBkZXIgRnJhdWVuIChNID0gMi4wOCwgU0QgPSAuODEpLCBhbGxlcmRpbmdzIGtvbm50ZSBkZXIgVW50ZXJzY2hpZWQgaW0gUG9zdC1Ib2MgbmljaHQgYmVzdMOkdGlndCB3ZXJkZW4uIA0KQmVpIG1pdHRsZXJlciBBbGtvaG9sZ2VoYWx0IChNw6RubmVyOiBNID0gNi44LCBTRCA9IDEuNzU7IEZyYXVlbjogTSA9IDQuOTYsIFNEID0gLjEuNjQpIGtvbm50ZSBkZXIgTWl0dGVsd2VydHN1bnRlcnNjaGllZCBiZXN0w6R0aWd0IHdlcmRlbi4gDQoNCkJlaSBob2hlbSBBbGtvaG9sZ2VoYWx0IHZlcmjDpGx0IGVzIHNpY2ggZ2VuYXUgYW5kZXJzcnVtIC0gIEZyYXVlbiBzYW5nZW4gKE0gPSAxMi43MiwgU0QgPSAyLjAzKSBkZXV0bGljaCBtZWhyIFNvbmdzIGFscyBkaWUgTcOkbm5lciAoTSA9IDEyLjcyLCBTRCA9IDIuMDMpLiBEYXMgRXJnZWJuaXMga29ubnRlIGJlc3TDpHRpZ3Qgd2VyZGVuLg0KDQoNCg0KIyMgRWZmZWt0c3TDpHJrZSANCg0KRGllIEVmZmVrdHN0w6Rya2VuIHNpbmQgc293b2hsIGbDvHIgZGVuIEhhdXB0ZWZmZWt0IGRlciBBbGtvaG9sZ2VoYWx0IChmID0gMi4yMykgYWxzIGF1Y2ggZsO8ciBkaWUgSW50ZXJha3Rpb24gKGYgPSAwLDc2KSBuYWNoIENvaGVuICgxOTg4KSBlaW4gc3RhcmtlciBFZmZla3QNCg0K