1) Statistische Hypothesen austellen

Hypothesen

Allgemeines:
Eine Hypothese ist eine konkrete, praktische Vorhersage/Aussage, die gewöhnlich aus allgemeinen, theoretischen Aussagen abgeleitet wird.

Es wird eine Nullhypothese aufgestellt (H0), dass die Beobachtung durch Zufall entstanden ist.
Die Alternativhypothese (H1), besagt, dass die Beobachtung durch eine bestimmte Ursache entstanden ist.

Richtung:

Eine ungerichtete Hypothese sagt, dass es einen Effekt gibt.
H0: “Mehr Sport zu machen, ändert die körperliche Fitness nicht.”
H1: “Mehr Sport zu machen, ändert die körperliche Fitness.”

Eine gerichtete Hypothese sagt, in welche Richtung dieser Effekt geht.
H0: “Mehr Sport zu machen, führt zu schlechterer oder gleicher körperlicher Fitness.”
H1: “Mehr Sport zu machen, führt zu besserer körperlicher Fitness.”

Quantifizierung:

Die Hypothesen werden mathematisch durch eine Vergleichs-Relation ausgedrückt, welchen Wert eine experimentell ermittelte Prüfgröße annehmen sollte.

H0: “Mehr Sport zu machen, ändert die körperliche Fitness nicht.” \(\rightarrow\) \(r=0\)
H1: “Mehr Sport zu machen, ändert die körperliche Fitness.” \(\rightarrow\) \(r \neq 0\)

H0: “Mehr Sport zu machen, führt zu schlechterer oder gleicher körperlicher Fitness.” \(\rightarrow\) \(r \leq 0\)
H1: “Mehr Sport zu machen, führt zu besserer körperlicher Fitness.” \(\rightarrow\) \(r > 0\)

Unterschiedshypothese:
- Unterscheiden sich die Mittelwerte zweier unabhängiger Stichproben?
z.B t-test für unabhängige Stichproben, ANOVA ohne Messwiederholung, …

Zusammenhangshypothese:
- Gibt es einen Zusammenhang zwischen dem Verhalten zweier Variablen, die von einer gemeinsamen unabhängigen Variablen abhängen?
- z.B. Pearson r, Spearman rho, Regression

Unabhängige Variable(UV) = Treatment, Faktor = Die Variable für die eine ursächliche Wirkung angenommen wird.

Abhängige Variable(AV) = Outcome = Die Variable von deren Ausprägung angenommen wird, dass sie von der UV abhängt. Sie wird gemessen.

Entscheidung und Wirklichkeit



Entscheidungen für den Hypothesentest

Entscheidungsregeln H0 gilt für Grundgesamtheit H1 gilt für Grundgesamtheit
Entscheidung Stichprobe für H0 Richtige Entscheidung Fehler 2. Art
Entscheidung Stichprobe für H1 Fehler 1. Art Richtige Entscheidung


Fehlerwahrscheinlichkeiten im Hypothesentest

Fehlerwahrscheinlichkeiten H0 gilt für Grundgesamtheit H1 gilt für Grundgesamtheit
Ergebnis im Annahmebereich Sicherheitswahrsheinlichkeit(1-α) Fehlerwahrscheinlichkeit 2.Art (β)
Entscheidung Ablehnungsbereich Fehlerwahrscheinlichkeit 1.Art (α) Teststärke oder Power (1-β)

Definition

Sicherheitswahrscheinlichkeit (1-α) (Sicherheit 1.Art):
Wahrscheinlichkeit, die Nullhypothese aufgrund der Stichprobendaten annehmen, wenn die Nullhypothese in der Grundgesamtheit auch gilt.

Fehlerwahrscheinlichkeit 1.Art (α):
Wahrscheinlichkeit, die Nullhypothese aufgrund der Stichprobendaten nicht annehmen,obwohl sie in der Grundgesamtheit gilt.

Teststärke oder Power (1-β) (Sicherheit 2.Art):
Wahrscheinlichkeit, die Alternativehypothese auf grund der Stichprobendaten annehmen ,wenn die Alternativhypothese in der Grundheit auch gilt.

Fehlerwahrscheinlichkeit 2.Art (β):
Wahrscheinlichkeit, die Alternativehypothese aufgrund der Stichprobendaten nicht annehmen,obwohl sie in der Grundgesamtheit gilt.

Hypothesen werden dichotom formuliert!

Beispiel:E-Mail vs Spammail
Im Postfach ist eine Email eingetroffen. Jetzt wird folgende Annahme getroffen.
H0 = Es liegt eine E-Mail (kein Spammail) vor.
H1 = Es liegt Spammail vor.

H0 normale E-mail H1 Spam E-mail
H0 annehmmen Alles Ok (1-α) , wir bekommen das E-mail im Posteingang Wir bekommen eine E-mail ins Posteingang, obwohl es eine Spammail ist. Fehler 2. Art (β-Fehler)
H1 annehmen Eine E-mail ist im Spamfach gelandet, obwohl ein normale E-mail vorliegt. Fehler 1. Art (α-Fehler) Alles Ok (1-β). Spammail ist im Spamfach

2) Entscheidungsregeln festlegen

Die Entscheidungsregel werden nicht willkürlich gewählt, denn sie bestimmt die Aussagekraft eines Tests. Wird der kritische Wert zu niedrig oder zu hoch angesetzt, kann es dazuführen, dass die Hypothese unabhängig von der tatsächlichen Wahrscheinlichkeit angenommen bzw. abgelehnt wird. Daher werden Entscheidungsregeln bestimmt, ab wann man eine Hypothese ablehnt oder nicht.

Abwägung der Fehlerwahrscheinlichkeiten

  • Entscheiden, welche Fehlentscheidung die schwerer wiegenden Konsequenzen hat
    –> Werte für die Wahrscheinlichkeiten Fehler 1. Art und 2. Art vor der Untersuchung festlegen
Fehler 1. Art (\(\alpha\))
  • Wahrscheinlichkeit \(H_0\) abzuwählen, obwol es in der Grundgesammtheit gilt

  • meist auf \(\alpha = 0.05\) festgelegt (nicht für jede Situation angemessen)

    Bsp.: teure Therapie mit vielen Nebenwirkungen (Fehler sollte deutlich kleiner als 5% sein)
    –> Therapie nur anwenden, wenn es wirklich gerechtfertigt/nötig ist

Fehler 2. Art (\(\beta\))
  • Wahrscheinlichkeit \(H_1\) abzuwählen, obwol es in der Grundgesammtheit gilt
  • wird betrachtet wenn die Alternativhypothese ebenfalls Gegenstand des Hypothesentest wird
  • meist auf \(\beta = 0.20\) festgelegt
  • Häufig wird nur der Fehler 1. Art betrachtet

Entscheidungsregeln

Überschreitungswahrscheinlichkeit (p)

  • ist die Wahrscheinlichkeit mit der über \(H_0\) entschieden wird

  • wird mit Hilfe der Stichhprobendaten ermittelt

    • \(H_0\) ablehnen, wenn \(p \leq \alpha\)
    • \(H_0\) annehmen, wenn \(p > \alpha\)
  • je gringer \(p\) ausfällt, desto mehr spricht ein Stichprobenergebnis gegen \(H_0\)

  • \(p\) stellt keine Effektstärke dar

3) Stichprobe ziehen

Zufallsgesteuerte Auswahl

Einfache Zufallsstichprobe

  • Aus der Grundgesamtheit werden Teilmengen ohne Zurücklegen erhoben (Grundgesamtheit muss bekannt sein)

    Bsp.: Die Grundgesamtheit, sind alle Schüler in Deutschland. Die Auswahl: Zufällig werden Schüler gezogen

Geschichtete Stichprobe

  • Grundgesamtheit wird nach relevanten Merkmalen in Teilpopulationen aufgeteilt

  • Aus jeder Schicht wird eine Zufallsstichprobe gezogen und zur einer Stichprobe zusammengeführt.

  • Das geschichtete Merkmal und das untersuchte Merkmal steht in einem engen Zusammenhang.

  • Jede Schicht wird entsprenend Ihrer Größe in der Grundgesammtheit gewichtet.

    Bsp.: Teilpopulationen: Schularten Merkmal: Motivation in Mathematik

Klumpenstichprobe

  • Die Klumpenstichprobe ist eine Teilmenge der Grundgesammtheit

  • Grundgesamtheit liegt vor und ist vollständig erhoben

    Bsp.: Die Grundgesamtheit ist, alle Städe mit Schulen. Die Auswahl erfolgt zufällig auf mehrere Schulen, aus diesen Schulen werden alle Schüler erhoben.

Nicht zufallsgesteuerte Auswahl

Quotenstichprobe

  • Die Stichprobe wird so ausgewählt, dass die prozentualen Anteile relevanter Merkmale den Anteil in der Grundgesamtheit entsprechen.

    Bsp.: relevante Merkmale: Alter, sozialer Status, Bildung

Theoriegeleitete Auswahl

  • wie Quotenstichprobe nur zusätzlich auch nah theoretisch interessierenden Merkmalen

    Bsp.: Wie beeinflussen blutdrucksenkende Medikamente bei Männern zwischen 50 und 65 Jahren die Fahrtauglichkeit

Ad-hoc-Auswahl

  • Es werden die ersten zur Verfügung sthenden Personen/Daten in die Stichprobe aufgenommen

    Bsp.: Erste 50 Studenten befragen die einem begegnen

LINK

weitere Arten von Stichproben

Konfidenzintervall

Definition

Unter dem Konfidenzintervall (abgekürzt KI; veraltet- Vertrauensintervall) ist ein statistisches Intervall zu verstehen, das die Lage eines wahren Parameters einer Grundgesamtheit mit einer gewissen Wahrscheinlichkeit lokalisieren soll.

Beispielaufgabe:

Es würde untersucht, wie hoch die Boni der Verkaufsmitarbeiter sind.

ID Boni
1 1000
2 1500
3 900
4 1200

Berechnung:

1) Wahl des Konfidenzniveaus

1-a 0.85 0.9 0.95 0.975 0.99 0.995
z-Wert 1,036 1,282 1,645 1,960 2,326 2,576

2) Berechnung der Standardweichung und des Mittweltwertes

df <- data.frame( boni = c(1000,1500,900,1200)) # Tabelle anlegen
psych::describe(df)

Der Mittelwert liegt bei 1150€ und die SD bei 264.58€

3) Alle Werte in die Formeln für Unter- und Obergrenze einsetzen

\[ x_u = \overline{x} - z * \frac{s_x}{\sqrt{n}} = 1150 - 1,96 * \frac{264.58}{\sqrt{4}} = 890.71\]

\[ x_o = \overline{x} + z * \frac{s_x}{\sqrt{n}}= 1150 + 1,96 * \frac{264.58}{\sqrt{4}} = 1409.28\]

95 Konfidenzintervall
Der KI liegt zwischen 890.71€ und 1409.28€. In diesem Wertebereich liegt zu 95% der wahre Mittelwert der Grundgesamtheit.

Irrtumswahrscheinlichkeit
In Anlehnung an das 95 Konfidenzintervall lässt sich dann auch ganz einfach die Irrtumswahrscheinlichkeit ermitteln. Diese liegt im Falle eines 95% Konfidenzintervalls bei 5%.

Standardfehler der Mittelwerte(SEM)

Definition:
Der Standardfehler des Mittelwerts ist die Standardabweichung der Schätzung des Mittelwerts der Grundgesamtheit durch den Mittelwert der Stichprobe.

\[\widehat{SE} =\frac{\hat{o}}{\sqrt{n}} = \frac{{264.58}}{\sqrt{4}} \]

sprintf("Standardfehler des Mittelwert ist %2f", (264.58/sqrt(4)))

In der Tabelle “psych::describe(df)” ist der letzte Wert der Standardfehler.

Standardfehler vs Standardabweichung

In wissenschaftlichen Arbeiten werden Daten meist mit dem Mittelwert und der Standardabweichung oder dem Mittelwert und dem Standardfehler zusammengefasst. (In sehr wenigen Fällen findet man auch alle drei Angaben, nämlich Mittelwert, Standardabweichung und Standardfehler.) Dies führt zu Verwirrungen über deren Anwendbarkeit und Austauschbarkeit. Allerdings gehören sowohl Mittelwert als auch Standardabweichung zu den deskriptiven Statistiken, während der Standardfehler des Mittelwerts die Grenzen eines zufälligen Stichprobenverfahrens beschreiben.

Einfacher ausgedrückt: der Standardfehler macht eine Aussage darüber wie weit der Mittelwert der Stichprobe wahrscheinlich von dem Mittelwert der Grundgesamtheit entfernt ist, während uns die Standardabweichung sagt, wie weit sich einzelne Datenpunkte innerhalb einer Stichprobe vom Mittelwert der Stichprobe unterscheiden.

In diesem Kurs verwenden wir zur Beschreibung den Mittelwert und die Standardabweichung.

4) Daten auswerten und 5) Entscheiden

Konstruktion einer Prüfgroße:

Im Mittelpunkt eines statistischen Tests steht die Prüfgröße. Der Wert der Prüfgröße wird für die beobachtete Stichprobe errechnet. Dabei ist es notwendig, dass die Stichprobe zufällig erhoben worden ist. Zur Berechnung der jeweiligen Prüfgröße gibt es unterschiedliche Formeln. Diese sind pro Testart auf der Webseite unter dem jeweiligen Test in der Teststatistik zu finden. Zur Vertiefung wird die Prüfgröße eines t-Testes für unabhängige Stichproben berechnet.


Verteilung empirischer Werte in der Stichprobe, empirische Prüfgröße

\[t_{\mathrm{emp}} = \frac {\bar{x}_1-\bar{x}_2} {\widehat{SE_{\delta}}}\]



Anzahl der Freiheitsgrade (df):
Die Anzahl der Freiheitsgrade fasst (eng. number of degrees of freedom, kurz df) die Anzahl der Werte, die frei variiert können, ohne den interessierenden statistischen Parameter zu ändern, zusammen. Oft werden mithilfe einer Stichprobe die unbekannten Parameter einer Grundgesamtheit geschätzt.

\[df=n_1+n_2-2\]

Kritische Prüfgröße (t-kritisch)
Dieser Wert schneidet eine Fläche unter der Prüfgrößenverteilung (t-Verteilung) ab, zu der die extremsten \(\alpha\)-Prozent (\(\alpha\) entspricht der Fehlerwahrscheinlichkeit 1. Art) der t-Werte gehören.

Vergleich von kritischer und empirischer Prüfgröße

Nach der Ermittlung des empirischen t-Wertes muss dieser mit der kritischen Prüfgröße verglichen werden. Alternativ kann die Überschreitungswahrscheinlichkeit (\(p\)-value) mit dem Fehler 1. Art (\(\alpha{}\)-Fehler) verglichen werden.
Der kritische t-Wert wird aus der t-Wert-Tabelle abgelesen. Hierbei spielen die Freiheitsgrade der Stichprobe (\(df\)) und die Fläche der Verteilung eine wichtige Rolle. Bei der Fläche muss man beachten, ob es sich um eine ungerichtete (1 - \(\frac{\alpha{}}{2}\)) oder gerichtete (1 - \(\alpha{}\)) Hypothese handelt. Bei Freiheitsgraden, die nicht in der Tabelle stehen, kann mittels der vorhandenen Werte ein kritischer t-Wert extrapoliert werden.

Zweiseitiger Ablehnungsbereich:<br

Bei einem zweiseitigen Ablehnungsbereich muss die Fehlerwahrscheinlichkeit 1. Art auf beide Enden der Nullhypothesenverteilung aufgeteilt werden. Daher wird die gewählte Fehlerwahrscheinlichkeit 1. Art von der Größe fünf Prozent auf beide Seiten mit jeweils 2.5 Prozent aufgeteilt.

Einseitiger Ablehnungsbereich:<br

Bei einem einseitigen Ablehnungsbereich reicht es aus, das Fehlerrisiko auf der entsprechenden Seite der Nullhypothesenverteilung zu berücksichtigen, auf welcher ein extremes empirisches Ergebnis erwartet wird.

Zusammenfassung Entscheidungskriterien

Für t-Werte:

\[\ |t_{\textrm{empirisch}}| \geq{} t_{\textrm{kritisch},1 - \frac{\alpha}{2}} bzw. t_{\textrm{kritisch},1 - \alpha{}}\textrm{, dann}\:H_0\:\textrm{verwerfen}\]

\[\ |t_{\textrm{empirisch}}| < t_{\textrm{kritisch},1 - \frac{\alpha}{2}} bzw. t_{\textrm{kritisch},1 - \alpha}\textrm{, dann}\:H_0\: \textrm{beibehalten}\]

Für p-Werte (Übergangswahrscheinlichkeiten):

\[\ p > \alpha{} \textrm{, dann}\:H_0\:\textrm{beibehalten}\]

\[\ p \leq \alpha{} \textrm{, dann}\:H_0\:\textrm{verwerfen}\]

LS0tDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIDEpIFN0YXRpc3Rpc2NoZSBIeXBvdGhlc2VuIGF1c3RlbGxlbiANCg0KDQojIyMgSHlwb3RoZXNlbg0KPHU+QWxsZ2VtZWluZXM6PC91Pjxicj4NCkVpbmUgSHlwb3RoZXNlIGlzdCBlaW5lIGtvbmtyZXRlLCBwcmFrdGlzY2hlIFZvcmhlcnNhZ2UvQXVzc2FnZSwgZGllIGdld8O2aG5saWNoIGF1cyBhbGxnZW1laW5lbiwgdGhlb3JldGlzY2hlbiBBdXNzYWdlbiBhYmdlbGVpdGV0IHdpcmQuDQoNCkVzIHdpcmQgZWluZSBOdWxsaHlwb3RoZXNlIGF1Zmdlc3RlbGx0IChIMCksIGRhc3MgZGllIEJlb2JhY2h0dW5nIGR1cmNoIFp1ZmFsbCBlbnRzdGFuZGVuIGlzdC48YnI+DQpEaWUgQWx0ZXJuYXRpdmh5cG90aGVzZSAoSDEpLCBiZXNhZ3QsIGRhc3MgZGllIEJlb2JhY2h0dW5nIGR1cmNoIGVpbmUgYmVzdGltbXRlIFVyc2FjaGUgZW50c3RhbmRlbiBpc3QuDQoNCjx1PlJpY2h0dW5nOjwvdT48YnI+DQoNCkVpbmUgdW5nZXJpY2h0ZXRlIEh5cG90aGVzZSBzYWd0LCBkYXNzIGVzIGVpbmVuIEVmZmVrdCBnaWJ0LiA8YnI+DQoqSDA6ICJNZWhyIFNwb3J0IHp1IG1hY2hlbiwgw6RuZGVydCBkaWUga8O2cnBlcmxpY2hlIEZpdG5lc3MgbmljaHQuIjxicj4NCkgxOiAiTWVociBTcG9ydCB6dSBtYWNoZW4sIMOkbmRlcnQgZGllIGvDtnJwZXJsaWNoZSBGaXRuZXNzLiIqPGJyPg0KDQpFaW5lIGdlcmljaHRldGUgSHlwb3RoZXNlIHNhZ3QsIGluIHdlbGNoZSBSaWNodHVuZyBkaWVzZXIgRWZmZWt0IGdlaHQuPGJyPg0KKkgwOiAiTWVociBTcG9ydCB6dSBtYWNoZW4sIGbDvGhydCAgenUgc2NobGVjaHRlcmVyIG9kZXIgZ2xlaWNoZXIga8O2cnBlcmxpY2hlciBGaXRuZXNzLiI8YnI+DQpIMTogIk1laHIgU3BvcnQgenUgbWFjaGVuLCBmw7xocnQgenUgYmVzc2VyZXIga8O2cnBlcmxpY2hlciBGaXRuZXNzLiIqPGJyPg0KDQo8dT5RdWFudGlmaXppZXJ1bmc6PC91Pjxicj4NCg0KRGllIEh5cG90aGVzZW4gd2VyZGVuIG1hdGhlbWF0aXNjaCBkdXJjaCBlaW5lIFZlcmdsZWljaHMtUmVsYXRpb24gYXVzZ2VkcsO8Y2t0LCB3ZWxjaGVuIFdlcnQgZWluZSBleHBlcmltZW50ZWxsIGVybWl0dGVsdGUgUHLDvGZncsO2w59lIGFubmVobWVuIHNvbGx0ZS4NCg0KKkgwOiAiTWVociBTcG9ydCB6dSBtYWNoZW4sIMOkbmRlcnQgZGllIGvDtnJwZXJsaWNoZSBGaXRuZXNzIG5pY2h0LiIgJFxyaWdodGFycm93JCAkcj0wJCA8YnI+DQpIMTogIk1laHIgU3BvcnQgenUgbWFjaGVuLCDDpG5kZXJ0IGRpZSBrw7ZycGVybGljaGUgRml0bmVzcy4iICRccmlnaHRhcnJvdyQgJHIgXG5lcSAwJCoNCg0KKkgwOiAiTWVociBTcG9ydCB6dSBtYWNoZW4sIGbDvGhydCBuaWNodCB6dSBiZXNzZXJlciBrw7ZycGVybGljaGVyIEZpdG5lc3MuIiAkXHJpZ2h0YXJyb3ckICRyIFxsZXEgMCQgPGJyPg0KSDE6ICJNZWhyIFNwb3J0IHp1IG1hY2hlbiwgZsO8aHJ0IHp1IGJlc3NlcmVyIGvDtnJwZXJsaWNoZXIgRml0bmVzcy4iICRccmlnaHRhcnJvdyQgJHIgPiAwJCAqDQoNCg0KPHU+VW50ZXJzY2hpZWRzaHlwb3RoZXNlOjwvdT48YnI+DQotIFVudGVyc2NoZWlkZW4gc2ljaCBkaWUgTWl0dGVsd2VydGUgendlaWVyIHVuYWJow6RuZ2lnZXIgU3RpY2hwcm9iZW4/IDxicj4NCnouQiB0LXRlc3QgZsO8ciB1bmFiaMOkbmdpZ2UgU3RpY2hwcm9iZW4sIEFOT1ZBIG9obmUgTWVzc3dpZWRlcmhvbHVuZywgLi4uDQoNCjx1Plp1c2FtbWVuaGFuZ3NoeXBvdGhlc2U6PC91Pjxicj4NCi0gR2lidCBlcyBlaW5lbiBadXNhbW1lbmhhbmcgendpc2NoZW4gZGVtIFZlcmhhbHRlbiB6d2VpZXIgVmFyaWFibGVuLCBkaWUgdm9uIGVpbmVyIGdlbWVpbnNhbWVuIHVuYWJow6RuZ2lnZW4gVmFyaWFibGVuIGFiaMOkbmdlbj88YnI+DQotIHouQi4gUGVhcnNvbiByLCBTcGVhcm1hbiByaG8sIFJlZ3Jlc3Npb24gPGJyPg0KDQoNCioqVW5hYmjDpG5naWdlIFZhcmlhYmxlKFVWKSoqID0gVHJlYXRtZW50LCBGYWt0b3IgPSBEaWUgVmFyaWFibGUgZsO8ciBkaWUgZWluZSB1cnPDpGNobGljaGUgV2lya3VuZyBhbmdlbm9tbWVuIHdpcmQuDQoNCioqQWJow6RuZ2lnZSBWYXJpYWJsZShBVikqKiA9IE91dGNvbWUgPSBEaWUgVmFyaWFibGUgdm9uIGRlcmVuIEF1c3Byw6RndW5nIGFuZ2Vub21tZW4gd2lyZCwgZGFzcyBzaWUgdm9uIGRlciBVViBhYmjDpG5ndC4gU2llIHdpcmQgZ2VtZXNzZW4uDQoNCg0KIyMgRW50c2NoZWlkdW5nIHVuZCBXaXJrbGljaGtlaXQNCjxicj48YnI+DQoNCiMjIyMgRW50c2NoZWlkdW5nZW4gZsO8ciBkZW4gSHlwb3RoZXNlbnRlc3QNCg0KRW50c2NoZWlkdW5nc3JlZ2VsbiAgICAgICAgICAgIHxIMCBnaWx0IGbDvHIgR3J1bmRnZXNhbXRoZWl0IHwgSDEgZ2lsdCBmw7xyIEdydW5kZ2VzYW10aGVpdHwNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfA0KRW50c2NoZWlkdW5nIFN0aWNocHJvYmUgZsO8ciBIMCB8UmljaHRpZ2UgRW50c2NoZWlkdW5nICAgICAgIHwgRmVobGVyIDIuIEFydCAgICAgICAgICAgICAgfA0KRW50c2NoZWlkdW5nIFN0aWNocHJvYmUgZsO8ciBIMSB8RmVobGVyIDEuIEFydCAgICAgICAgICAgICAgIHwgUmljaHRpZ2UgRW50c2NoZWlkdW5nICAgICAgfA0KIDxicj4NCiANCiMjIyMgRmVobGVyd2FocnNjaGVpbmxpY2hrZWl0ZW4gaW0gSHlwb3RoZXNlbnRlc3QNCiANCkZlaGxlcndhaHJzY2hlaW5saWNoa2VpdGVuICAgICB8SDAgZ2lsdCBmw7xyIEdydW5kZ2VzYW10aGVpdCAgICAgICB8IEgxIGdpbHQgZsO8ciBHcnVuZGdlc2FtdGhlaXQgICAgICAgfA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfA0KRXJnZWJuaXMgaW0gQW5uYWhtZWJlcmVpY2ggICAgIHxTaWNoZXJoZWl0c3dhaHJzaGVpbmxpY2hrZWl0KDEtzrEpIHwgRmVobGVyd2FocnNjaGVpbmxpY2hrZWl0IDIuQXJ0ICjOsil8DQpFbnRzY2hlaWR1bmcgQWJsZWhudW5nc2JlcmVpY2ggfEZlaGxlcndhaHJzY2hlaW5saWNoa2VpdCAxLkFydCAozrEpfCBUZXN0c3TDpHJrZSBvZGVyIFBvd2VyICgxLc6yKSAgICAgICB8DQoNCiMjIyBEZWZpbml0aW9uDQo8dT5TaWNoZXJoZWl0c3dhaHJzY2hlaW5saWNoa2VpdCAoMS3OsSkgKFNpY2hlcmhlaXQgMS5BcnQpOjwvdT48YnI+DQpXYWhyc2NoZWlubGljaGtlaXQsIGRpZSBOdWxsaHlwb3RoZXNlIGF1ZmdydW5kIGRlciBTdGljaHByb2JlbmRhdGVuIGFubmVobWVuLCB3ZW5uIGRpZSBOdWxsaHlwb3RoZXNlIGluIGRlciBHcnVuZGdlc2FtdGhlaXQgYXVjaCBnaWx0Lg0KDQo8dT5GZWhsZXJ3YWhyc2NoZWlubGljaGtlaXQgMS5BcnQgKM6xKTo8L3U+PGJyPg0KV2FocnNjaGVpbmxpY2hrZWl0LCBkaWUgTnVsbGh5cG90aGVzZSBhdWZncnVuZCBkZXIgU3RpY2hwcm9iZW5kYXRlbiBuaWNodCBhbm5laG1lbixvYndvaGwgc2llIGluIGRlciBHcnVuZGdlc2FtdGhlaXQgZ2lsdC4NCg0KPHU+VGVzdHN0w6Rya2Ugb2RlciBQb3dlciAoMS3OsikgKFNpY2hlcmhlaXQgMi5BcnQpOjwvdT48YnI+DQpXYWhyc2NoZWlubGljaGtlaXQsIGRpZSBBbHRlcm5hdGl2ZWh5cG90aGVzZSBhdWYgZ3J1bmQgZGVyIFN0aWNocHJvYmVuZGF0ZW4gYW5uZWhtZW4gLHdlbm4gZGllIEFsdGVybmF0aXZoeXBvdGhlc2UgaW4gZGVyIEdydW5kaGVpdCBhdWNoIGdpbHQuDQoNCjx1PkZlaGxlcndhaHJzY2hlaW5saWNoa2VpdCAyLkFydCAozrIpOjwvdT48YnI+DQpXYWhyc2NoZWlubGljaGtlaXQsIGRpZSBBbHRlcm5hdGl2ZWh5cG90aGVzZSBhdWZncnVuZCBkZXIgU3RpY2hwcm9iZW5kYXRlbiBuaWNodCBhbm5laG1lbixvYndvaGwgc2llIGluIGRlciBHcnVuZGdlc2FtdGhlaXQgZ2lsdC48YnI+PGJyPg0KDQoNCioqSHlwb3RoZXNlbiB3ZXJkZW4gZGljaG90b20gZm9ybXVsaWVydCEqKg0KDQo8dT5CZWlzcGllbDpFLU1haWwgdnMgU3BhbW1haWw8L3U+PGJyPg0KSW0gUG9zdGZhY2ggaXN0IGVpbmUgRW1haWwgZWluZ2V0cm9mZmVuLiBKZXR6dCB3aXJkIGZvbGdlbmRlIEFubmFobWUgZ2V0cm9mZmVuLiA8YnI+DQpIMCA9IEVzIGxpZWd0IGVpbmUgRS1NYWlsIChrZWluIFNwYW1tYWlsKSB2b3IuPGJyPg0KSDEgPSBFcyBsaWVndCBTcGFtbWFpbCB2b3IuPGJyPg0KDQoNCnwgfCBIMCBub3JtYWxlIEUtbWFpbCB8SDEgU3BhbSBFLW1haWx8DQp8LTogfDotIHw6LSB8DQp8SDAgYW5uZWhtbWVufEFsbGVzIE9rICgxLc6xKSAsIHdpciBiZWtvbW1lbiBkYXMgRS1tYWlsIGltIFBvc3RlaW5nYW5nfFdpciBiZWtvbW1lbiBlaW5lIEUtbWFpbCBpbnMgUG9zdGVpbmdhbmcsIG9id29obCBlcyBlaW5lIFNwYW1tYWlsIGlzdC4gRmVobGVyIDIuIEFydCAozrItRmVobGVyKXwNCnxIMSBhbm5laG1lbiB8RWluZSBFLW1haWwgaXN0IGltIFNwYW1mYWNoIGdlbGFuZGV0LCBvYndvaGwgZWluIG5vcm1hbGUgRS1tYWlsIHZvcmxpZWd0LiBGZWhsZXIgMS4gQXJ0ICjOsS1GZWhsZXIpfEFsbGVzIE9rICgxLc6yKS4gU3BhbW1haWwgaXN0IGltIFNwYW1mYWNofA0KDQoNCg0KDQojIDIpIEVudHNjaGVpZHVuZ3NyZWdlbG4gZmVzdGxlZ2VuDQoNCkRpZSBFbnRzY2hlaWR1bmdzcmVnZWwgd2VyZGVuIG5pY2h0IHdpbGxrw7xybGljaCBnZXfDpGhsdCwgZGVubiBzaWUgYmVzdGltbXQgZGllIEF1c3NhZ2VrcmFmdCBlaW5lcyBUZXN0cy4gV2lyZCBkZXIga3JpdGlzY2hlIFdlcnQgenUgbmllZHJpZyBvZGVyIHp1IGhvY2ggYW5nZXNldHp0LCBrYW5uIGVzIGRhenVmw7xocmVuLCBkYXNzIGRpZSBIeXBvdGhlc2UgdW5hYmjDpG5naWcgdm9uIGRlciB0YXRzw6RjaGxpY2hlbiBXYWhyc2NoZWlubGljaGtlaXQgYW5nZW5vbW1lbiBiencuIGFiZ2VsZWhudCB3aXJkLiBEYWhlciB3ZXJkZW4gRW50c2NoZWlkdW5nc3JlZ2VsbiBiZXN0aW1tdCwgYWIgd2FubiBtYW4gZWluZSBIeXBvdGhlc2UgYWJsZWhudCBvZGVyIG5pY2h0Lg0KDQoNCiMjIyMgQWJ3w6RndW5nIGRlciBGZWhsZXJ3YWhyc2NoZWlubGljaGtlaXRlbg0KLSBFbnRzY2hlaWRlbiwgd2VsY2hlIEZlaGxlbnRzY2hlaWR1bmcgZGllIHNjaHdlcmVyIHdpZWdlbmRlbiBLb25zZXF1ZW56ZW4gaGF0ICANCi0tPiBXZXJ0ZSBmw7xyIGRpZSBXYWhyc2NoZWlubGljaGtlaXRlbiBGZWhsZXIgMS4gQXJ0IHVuZCAyLiBBcnQgdm9yIGRlciBVbnRlcnN1Y2h1bmcgZmVzdGxlZ2VuDQoNCiMjIyMjIEZlaGxlciAxLiBBcnQgKCRcYWxwaGEkKQ0KLSBXYWhyc2NoZWlubGljaGtlaXQgJEhfMCQgYWJ6dXfDpGhsZW4sIG9id29sIGVzIGluIGRlciBHcnVuZGdlc2FtbXRoZWl0IGdpbHQNCi0gbWVpc3QgYXVmICRcYWxwaGEgPSAwLjA1JCBmZXN0Z2VsZWd0IChuaWNodCBmw7xyIGplZGUgU2l0dWF0aW9uIGFuZ2VtZXNzZW4pICANCg0KICAqKkJzcC46KiogKnRldXJlIFRoZXJhcGllIG1pdCB2aWVsZW4gTmViZW53aXJrdW5nZW4gKEZlaGxlciBzb2xsdGUgZGV1dGxpY2gga2xlaW5lciBhbHMgNSUgc2VpbikqICANCiAgICAgICAgICAgICotLT4gVGhlcmFwaWUgbnVyIGFud2VuZGVuLCB3ZW5uIGVzIHdpcmtsaWNoIGdlcmVjaHRmZXJ0aWd0L27DtnRpZyBpc3QqDQoNCiMjIyMjIEZlaGxlciAyLiBBcnQgKCRcYmV0YSQpDQotIFdhaHJzY2hlaW5saWNoa2VpdCAkSF8xJCBhYnp1d8OkaGxlbiwgb2J3b2wgZXMgaW4gZGVyIEdydW5kZ2VzYW1tdGhlaXQgZ2lsdA0KLSB3aXJkIGJldHJhY2h0ZXQgd2VubiBkaWUgQWx0ZXJuYXRpdmh5cG90aGVzZSBlYmVuZmFsbHMgR2VnZW5zdGFuZCBkZXMgSHlwb3RoZXNlbnRlc3Qgd2lyZA0KLSBtZWlzdCBhdWYgJFxiZXRhID0gMC4yMCQgZmVzdGdlbGVndA0KLSBIw6R1ZmlnIHdpcmQgbnVyIGRlciBGZWhsZXIgMS4gQXJ0IGJldHJhY2h0ZXQNCg0KDQojIyBFbnRzY2hlaWR1bmdzcmVnZWxuDQoNCg0KIyMjIyDDnGJlcnNjaHJlaXR1bmdzd2FocnNjaGVpbmxpY2hrZWl0IChwKQ0KLSBpc3QgZGllIFdhaHJzY2hlaW5saWNoa2VpdCBtaXQgZGVyIMO8YmVyICRIXzAkIGVudHNjaGllZGVuIHdpcmQNCi0gd2lyZCBtaXQgSGlsZmUgZGVyIFN0aWNoaHByb2JlbmRhdGVuIGVybWl0dGVsdCAgDQoNCiAgKyAgJEhfMCQgYWJsZWhuZW4sIHdlbm4gJHAgXGxlcSBcYWxwaGEkDQogICsgICRIXzAkIGFubmVobWVuLCB3ZW5uICRwID4gXGFscGhhJCAgDQogIA0KLSBqZSBncmluZ2VyICRwJCBhdXNmw6RsbHQsIGRlc3RvIG1laHIgc3ByaWNodCBlaW4gU3RpY2hwcm9iZW5lcmdlYm5pcyBnZWdlbiAkSF8wJCAgDQotICRwJCBzdGVsbHQgX19rZWluZV9fIEVmZmVrdHN0w6Rya2UgZGFyDQoNCg0KDQoNCiMgMykgU3RpY2hwcm9iZSB6aWVoZW4NCg0KDQoNCiMjIyBadWZhbGxzZ2VzdGV1ZXJ0ZSBBdXN3YWhsIA0KDQojIyMjIEVpbmZhY2hlIFp1ZmFsbHNzdGljaHByb2JlDQotIEF1cyBkZXIgR3J1bmRnZXNhbXRoZWl0IHdlcmRlbiBUZWlsbWVuZ2VuIG9obmUgWnVyw7xja2xlZ2VuIGVyaG9iZW4gKEdydW5kZ2VzYW10aGVpdCBtdXNzIGJla2FubnQgc2VpbikgIA0KDQogICoqQnNwLjoqKiAqRGllIEdydW5kZ2VzYW10aGVpdCwgc2luZCBhbGxlIFNjaMO8bGVyIGluIERldXRzY2hsYW5kLiBEaWUgQXVzd2FobDogWnVmw6RsbGlnIHdlcmRlbiBTY2jDvGxlciBnZXpvZ2VuKg0KDQoNCiMjIyMgR2VzY2hpY2h0ZXRlIFN0aWNocHJvYmUgDQotIEdydW5kZ2VzYW10aGVpdCB3aXJkIG5hY2ggcmVsZXZhbnRlbiBNZXJrbWFsZW4gaW4gVGVpbHBvcHVsYXRpb25lbiBhdWZnZXRlaWx0DQotIEF1cyBqZWRlciBTY2hpY2h0IHdpcmQgZWluZSBadWZhbGxzc3RpY2hwcm9iZSBnZXpvZ2VuIHVuZCB6dXIgZWluZXIgU3RpY2hwcm9iZSB6dXNhbW1lbmdlZsO8aHJ0LiANCi0gRGFzIGdlc2NoaWNodGV0ZSBNZXJrbWFsIHVuZCBkYXMgdW50ZXJzdWNodGUgTWVya21hbCBzdGVodCBpbiBlaW5lbSBlbmdlbiBadXNhbW1lbmhhbmcuDQotIEplZGUgU2NoaWNodCB3aXJkIGVudHNwcmVuZW5kIElocmVyIEdyw7bDn2UgaW4gZGVyIEdydW5kZ2VzYW1tdGhlaXQgZ2V3aWNodGV0LiAgDQoNCiAgKipCc3AuOioqICpUZWlscG9wdWxhdGlvbmVuOiBTY2h1bGFydGVuICAgTWVya21hbDogTW90aXZhdGlvbiBpbiBNYXRoZW1hdGlrKg0KDQoNCiMjIyMgS2x1bXBlbnN0aWNocHJvYmUgDQoNCi0gRGllIEtsdW1wZW5zdGljaHByb2JlIGlzdCBlaW5lIFRlaWxtZW5nZSBkZXIgR3J1bmRnZXNhbW10aGVpdCAgDQotIEdydW5kZ2VzYW10aGVpdCBsaWVndCB2b3IgdW5kIGlzdCB2b2xsc3TDpG5kaWcgZXJob2JlbiAgDQoNCiAgKipCc3AuOioqICpEaWUgR3J1bmRnZXNhbXRoZWl0IGlzdCwgYWxsZSBTdMOkZGUgbWl0IFNjaHVsZW4uIERpZSBBdXN3YWhsIGVyZm9sZ3QgenVmw6RsbGlnIGF1ZiBtZWhyZXJlIFNjaHVsZW4sIGF1cyBkaWVzZW4gU2NodWxlbiB3ZXJkZW4gX2FsbGVfIFNjaMO8bGVyIGVyaG9iZW4uKg0KDQojIyBOaWNodCB6dWZhbGxzZ2VzdGV1ZXJ0ZSBBdXN3YWhsDQoNCiMjIyMgUXVvdGVuc3RpY2hwcm9iZQ0KLSBEaWUgU3RpY2hwcm9iZSB3aXJkIHNvIGF1c2dld8OkaGx0LCBkYXNzIGRpZSBwcm96ZW50dWFsZW4gQW50ZWlsZSByZWxldmFudGVyIE1lcmttYWxlIGRlbiBBbnRlaWwgaW4gZGVyIEdydW5kZ2VzYW10aGVpdCBlbnRzcHJlY2hlbi4NCg0KICAgKipCc3AuOioqICpyZWxldmFudGUgTWVya21hbGU6IEFsdGVyLCBzb3ppYWxlciBTdGF0dXMsIEJpbGR1bmcqDQogICANCiMjIyMgVGhlb3JpZWdlbGVpdGV0ZSBBdXN3YWhsDQotIHdpZSBRdW90ZW5zdGljaHByb2JlIG51ciB6dXPDpHR6bGljaCBhdWNoIG5haCB0aGVvcmV0aXNjaCBpbnRlcmVzc2llcmVuZGVuIE1lcmttYWxlbg0KDQogICoqQnNwLjoqKiAqV2llIGJlZWluZmx1c3NlbiBibHV0ZHJ1Y2tzZW5rZW5kZSBNZWRpa2FtZW50ZSBiZWkgTcOkbm5lcm4gendpc2NoZW4gNTAgdW5kIDY1IEphaHJlbiBkaWUgRmFocnRhdWdsaWNoa2VpdCoNCg0KIyMjIyBBZC1ob2MtQXVzd2FobA0KLSBFcyB3ZXJkZW4gZGllIGVyc3RlbiB6dXIgVmVyZsO8Z3VuZyBzdGhlbmRlbiBQZXJzb25lbi9EYXRlbiBpbiBkaWUgU3RpY2hwcm9iZSBhdWZnZW5vbW1lbg0KDQogICAgKipCc3AuOioqICpFcnN0ZSA1MCBTdHVkZW50ZW4gYmVmcmFnZW4gZGllIGVpbmVtIGJlZ2VnbmVuKg0KICAgIA0KKipMSU5LKioNCg0KW3dlaXRlcmUgQXJ0ZW4gdm9uIFN0aWNocHJvYmVuXShodHRwOi8vaHR0cDovL3N0YXRpc3Rpay1taXQtanVsZS5kZS9SU3R1ZGlvL3N0aWNocHJvYmVuYXJ0ZW4uaHRtbCkNCg0KDQoNCiMjIyBLb25maWRlbnRpbnRlcnRlcnZhbGwNCg0KIyMjIyBEZWZpbml0aW9uDQpVbnRlciBkZW0gS29uZmlkZW56aW50ZXJ2YWxsIChhYmdla8O8cnp0ICBLSTsgdmVyYWx0ZXQtIFZlcnRyYXVlbnNpbnRlcnZhbGwpIGlzdCBlaW4gc3RhdGlzdGlzY2hlcyBJbnRlcnZhbGwgenUgdmVyc3RlaGVuLCBkYXMgZGllIExhZ2UgZWluZXMgd2FocmVuIFBhcmFtZXRlcnMgZWluZXIgR3J1bmRnZXNhbXRoZWl0IG1pdCBlaW5lciBnZXdpc3NlbiBXYWhyc2NoZWlubGljaGtlaXQgbG9rYWxpc2llcmVuIHNvbGwuDQoNCg0KPHU+QmVpc3BpZWxhdWZnYWJlOjwvdT48YnI+DQoNCkVzIHfDvHJkZSB1bnRlcnN1Y2h0LCB3aWUgaG9jaCBkaWUgQm9uaSBkZXIgVmVya2F1ZnNtaXRhcmJlaXRlciBzaW5kLg0KDQpJRCB8IEJvbmkgfCANCi0tLXwtLS0tLS18DQoxICB8MTAwMCAgfA0KMiAgfDE1MDAgIHwNCjMgIHw5MDAgICB8DQo0ICB8MTIwMCAgfA0KDQoNCjx1PkJlcmVjaG51bmc6PC91Pjxicj4NCg0KKioxKSBXYWhsIGRlcyBLb25maWRlbnpuaXZlYXVzICAqKiANCg0KIDEtYSAgfDAuODUgIHwgMC45ICB8IDAuOTUgfCAwLjk3NXwgMC45OSB8IDAuOTk1fCANCi0tLS0tLXwtLS0tLS18LS0tLS0tfC0tLS0tLXwtLS0tLS18LS0tLS0tfC0tLS0tLXwNCnotV2VydHwxLDAzNiB8MSwyODIgfAkxLDY0NXwxLDk2MCB8MiwzMjYgfCAyLDU3NnwNCg0KDQoqKjIpIEJlcmVjaG51bmcgZGVyIFN0YW5kYXJkd2VpY2h1bmcgdW5kIGRlcyBNaXR0d2VsdHdlcnRlcyoqDQoNCmBgYHtyfQ0KZGYgPC0gZGF0YS5mcmFtZSggYm9uaSA9IGMoMTAwMCwxNTAwLDkwMCwxMjAwKSkgIyBUYWJlbGxlIGFubGVnZW4NCnBzeWNoOjpkZXNjcmliZShkZikNCmBgYA0KDQpEZXIgTWl0dGVsd2VydCBsaWVndCBiZWkgMTE1MOKCrCB1bmQgZGllIFNEIGJlaSAyNjQuNTjigqwNCg0KDQoqKjMpIEFsbGUgV2VydGUgaW4gZGllIEZvcm1lbG4gZsO8ciBVbnRlci0gdW5kIE9iZXJncmVuemUgZWluc2V0emVuKioNCg0KDQokJCB4X3UgPSBcb3ZlcmxpbmV7eH0gLSB6ICogXGZyYWN7c194fXtcc3FydHtufX0gPSAxMTUwIC0gMSw5NiAqIFxmcmFjezI2NC41OH17XHNxcnR7NH19ID0gODkwLjcxJCQNCg0KJCQgeF91ID0gXG92ZXJsaW5le3h9ICsgeiAqIFxmcmFje3NfeH17XHNxcnR7bn19PSAgMTE1MCArIDEsOTYgKiBcZnJhY3syNjQuNTh9e1xzcXJ0ezR9fSA9IDE0MDkuMjgkJA0KDQo8dT45NSBLb25maWRlbnppbnRlcnZhbGw8L3U+PGJyPg0KRGVyIEtJIGxpZWd0IHp3aXNjaGVuIDg5MC43MeKCrCB1bmQgMTQwOS4yOOKCrC4gSW4gZGllc2VtIFdlcnRlYmVyZWljaCBsaWVndCB6dSA5NSUgZGVyIHdhaHJlIE1pdHRlbHdlcnQgZGVyIEdydW5kZ2VzYW10aGVpdC4NCg0KPHU+SXJydHVtc3dhaHJzY2hlaW5saWNoa2VpdDwvdT48YnI+DQpJbiBBbmxlaG51bmcgYW4gZGFzIDk1IEtvbmZpZGVuemludGVydmFsbCBsw6Rzc3Qgc2ljaCBkYW5uIGF1Y2ggZ2FueiBlaW5mYWNoIGRpZSBJcnJ0dW1zd2FocnNjaGVpbmxpY2hrZWl0IGVybWl0dGVsbi4gRGllc2UgbGllZ3QgaW0gRmFsbGUgZWluZXMgOTUlIEtvbmZpZGVuemludGVydmFsbHMgYmVpIDUlLiANCg0KIyMjIFN0YW5kYXJkZmVobGVyIGRlciBNaXR0ZWx3ZXJ0ZShTRU0pDQoNCjx1PkRlZmluaXRpb246PC91Pjxicj4NCkRlciBTdGFuZGFyZGZlaGxlciBkZXMgTWl0dGVsd2VydHMgaXN0IGRpZSBTdGFuZGFyZGFid2VpY2h1bmcgZGVyIFNjaMOkdHp1bmcgZGVzIE1pdHRlbHdlcnRzIGRlciBHcnVuZGdlc2FtdGhlaXQgZHVyY2ggZGVuIE1pdHRlbHdlcnQgZGVyIFN0aWNocHJvYmUuDQoNCg0KJCRcd2lkZWhhdHtTRX0gPVxmcmFje1xoYXR7b319e1xzcXJ0e259fSA9ICBcZnJhY3t7MjY0LjU4fX17XHNxcnR7NH19ICQkDQpgYGB7cn0NCnNwcmludGYoIlN0YW5kYXJkZmVobGVyIGRlcyBNaXR0ZWx3ZXJ0IGlzdCAlMmYiLCAoMjY0LjU4L3NxcnQoNCkpKQ0KYGBgDQpJbiBkZXIgVGFiZWxsZSAicHN5Y2g6OmRlc2NyaWJlKGRmKSIgaXN0IGRlciBsZXR6dGUgV2VydCBkZXIgU3RhbmRhcmRmZWhsZXIuIA0KDQoNCiMjIyBTdGFuZGFyZGZlaGxlciB2cyBTdGFuZGFyZGFid2VpY2h1bmcNCg0KSW4gd2lzc2Vuc2NoYWZ0bGljaGVuIEFyYmVpdGVuIHdlcmRlbiBEYXRlbiBtZWlzdCBtaXQgZGVtIE1pdHRlbHdlcnQgdW5kIGRlciBTdGFuZGFyZGFid2VpY2h1bmcgb2RlciBkZW0gTWl0dGVsd2VydCB1bmQgZGVtIFN0YW5kYXJkZmVobGVyIHp1c2FtbWVuZ2VmYXNzdC4gKEluIHNlaHIgd2VuaWdlbiBGw6RsbGVuIGZpbmRldCBtYW4gYXVjaCBhbGxlIGRyZWkgQW5nYWJlbiwgbsOkbWxpY2ggTWl0dGVsd2VydCwgU3RhbmRhcmRhYndlaWNodW5nIHVuZCBTdGFuZGFyZGZlaGxlci4pIERpZXMgZsO8aHJ0IHp1IFZlcndpcnJ1bmdlbiDDvGJlciBkZXJlbiBBbndlbmRiYXJrZWl0IHVuZCBBdXN0YXVzY2hiYXJrZWl0LiBBbGxlcmRpbmdzIGdlaMO2cmVuIHNvd29obCBNaXR0ZWx3ZXJ0IGFscyBhdWNoIFN0YW5kYXJkYWJ3ZWljaHVuZyB6dSBkZW4gZGVza3JpcHRpdmVuIFN0YXRpc3Rpa2VuLCB3w6RocmVuZCBkZXIgU3RhbmRhcmRmZWhsZXIgZGVzIE1pdHRlbHdlcnRzIGRpZSBHcmVuemVuIGVpbmVzIHp1ZsOkbGxpZ2VuIFN0aWNocHJvYmVudmVyZmFocmVucyBiZXNjaHJlaWJlbi4gDQoNCkVpbmZhY2hlciBhdXNnZWRyw7xja3Q6IGRlciBTdGFuZGFyZGZlaGxlciBtYWNodCBlaW5lIEF1c3NhZ2UgZGFyw7xiZXIgd2llIHdlaXQgZGVyIE1pdHRlbHdlcnQgZGVyIFN0aWNocHJvYmUgd2FocnNjaGVpbmxpY2ggdm9uIGRlbSBNaXR0ZWx3ZXJ0IGRlciBHcnVuZGdlc2FtdGhlaXQgZW50ZmVybnQgaXN0LCB3w6RocmVuZCB1bnMgZGllIFN0YW5kYXJkYWJ3ZWljaHVuZyBzYWd0LCB3aWUgd2VpdCBzaWNoIGVpbnplbG5lIERhdGVucHVua3RlIGlubmVyaGFsYiBlaW5lciBTdGljaHByb2JlIHZvbSBNaXR0ZWx3ZXJ0IGRlciBTdGljaHByb2JlIHVudGVyc2NoZWlkZW4uDQoNCioqSW4gZGllc2VtIEt1cnMgdmVyd2VuZGVuIHdpciB6dXIgQmVzY2hyZWlidW5nIGRlbiBNaXR0ZWx3ZXJ0IHVuZCBkaWUgU3RhbmRhcmRhYndlaWNodW5nLioqDQoNCg0KIyA0KSBEYXRlbiBhdXN3ZXJ0ZW4gdW5kICA1KSBFbnRzY2hlaWRlbiANCg0KDQo8dT5Lb25zdHJ1a3Rpb24gZWluZXIgUHLDvGZncm/Dn2U6PC91Pjxicj4NCg0KSW0gTWl0dGVscHVua3QgZWluZXMgc3RhdGlzdGlzY2hlbiBUZXN0cyBzdGVodCBkaWUgUHLDvGZncsO2w59lLiBEZXIgV2VydCBkZXIgUHLDvGZncsO2w59lIHdpcmQgZsO8ciBkaWUgYmVvYmFjaHRldGUgU3RpY2hwcm9iZSBlcnJlY2huZXQuIERhYmVpIGlzdCBlcyBub3R3ZW5kaWcsIGRhc3MgZGllIFN0aWNocHJvYmUgenVmw6RsbGlnIGVyaG9iZW4gd29yZGVuIGlzdC4gWnVyIEJlcmVjaG51bmcgZGVyIGpld2VpbGlnZW4gUHLDvGZncsO2w59lIGdpYnQgZXMgdW50ZXJzY2hpZWRsaWNoZSBGb3JtZWxuLiBEaWVzZSBzaW5kIHBybyBUZXN0YXJ0IGF1ZiBkZXIgV2Vic2VpdGUgdW50ZXIgZGVtIGpld2VpbGlnZW4gVGVzdCBpbiBkZXIgVGVzdHN0YXRpc3RpayB6dSBmaW5kZW4uICAqKlp1ciBWZXJ0aWVmdW5nIHdpcmQgZGllIFByw7xmZ3LDtsOfZSBlaW5lcyB0LVRlc3RlcyBmw7xyIHVuYWJow6RuZ2lnZSBTdGljaHByb2JlbiBiZXJlY2huZXQuICoqIA0KDQo8YnI+DQoNCjx1PlZlcnRlaWx1bmcgZW1waXJpc2NoZXIgV2VydGUgaW4gZGVyIFN0aWNocHJvYmUsIGVtcGlyaXNjaGUgUHLDvGZncsO2w59lPC91Pjxicj4NCg0KDQokJHRfe1xtYXRocm17ZW1wfX0gPSBcZnJhYyB7XGJhcnt4fV8xLVxiYXJ7eH1fMn0ge1x3aWRlaGF0e1NFX3tcZGVsdGF9fX0kJA0KDQo8YnI+DQoNCi0gSW0gWsOkaGxlciB3aXJkIGRlciBNaXR0ZWxzd2VydHVudGVyc2NoaWVkICRcYmFye3h9XzEtXGJhcnt4fV8yJCBkYXJnZXN0ZWxsdC4gSW0gQnVjaCB3aXJkIGRpZXNlciBtaXQgJFxoYXR7XG11fV8xLVxoYXR7XG11fV8yJCBiZXplaWNobmV0Lg0KLSBIw6R1ZmlnIHdpcmQgaW4gZGVyIE51bGxoeXBvdGhlc2UgYW5nZW5vbW1lbiwgZGFzcyBkaWUgRGlmZmVyZW56IGRlciBNaXR0ZWx3ZXJ0ZSBudWxsIGlzdC4NCi0gSW0gTmVubmVyIHN0ZWh0IGRlciBTdGFuZGFyZGZlaGxlciBkZXIgTWl0dGVsd2VydGUoU0VNKS4gDQoNCjxicj4NCg0KPHU+QW56YWhsIGRlciBGcmVpaGVpdHNncmFkZSAoZGYpOjwvdT48YnI+DQpEaWUgQW56YWhsIGRlciBGcmVpaGVpdHNncmFkZSBmYXNzdCAoZW5nLiBudW1iZXIgb2YgZGVncmVlcyBvZiBmcmVlZG9tLCBrdXJ6IGRmKSBkaWUgQW56YWhsIGRlciBXZXJ0ZSwgZGllIGZyZWkgdmFyaWllcnQgIGvDtm5uZW4sIG9obmUgZGVuIGludGVyZXNzaWVyZW5kZW4gc3RhdGlzdGlzY2hlbiBQYXJhbWV0ZXIgenUgw6RuZGVybiwgenVzYW1tZW4uIE9mdCB3ZXJkZW4gbWl0aGlsZmUgZWluZXIgU3RpY2hwcm9iZSBkaWUgdW5iZWthbm50ZW4gUGFyYW1ldGVyIGVpbmVyIEdydW5kZ2VzYW10aGVpdCBnZXNjaMOkdHp0LiANCg0KJCRkZj1uXzErbl8yLTIkJA0KDQo8dT5Lcml0aXNjaGUgUHLDvGZncsO2w59lICh0LWtyaXRpc2NoKTwvdT48YnI+DQpEaWVzZXIgV2VydCBzY2huZWlkZXQgZWluZSBGbMOkY2hlIHVudGVyIGRlciBQcsO8Zmdyw7bDn2VudmVydGVpbHVuZyAoKnQqLVZlcnRlaWx1bmcpIGFiLCB6dSBkZXIgZGllIGV4dHJlbXN0ZW4gJFxhbHBoYSQtUHJvemVudCAoJFxhbHBoYSQgZW50c3ByaWNodCBkZXIgRmVobGVyd2FocnNjaGVpbmxpY2hrZWl0IDEuIEFydCkgZGVyICp0Ki1XZXJ0ZSBnZWjDtnJlbi4NCg0KIyMjIyBWZXJnbGVpY2ggdm9uIGtyaXRpc2NoZXIgdW5kIGVtcGlyaXNjaGVyIFByw7xmZ3LDtsOfZQ0KDQpOYWNoIGRlciBFcm1pdHRsdW5nIGRlcyBlbXBpcmlzY2hlbiB0LVdlcnRlcyBtdXNzIGRpZXNlciBtaXQgZGVyIGtyaXRpc2NoZW4gUHLDvGZncsO2w59lIHZlcmdsaWNoZW4gd2VyZGVuLg0KQWx0ZXJuYXRpdiBrYW5uIGRpZSDDnGJlcnNjaHJlaXR1bmdzd2FocnNjaGVpbmxpY2hrZWl0ICgkcCQtdmFsdWUpIG1pdCBkZW0gRmVobGVyIDEuIEFydCAoJFxhbHBoYXt9JC1GZWhsZXIpIHZlcmdsaWNoZW4gd2VyZGVuLiA8YnI+DQpEZXIga3JpdGlzY2hlIHQtV2VydCB3aXJkIGF1cyBkZXIgdC1XZXJ0LVRhYmVsbGUgYWJnZWxlc2VuLiBIaWVyYmVpIHNwaWVsZW4gZGllIEZyZWloZWl0c2dyYWRlIGRlciBTdGljaHByb2JlICgkZGYkKSB1bmQgZGllIEZsw6RjaGUgZGVyIFZlcnRlaWx1bmcgZWluZSB3aWNodGlnZSBSb2xsZS4gQmVpIGRlciBGbMOkY2hlIG11c3MgbWFuIGJlYWNodGVuLCBvYiBlcyBzaWNoIHVtIGVpbmUgdW5nZXJpY2h0ZXRlICgxIC0gJFxmcmFje1xhbHBoYXt9fXsyfSQpIG9kZXIgZ2VyaWNodGV0ZSAoMSAtICRcYWxwaGF7fSQpIEh5cG90aGVzZSBoYW5kZWx0LiBCZWkgRnJlaWhlaXRzZ3JhZGVuLCBkaWUgbmljaHQgaW4gZGVyIFRhYmVsbGUgc3RlaGVuLCBrYW5uIG1pdHRlbHMgZGVyIHZvcmhhbmRlbmVuIFdlcnRlIGVpbiBrcml0aXNjaGVyIHQtV2VydCBleHRyYXBvbGllcnQgd2VyZGVuLiA8YnI+DQoNCg0KDQo8dT5ad2Vpc2VpdGlnZXIgQWJsZWhudW5nc2JlcmVpY2g6PC91Pjxicg0KDQoNCkJlaSBlaW5lbSB6d2Vpc2VpdGlnZW4gQWJsZWhudW5nc2JlcmVpY2ggbXVzcyBkaWUgRmVobGVyd2FocnNjaGVpbmxpY2hrZWl0IDEuIEFydCBhdWYgYmVpZGUgRW5kZW4gZGVyIE51bGxoeXBvdGhlc2VudmVydGVpbHVuZyBhdWZnZXRlaWx0IHdlcmRlbi4gRGFoZXIgd2lyZCBkaWUgZ2V3w6RobHRlIEZlaGxlcndhaHJzY2hlaW5saWNoa2VpdCAxLiBBcnQgdm9uIGRlciBHcsO2w59lIGbDvG5mIFByb3plbnQgYXVmIGJlaWRlIFNlaXRlbiBtaXQgamV3ZWlscyAyLjUgUHJvemVudCBhdWZnZXRlaWx0LiA8YnI+DQoNCg0KPHU+RWluc2VpdGlnZXIgQWJsZWhudW5nc2JlcmVpY2g6PC91Pjxicg0KDQpCZWkgZWluZW0gZWluc2VpdGlnZW4gQWJsZWhudW5nc2JlcmVpY2ggcmVpY2h0IGVzIGF1cywgZGFzIEZlaGxlcnJpc2lrbyBhdWYgZGVyIGVudHNwcmVjaGVuZGVuIFNlaXRlIGRlciBOdWxsaHlwb3RoZXNlbnZlcnRlaWx1bmcgenUgYmVyw7xja3NpY2h0aWdlbiwgYXVmIHdlbGNoZXIgZWluICpleHRyZW1lcyogZW1waXJpc2NoZXMgRXJnZWJuaXMgZXJ3YXJ0ZXQgd2lyZC4gDQoNCg0KDQojIyBadXNhbW1lbmZhc3N1bmcgRW50c2NoZWlkdW5nc2tyaXRlcmllbg0KDQojIyMgRsO8ciAqKnQtV2VydGUqKjoNCg0KJCRcIHx0X3tcdGV4dHJte2VtcGlyaXNjaH19fCBcZ2Vxe30gdF97XHRleHRybXtrcml0aXNjaH0sMSAtIFxmcmFje1xhbHBoYX17Mn19IGJ6dy4gdF97XHRleHRybXtrcml0aXNjaH0sMSAtIFxhbHBoYXt9fVx0ZXh0cm17LCBkYW5ufVw6SF8wXDpcdGV4dHJte3ZlcndlcmZlbn0kJA0KDQokJFwgfHRfe1x0ZXh0cm17ZW1waXJpc2NofX18IDwgdF97XHRleHRybXtrcml0aXNjaH0sMSAtIFxmcmFje1xhbHBoYX17Mn19IGJ6dy4gdF97XHRleHRybXtrcml0aXNjaH0sMSAtIFxhbHBoYX1cdGV4dHJteywgZGFubn1cOkhfMFw6IFx0ZXh0cm17YmVpYmVoYWx0ZW59JCQNCg0KIyMjIEbDvHIgKipwLVdlcnRlKiogKMOcYmVyZ2FuZ3N3YWhyc2NoZWlubGljaGtlaXRlbik6DQoNCiQkXCBwID4gXGFscGhhe30gXHRleHRybXssIGRhbm59XDpIXzBcOlx0ZXh0cm17YmVpYmVoYWx0ZW59JCQNCg0KJCRcIHAgXGxlcSBcYWxwaGF7fSBcdGV4dHJteywgZGFubn1cOkhfMFw6XHRleHRybXt2ZXJ3ZXJmZW59JCQNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg==