Thai-Curry

Zutaten (2-3 Personen):

  • 250 g Hühnchengeschnetzeltes
  • 2 Paprika
  • 1 Dose Kokosmilch
  • 1 Glas Bambussprossen (175 g Nettogewicht)
  • 2-3 TL Grüne Thai-Curry-Paste
  • 1/2 Bund Lauchzwiebeln
  • 1 Pkg Pak-Choi

Zeitaufwand:

15 min Schnippeln + 15 min zum Braten und Abschmecken = 30 min

Zubereitung:

  1. Paprika in Streifen, Frühlingszwiebeln in Ringe schneiden. Pak-Choi grob klein schneiden.
  2. Hühnchen im Wok anbraten und danach wieder rausnehmen.
  3. Paprika, Bambus und Curry-Paste anbraten.
  4. Frühlingszwiebeln hinzufügen
  5. Mit Kokosmilch ablöschen und Hühnchen wieder zugeben
  6. Pak-Choi hinzufügen
  7. Mit Salz abschmecken


Bulgursalat

Zutaten (2-3 Personen):

  • 250 g Bulgur
  • 2 Paprika
  • 1 Bund Petersilie
  • 2 EL Tomatenmark
  • 1 Bund Frühlingszwiebeln
  • 50 ml Olivenöl
  • 3 TL Zitronensaft
  • 1,5 EL Chiliflocken
  • 1 TL Salz
  • Pfeffer

Zeitaufwand:

15 min Quellenlassen und Schnippeln + 10 min Mischen und Abschmecken = 25 min

Zubereitung:

  1. Bulgur in einer großen Schüssel mit heißem Wasser aufgießen bis er mit Wasser bedeckt ist, dann stark salzen und 10 min quellen lassen.
  2. Paprika würfeln, Frühlingszwiebeln in Ringe schneiden, Petersilie hacken.
  3. Fertig aufgequollenen Bulgur, Paprika und Frühlingszwiebeln vermischen.
  4. Öl mit Zitronensaft, Tomatenmark, Salz, Pfeffer, Petersilie und Chiliflocken verrühren und unter den Bulgur rühren.
  5. Alles mit Salz und Zitronensaft abschmecken.
  6. Nochmal gut durchziehen lassen, mindestens 30 min, besser über Nacht.

Quelle:


Datenschutz Grundverordnung

Sehr geehrter Besucher,

da am 25.05.2018 die DSGVO anwendbar wird, mussten Teile der Seite angepasst werden.
Die nötigen Anpassungen sind nun erfolgt und ich hoffe, dass ich weiterhin dem Datenschutz meiner Besucher gerecht werde.

Angepasst wurde im Einzelnen:

  • Eine Datenschutzerklärung wurde mit Hilfe des Datenschutz-Generator.de der Rechtsanwaltskanzlei Dr. Thomas Schwenke erstellt. Ein Link befindet sich außerdem im Footer der Seite.
  • Ein WordPress Update, welches den Export und die Löschung von Nutzerdaten ermöglich, wurde installiert. Mit dieser neuen Funktion kann ich ggf. vorkommenden Auskunftsersuchen begegnen.
  • Das Plugin “remove-comment-ip” von Thomas Leister zur Anonymisierung von IP Addressen bei Kommentaren wurde eingebunden.
  • Im Server OS wurde die Konfiguration von Logrotate dahingehend kontrolliert, dass auf keinen Fall IP Addressen länger als sieben Tage gespeichert werden.
  • Die Registrierungsfunktion von Redmine wurde deaktiviert.
  • Als Analytics Plugin wird nun Matomo verwendet, das Opt-Out ist in der Datenschutzerklärung.
  • In das Kommentarformular wurde ein entsprechender Hinweis auf die Speicherung von Daten eingefügt.

Sollten Ihnen werter Besucher eventuelle übrig gebliebene Lücken oder Unzulänglichkeiten auffallen, bitte ich um eine kurze Nachricht per Mail oder Kommentar (Achtung, auch dabei werden Daten gespeichert 😉 ).

Auch wenn mir die DSGVO nun tatsächlich etwas Arbeit bereitet hat, möchte ich betonen, dass ich sie grundsätzlich gutheiße. Der Umstand, dass für mich Arbeit entstanden ist, ist ein Beleg dafür, dass mehr Reflektion im Bezug auf das Erheben von Daten meiner Besucher nötig war. Ich hoffe, dass nun möglichst viele Seitenbetreiber und Diensteanbieter sich mehr Bedanken über das Thema machen.


Ray-Sphere Intersection

Ray Sphere Intersection

When developing atmospheric scattering shaders, we will need to calculate intersection points between rays and spheres. So here is how we can do that.

Defining a ray
To define a ray, we specify two vectors: One point o, which goes from zero to a point on the ray and another one d, which goes along the ray and defines therefore the ray’s direction. The direction vector is multiplied by an argument t. When varying t, we can reach any point on the ray. Now you might say, that we did not define a ray, but a line. The only difference between rays and lines is, that t has a minimum value for rays. A line goes from -infinity to infinity, while a ray has a starting point and goes to infinity from there. In our use case, that’s not that important tough.
\displaystyle\overrightarrow{x}=\overrightarrow{o}+t\overrightarrow{d}

Defining a sphere
To define a sphere, we need to specify a center point c and a radius r. All points on a sphere are points, which have a distance to the center point equally to the sphere’s radius. So a sphere’s definition can be: \displaystyle\|\overrightarrow{x}-\overrightarrow{c}\|=r If we can assume, that the center of the sphere is at the origin of our coordinate system, the equation simplifys to \displaystyle\|\overrightarrow{x}\|=r, so “all vectors with a certain length r”.

Intersecting both
In our use case, we will have the spheres always centered, so we can use the easier version of the sphere definition. Inserting the ray definition into the sphere definition yields:
\displaystyle\|\overrightarrow{o}+t_{\mathrm{hit}}\overrightarrow{d}\|=r I replaced t with \displaystyle t_{\mathrm{hit}} because now it is not a varying parameter anymore. Instead it is a symbol for all values which fulfill this equation (a ray can hit a sphere zero, one or two times).
Image a vector \displaystyle\overrightarrow{a}\, then there is: \displaystyle\|\overrightarrow{a}\|^2 = \|\overrightarrow{a}\|\|\overrightarrow{a}\|

From the definition of the dot product and \displaystyle\cos{0}=1 \Rightarrow \overrightarrow{a}\cdot\overrightarrow{a}=\|\overrightarrow{a}\|\|\overrightarrow{a}\|\cos{\alpha} = \|\overrightarrow{a}\|\|\overrightarrow{a}\|
So there is \displaystyle\|\overrightarrow{a}\|^2 = \overrightarrow{a}\cdot\overrightarrow{a}

To apply this to the intersection, we need to square it first:
\displaystyle\|\overrightarrow{o}+t_{\mathrm{hit}}\overrightarrow{d}\|=r \Leftrightarrow r^2 =\|\overrightarrow{o}+t_{\mathrm{hit}}\overrightarrow{d}\|^2
=(\overrightarrow{o}+t_{\mathrm{hit}}\overrightarrow{d})\cdot(\overrightarrow{o}+t_{\mathrm{hit}}\overrightarrow{d})
\displaystyle=\overrightarrow{o}^2+2\overrightarrow{o}t_{\mathrm{hit}}\overrightarrow{d}+(t_{\mathrm{hit}}\overrightarrow{d})^2  =\overrightarrow{o}^2+2\overrightarrow{o}\cdot\overrightarrow{d}t_{\mathrm{hit}}+\overrightarrow{d}^2t_{\mathrm{hit}}^2
\displaystyle\Leftrightarrow\overrightarrow{o}^2+2\overrightarrow{o}\cdot\overrightarrow{d}t_{\mathrm{hit}}+\overrightarrow{d}^2t_{\mathrm{hit}}^2-r^2=0
\displaystyle\Leftrightarrow \overrightarrow{d}^2t_{\mathrm{hit}}^2 +2\overrightarrow{o}\cdot\overrightarrow{d}t_{\mathrm{hit}}+\overrightarrow{o}^2-r^2=0
\displaystyle\Leftrightarrow t_{\mathrm{hit}}^2 +\frac{2\overrightarrow{o}\cdot\overrightarrow{d}}{\overrightarrow{d}^2}t_{\mathrm{hit}}+\frac{\overrightarrow{o}^2-r^2}{\overrightarrow{d}^2}=0

To make the calculation easier we assume, that \displaystyle\overrightarrow{d} is normalized: \displaystyle\|\overrightarrow{d}\|=1 \Rightarrow \overrightarrow{d}^2 = \overrightarrow{d}\cdot\overrightarrow{d} = \|\overrightarrow{d}\|\|\overrightarrow{d}\| = 1*1 = 1 So the denominators above are one and are left out.

Now we use the reduced quadratic formula to solve the equation for \displaystyle t_{\mathrm{hit}}:
\displaystyle p=2\overrightarrow{o}\overrightarrow{d}, q=\overrightarrow{o}^2-r^2
The discriminant is \displaystyle D=\left(\frac{p}{2}\right)^2-q
\displaystyle t_{\mathrm{hit}}=-\frac{p}{2}\pm\sqrt{D}
\displaystyle=-\frac{2\overrightarrow{o}\overrightarrow{d}}{2}\pm\sqrt{\left(\frac{2\overrightarrow{o}\overrightarrow{d}}{2}\right)^2-\overrightarrow{o}^2+r^2}
\displaystyle=  -\overrightarrow{o}\overrightarrow{d}\pm\sqrt{\left(\overrightarrow{o}\overrightarrow{d}\right)^2-\overrightarrow{o}^2+r^2}
So the cheapest way to calculate the intersection point is:

\displaystyle t_{\mathrm{hit}}=-a\pm\sqrt{a^2-\overrightarrow{o}^2+r^2} with a=\overrightarrow{o}\cdot\overrightarrow{d}

Keep in mind, that \overrightarrow{d} has to be normalized!


Numerical Integration

To describe atmospheric scattering, we will use several equations with integrals which can’t be solved analytically – so we will make use of middle Riemann sums to approximate those.

Image a function f which can’t be integrated analytically. It might have a function graph like this:

In this case it is the graph for f(x)=e^{-x}, which is important for atmospheric scattering. Of course, we can integrate it directly, but we will use this function anyway, so that we can compare our approximation with the direct result.

Let’s say, we want to integrate it from x=1 to x=2:
To calculate this integral, we will divide the complete integral into n intervals and approximate each part with a rectangle, for example n=3:

When the bounds are a und b, each interval has a width of: \displaystyle \mathrm{d}=\frac{b-a}{n}=\frac{2-1}{3}=\frac{1}{3}

Next we need the height of each rectangle. Here there are several possibilities to choose from, we use the value of our function in the middle of each interval (that’s why it is called middle sum):

Now we can calculate the area of each rectangle: \displaystyle A_i = \mathrm{d}\times f(a+(i+\frac{1}{2})\mathrm{d})

i a+(i+0.5)d f(a+(i+0.5)d) Ai
0 1.16666666666667 0.311403223914598 0.103801074638199
1 1.5 0.22313016014843 0.074376720049477
2 1.83333333333333 0.159879746079694 0.053293248693231

Adding all rectangles yields:

\displaystyle\sum A_i = 0.231471043380907

Let’s check: \displaystyle\int_1^2 e^{-x}= \left[ -e^{-x} \right]_1^2 = -e^{-2}+e^{-1}=\frac{1}{e}-\frac{1}{e^2}=\frac{e}{e^2}-\frac{1}{e^2}
\displaystyle=\frac{e-1}{e^2}\approx 0.23254415793483

In this case there is an error of 0.46606%, pretty good for just using three sample intervals. When using more samples, the approximation gets more accurate, here are the results when using 3, 10, 50 and 500 samples:

n Approximation Error
3 0.231471043380907 0.461467 %
10 0.232447292788817 0.041655 %
50 0.232540282244081 0.001667 %
500 0.232544119177475 0.000017 %

There is a lot of theory for quantifying the error, but I will omit it here. All we will need is the following equation for numeric integration by middle Riemann sums:

\displaystyle\int_a^b f(x)\,dx \approx \frac{b-a}{n}\sum_{i=0}^{n-1} f\left(a+\left(\frac{1}{2}+i\right)\frac{b-a}{n}\right)


Finding the best talent setup using Warcraftlogs

Wow Warrior Talents

Hello fellow raiders,

some people in my raiding team seem to have troubles finding the best talent setup for their class in a given encounter. So I decided to make a quick guide, how to find that bit of information on Warcraftlogs.com.

It is very easy:

  1. Obviously go to warcraftlogs.com. 🙂
  2. Expand the navigation menu on the top left and select the rankings option for a certain boss – let’s take Harjatan for example.
  3. On the ranking list, you have to adjust the settings for difficulty and your spec, I choose Heroic and Arms Warrior.
  4. Now you can see the best talents, legendaries and trinkets on top of the list. Sometimes there are several nearly equal options, so make sure to have a look at the list to see,
    if people all choose the same or if there are disparities.
  5. That’s it, now you can do incredible high dps using the most awesome talents your spec has to offer! 😉

Pulled Pork vom Kugelgrill nach Meathead

Kugelgrill

Zutaten:

  • Schweinenacken oder Schweineschulter 1-3 kg mit oder ohne Knochen
  • Salz
  • Memphis Dust
  • Räucherholz, Chips oder Chunks, z.B. Hickory

Zeitaufwand:

15 min zum Salzen + 12-24 h ruhen lassen + 15 min zum Rubben + 30 min um Grill in Betrieb zu nehmen + 8-20 h Smoken + 30 min ruhen lassen = Sehr lange!

Zubereitung:

Am Tag zuvor

Zunächst das Fleisch abwaschen und trocken tupfen. Sollte es außen große Fettablagerungen haben, diese etwas trimmen, aber nicht komplett entfernen. Danach großzügig salzen und in Frischhaltefolie 12-24 h ruhen lassen.

Den Grill bestücken

Nun das Fleisch etwas anfeuchten und großzügig mit Memphis Dust rubben.

Gerubbtes Stück Schweinenacken

Sollte man Holzchips verwenden, diese nun in einer Schale wässern.

Gewässerte Holzchips

Ein paar Holzkohlebriketts im AZK vorglühen, ich nehme meist so 6-8 Briketts zum Starten. Den Grill mit einem Minion Ring bestücken.

Achtung, die Länge des Minionrings hängt von verschiedenen Faktoren ab, z.B. Grillmodell oder Außentemperatur. Im Zweifel lieber etwas länger machen, man kann die nicht verglühten Kohlen natürlich wieder verwenden.

Die vorgeglühten Briketts aus dem AZK an den Rand des Minionrings schütten, so dass die Glut auf den Ring übergreifen kann und mittig eine Schale platzieren:

Danach etwas von den Holzchips auf den Ring streuen und das Fleisch über der Schale auflegen und mit einem Temperaturfühler versehen.

Den Deckel schließen.

Smoken

Nun sollte der Grill auf etwa 105-120 °C eingeregelt werden, ein paar Grad mehr oder weniger sind aber nicht dramatisch. Diese Temperatur sollte nun bis zum Ende gehalten werden

Während der ersten zwei Stunden jede halbe Stunde etwas von den Holzchips nachwerfen und kontrollieren, ob der Minionring richtig gezündet hat.

Danach nur noch ab und zu die Temperatur kontrollieren.

Der Stall

Sobald das Fleisch etwa 70-75 °C erreicht, tritt meistens der sogenannte “Stall” ein. Dabei verdampft Flüssigkeit aus dem Inneren, was einen weiteren Temperaturanstieg verhindert. Dieses Temperaturplateau kann mehrere Stunden anhalten, davon darf man sich nicht verunsichern lassen. Einfach weiter die Garraumtemperatur halten und irgendwann wird die Kerntemperatur wieder steigen. Hier beispielhaft der Temperaturverlauf eines kleinen Stücks:

Der Aufbau von oben sah nach etwa fünfeinhalb Stunden so aus:

Wie man hier vielleicht erkennen kann, habe ich den Nacken inzwischen gedreht, meiner Erfahrung nach kann es bei kleineren Stücken helfen, dass diese gleichmäßig zart werden.

Sobald das Fleisch eine Kerntemperatur von 90°C erreicht, sollte man überprüfen, ob es fertig ist. Dazu kann man bei einem Stück mit Knochen versuchen, diesen zu drehen (Vorsicht, heiß!). Sollte dieser sich sofort ablösen und leicht drehen lassen, ist man am Ziel. Hat man ein Stück ohne Knochen, kann man eine Gabel in den Fleisch stechen und versuchen, diese um 90° zu drehen. Auch hier gilt: Lässt sich die Gabel leicht drehen, ist das Fleisch fertig. Ansonsten das Fleisch weiter auf dem Grill lassen und eine halbe Stunde später nochmal kontrollieren. Bei 95°C sollte man das Fleisch dann in jedem Falle runternehmen, andernfalls wird es trocken.

Quelle:

Meathead Goldwyn auf AmazingRibs.com: Perfect Pulled Pork Recipe, selbst übersetzt und zusammengefasst


Vengeance Demon Hunter Weak Auras

Vengeance Demonhunter UI

I am using some Weak Auras on my Vengeance Demon Hunter and I think they might be useful for some other people too.

The healthbars and the spell icons in the bottom center of the screenshot aren’t Weak Auras, everything else is contained in this import string:

dWu7JbGivqUKQOkJsuQoLOuwLOQYRevfnlrvv3ci2LkO6xIQcmmvLJPsTmvvptL00KkDnrX2ur9nvPgNQKZrfAEIQcDpGK9PckhuvKfkv8qvIMOkWfvf2ivuFKcuJei1jvfLvQKAMubUPkHDcYpvrgkvKwQOkpfzQs6QuaBvvuvFvvu5SuGmxQGAVK)cudwPomvTykOhdyYsvxwyZkXNPOrtHonKvtfKxtfXSP0Tb1Uv0VLYWPshxuvQLlXZHA6OUUcBxj57QqJxuY5fvwVOQK5lQkO9lY6wvrEvflcl6)WVE4Fh(Niyr9I6vvKhGrRIAbzAgLlA9HGa5(tuKLRF2h9QJOEe2HgtagTke5TwrOErp)yAg(jqK2haArZbCTGmnJcwq3IWHDXPn0Kf15uTE6ch8W5QiBZ3RQi2BJjRQi4HLrQkwSOboady9ySiUmcrLMnuve8WYivflweG1JXQkcJMM2q0bpU4eeOnau9rEIf5UYL92yYQkcEyzKQIflAXdWO2uvrWdlJuvSyr9OLfeWWY5uve8WYivflwuXdeQkcEyzKQIflwujmrTznNBiYS0gUIfbOQGUvvuUtll4Gfei3o(jcb0MYqrlTj7S1BIfDYavh8mOhIm0xUSzBfvf0TG(e0VGUf0v5CM))3V)E)67)DM7Z)z0cizYiwKT57vve7TXKvve8WYivflwe2nauvegnnTHG(fbpSmsvb9RoIflAXdWO2uvrWdlJuvSyrdCagW6Xy1ruXdeQkcEyzKQIflAGdWy3aqDe5UYL92yYQkcEyzKQIflQ0SHQIGhwgPQyXI6rlliGHLZPQi4HLrQkwSiaRhJvvegnnTHOdECXjiqBaO6J8elwujmrTznNBiYpkEd9fry2d4eSmueAIyWanyxBWrVGUfXrw8OeIEQa3k5e1JWo0ycWOvHiV1kYdWOvrTGmnJYfT(qqGC)jIlitZOOQioNBicZEEGfnMXQyYI8dUjYTDmkGBUrXZTIO8rrdCa2TDmkQJOyvmzroTDmkIg4aSBuaIj72ogfzOi32XOW5CdbD)s0ahGhteRoICBhJIOZFIg4aSB7yu4CUH6icyG5gmyJO(qeJGJEXI4ilwgkIrWrrgk6iQNnkO)mFIq9ICQhntBh0okAP4HdIlE2lORIMd4AbzAgfSGUfzmqMgzb9)jwq)Qkk3PLfCWccKBh)eT0MSZwVjw0jduDWZGEiYqF5YMTvuvq)Y53VF)5497VVUFo(9)(tlGK5QGUkNp)(19lhV))UM5SJNFDwlGK5Syr2MVxvrS3gtwvrWdlJuvSyry3aqvry000gc6xe8WYivf0V6iwSOfpaJAtvfbpSmsvXIfnWbyaRhJvhrfpqOQi4HLrQkwSOboaJDda1rK7kx2BJjRQi4HLrQkwSiaRhJvvegnnTHOdECXjiqBaO6J8elQhTSGagwoNQIGhwgPQyXIknBOQi4HLrQkwSyrLWe1M1CUHi)O4n0xeHzpGtWYqrOjIbd0GDTbh9c6wehzXJsi6PcCRKtupc7qJjaJwfI8wRipaJwf1cY0mkx06dbbY9NiUGmnJIQI4CUHim75bw0ygRIjlYp4Mi32XOaU5gfp3kIomqjAGdWUTJrrDefRIjlYPTJrr0ahGDJcqmz32XOidf52ogfoNBiO7xICBhJIOZFIg4a8yIy1r0ahGDBhJcNZnuhradm3GbBe1hIyeC0lwehzXYqrgdKPrwq)FIMd4AbzAgfSG(fHaAtzOOJOE2OG(Z8jY33JyuB6TG5cY0mkyvf0TQI4cY0mkQkIZ5gIWSNhyr4HHXQyY0yzbLLiWx(evbt1NYRkYTDmkGBUrXZTIO8rrdCa2TDmkQJOyvmzroTDmkIgtelY16ZffrUTJrHZ5gc6(Li32XOi61NOXmwftwKFWnr4HHXQyYoTelOSero9HdCGOboa72ogfoNBOoIg4a8yIy1rSOXKlitZOOQyXIfH6f5upAM2xe9ObSOLIhoiU4zVGUkIrWrrgkwqxvvuUtll4Gfei3o(jAPnzNTEtSOtgO6GNb9qKT57vve7TXKvve8WYivflwe2nauvegnnTHG(fbpSmsvb9RoIflAXdWO2uvrWdlJuvSyrdCagW6Xy1ruXdeQkcEyzKQIflAGdWy3aqDe5UYL92yYQkcEyzKQIflcW6XyvfHrttBi6GhxCcc0gaQ(ipXI6rlliGHLZPQi4HLrQkwSOsZgQkcEyzKQIflwujmrTznNBiYpkEd9fry2d4eSmueAIyWanyxBWrVGUfXrw8OeIEQa3k5e1JWo0ycWOvHiV1kYdWOvrTGmnJYfT(qqGC)jIlitZOOQioNBicZEEGfnMXQyYI8dUjYTDmkGBUrXZTIOdduIg4aSB7yuuhrXQyYICA7yuenWby3Oaet2TDmkYqrUTJrHZ5gc6(Li32XOi61NOboapMiwDenWby32XOW5Cd1reWaZnyWgr9Higbh9IfXrwSmuKXazAKf0)NO5aUwqMMrblOBriG2ugk6iQNnkO)mFIq9ICQhntBqJmnkAP4HdIlE2lORIyeCuKHIfuxvfT0MmHYxHGUFlAm5cY0mkQkAGdWJjIvhrJjIf5A95IIyrLWe1M1CUHioYIf5by0QOwqMMr5IwFiiqU)eHMigmqd21gC0lOBr9iSdnMamAviYBTIq9ICQhnt7AKflIlitZOOQioNBicZEEGfnWb4XeXQJiGbMBWGnI6drmco6ffRIjlYPTJrrKB7yu4CUHGUFjAmJvXKfbmWCdw0ahGDBhJcNZnuhXIoI6zJY5xD729)6RmNV643D3UFAbKUokAP4HdIlE2lOUIwAtwKb5bDGenhW1cY0mkybDlYyGmnYY5UVFL5791mx)UE1XR)V0ciDFjY289QkI92yYQkcEyzKQIflc7gaQkcJMM2qq)IGhwgPQG(vhXIfT4byuBQQi4HLrQkwSOboady9yS6iQ4bcvfbpSmsvXIfnWbySBaOoICx5YEBmzvfbpSmsvXIfvA2qvrWdlJuvSyr9OLfeWWY5uve8WYivflweG1JXQkcJMM2q0bpU4eeOnau9rEIflk3PLfCWccKBhDuSGYOQOCNwwWbliqUFNrecOnLHIwAt2zR3el6KbQo4zqpezOVCzZ2kQkOF587ZN76yxhDmt3VRD76yxTasMRc6QC(8)953xVE(76)7))7ZAbKmNflY289QkI92yYQkcEyzKQIflc7gaQkcJMM2qq)IGhwgPQG(vhXIfT4byuBQQi4HLrQkwSOboady9yS6iQ4bcvfbpSmsvXIfnWbySBaOoICx5YEBmzvfbpSmsvXIfvA2qvrWdlJuvSyr9OLfeWWY5uve8WYivflweG1JXQkcJMM2q0bpU4eeOnau9rEIflQeMO2SMZne5hfVH(Iim7bCcwgkIJS4rje9ubUvYjIJSyNBtwKb5bDGeXi4O4CBYImipOdKOEe2HgtagTke5TwrEagTkQfKPzuUO1hccK7prCbzAgfvfbmWCdgSruFiIrWrVOPhoWQkOBrheWTzAtUiNeyXIfXrwSmueJGJImueM9aob7CBYImipOdKiJbY0ilO7prhr9Srb9N5teQx0bbCBM2KlYjboT9amAviAoGRfKPzuWc6wSGoRQOCNwwWbliqUpNr0sBYoB9MyrNmq1bpd6Hid9LlB2wrvbDlNp74)17xFN)UEUB3Vmz0cizYiOF58R3zC0XU)V(6E((7vMmAbKmze0vbDlwKT57vve7TXKvve8WYivflwe2nauvegnnTHG(fbpSmsvb9RoIflcW6XyvfHrttBi6GhxCcc0gaQ(ipXIg4amG1JXQJOsZgQkcEyzKQIflYDLl7TXKvve8WYivflw0ahGXUbG6iQhTSGagwoNQIGhwgPQyXIkEGqvrWdlJuvSyrlEag1MQkcEyzKQIflwujmrTznNBiYpkEd9fry2d4eSmueAIyWanyxBWrVGUfXrw8OeIEQa3k5eXrwSZTjlYG8GoqIWShWjyNBtwKb5bDGeXi4O4CBYImipOdKipaJwf1cY0mkx06dbbY9NiUGmnJIQIagyUbd2iQpeXi4Ox00dhyvf0TOhWUTJrjTFoFPhlwSioYILHIyeCuKHIqaTPmu0CaxlitZOGf0TOJOE2OG(Z8jc1l6bSB7yus7NZx6XPThGrRcr9iSdnMamAviYBTImgitJSGU)elO3QkkRtll4Gfei)VElk3PLfCWYzqY091R3NVEF7yghD889VwaPBgrEag1MyvfHzFHvvuFdmWaZnyzOiGbMBWIsRtRf13adhyS3mKHIfTGMiSrvf13admWCdwgkQVbgoWyVzidflw0sBYoB9MyrNmq1bpd6Hid9LlB2wrvbDlNp)(19lhV))UM5SJNFDwlGKPRGUkNZKPBMZFVCmZVJ3VC8CxTasMRIfzB(EvfXEBmzvfbpSmsvXIfHDdavfHrttBiOFrWdlJuvq)QJyXICx5YEBmzvfbpSmsvXIf1JwwqadlNtvrWdlJuvSyrLMnuve8WYivflw0IhGrTPQIGhwgPQyXIg4am2nauhrawpgRQimAAAdrh84ItqG2aq1h5jw0ahGbSEmwDev8aHQIGhwgPQyXIfvctuBwZ5gI8JI3qFrehzXJsi6PcCRKtupc7qJjaJwfI8wRipaJwf1cY0mkx06dbbY9NOEe216ZvJSyhelSOlEuFsexqMMrrvradm3GbBe1hIyeC0lA6HdSQc6w0fb7HBfxJnmclwSO5aUwqMMrblOBriG2ugk6iQNnkO7)FrOErxeSpT9amAviwqVuvuwNwwWbliq(F9wuUtll4Gfei3DVfT0MSZwVjw0jduDWZGEiYqF5YMTvuvq3Y5mxp)YrhF))9)6)833TwajZzb9lOBbDvo39131xxD883FM)xzUERfqYCwSiBZ3RQi2BJjRQi4HLrQkwSiSBaOQimAAAdb9lcEyzKQc6xDelweG1JXQkcJMM2q0bpU4eeOnau9rEIf1JwwqadlNtvrWdlJuvSyrfpqOQi4HLrQkwSi3vUS3gtwvrWdlJuvSyrdCag7gaQJOsZgQkcEyzKQIflAGdWawpgRoIw8amQnvve8WYivflwSOsyIAZAo3qKFu8g6lI4ilEucrpvGBLCI6ryhAmby0QqK3Af5by0QOwqMMr5IwFiiqU)e1JWUwFUAKf7GyHf5mkk5s7of)SxexqMMrrvradm3GbBe1hIyeC0lAmrSi2xmdw0ahGXUbaAbbaEmrSmu00dhyvf0TiNrrjxA3P4N9If1hgowwQ5CdrG(P8UWzd4aXI8amQnXQkcZ(cRQO(gyGbMBWYqr9nWWbg7ndzOiGbMBWIsRtRflAbnryJQkQVbgyG5gSmuSi0eXQkQVbgyG5gSmuSyrhr9SrbD))lc1lYzuuYL2Dk(zFA7by0QqecOnLHIMd4AbzAgfSGUflihvvuUtll4GLZGCoZBh7((15mDVM5A3VUAbKUze5by0QOwqMMr5IwFiiqU)eXfKPzuuveNZneHzppWIgZyvmzr(b3enWbySX2Xtt1ruSkMSOlBnBF74mTDAPzwcmoTZo5gwB2enWb4XeXQJOs4TKByTqE4qKZOOKlT7u8ZErdCag7gwlKhouhryJTJNMIWgBhpnVS1S9TJtradm3GbBe1hIyeC0lc7gwlKhoe0)x3V)BXI6dSNhfphQJOL2KfzqEqhirgdKPrwqxZiY289QkI92yYQkcEyzKQIflc7gaQkcJMM2qq)IGhwgPQG(vhXIfnWbySBaOoI6rlliGHLZPQi4HLrQkwSOsZgQkcEyzKQIflcW6XyvfHrttBi6GhxCcc0gaQ(ipXICx5YEBmzvfbpSmsvXIfT4byuBQQi4HLrQkwSOboady9yS6iQ4bcvfbpSmsvXIflAPnzcLVcbDNrupc7A95i2d4eSONNROsyIAZAo3qecOnfHMigmqd21gC0lOBraTMTVDCkdfL1PLfCWccKRx)o8VVVUVE9)6(pJiuViNrrjxA3P4N9P9LhiQhHDOXeGrRcrERv0rupBuqxZiAoGRfKPzuWc6w0yYfKPzuuve2nSwipCiO)VUF)3IfHzpGtWoTHMSOlFavFKNybD)PQOSoTSGdwqGC963H)99191R)x3)zenMCbzAgfvfHn2oEAkcBSD80mVW3Nte2nSwipCiO)VUF)3If5by0QOwqMMr5IwFiiqU)eXfKPzuuveNZneHzppWIgZyvmzr(b3enWbySX2Xtt1ruSkMSOlBnBF74mTDAPzwcmoTZo5gwB2enWb4XeXQJOs4TKByTqE4qKZOOKlT7u8ZErdCag7gwlKhouhryJTJNMIWgBhpnZl895ebmWCdgSruFiIrWrViSByTqE4qq)FD)(VflYyGmnYc6Agr2MVxvrS3gtwvrWdlJuvSyry3aqvry000gc6xe8WYivf0V6iwSOboaJDda1rupAzbbmSCovfbpSmsvXIfvA2qvrWdlJuvSyrfpqOQi4HLrQkwSi3vUS3gtwvrWdlJuvSyrlEag1MQkcEyzKQIflAGdWawpgRoIaSEmwvry000gIo4XfNGaTbGQpYtSyrLWe1M1CUHieqBkcnrmyGgSRn4Oxq3Iq9ICgfLCPDNIF2N2(vEK1BOneL70Ycoy5miNZ82XUVFDot3RzU29RRwaPBgrhr9SrbDnJO5aUwqMMrblOBr9iSdnMamAviYBTIaAnBF74uDelO7BvfL1PLfCWccKFh)enMCbzAgfvfHDdRfYdhc6(17x)VflYdWOvrTGmnJYfT(qqGC)jIlitZOOQioNBicZEEGfnMXQyYI8dUjAGdWyJTJNMQJOyvmzrx2A2(2XzA70sZSeyCANDYnS2SjAGdWJjIvhrLWBj3WAH8WHOlc2d3kUgByew0ahGXUH1c5Hd1re2y74PPiSX2XtZlBnBF74ueWaZnyWgr9Higbh9IWUH1c5HdbD)69R)3If1hyppkEouhrlTjlYG8GoqImgitJSGUMrKT57vve7TXKvve8WYivflwe2nauvegnnTHG(fbpSmsvb9RoIflAGdWy3aqDe1JwwqadlNtvrWdlJuvSyrLMnuve8WYivflwuXdeQkcEyzKQIflYDLl7TXKvve8WYivflw0IhGrTPQIGhwgPQyXIg4amG1JXQJiaRhJvvegnnTHOdECXjiqBaO6J8elw0sBYekFfc6UROEe216ZrShWjyrppxrLWe1M1CUHieqBkcZEaNGDAdnzrx(aQ(iprOErxeSpTV8ar5oTSGdwodY5mVDS77xNZ09AMRD)6Qfq6Mr0rupBuqxZiAoGRfKPzuWc6wKhGrTjwvry2xyvf13adhyS3mKHI6BGbgyUbldflcnrSQI6BGbgyUbldflwupc7qJjaJwfI8wRiGwZ23ooLHIf09VQIgtUGmnJIQIWgBhpnfHn2oEAMx47Zjc7gwlKhoe09R3V(FlwKhGrRIAbzAgLlA9HGa5(texqMMrrvrCo3qeM98alAmJvXKf5hCt0ahGXgBhpnvhrXQyYIUS1S9TJZ02PLMzjW40o7KByTzt0ahGhteRoIkH3sUH1c5HdrxeShUvCn2WiSOboaJDdRfYdhQJiSX2XttryJTJNM5f((CIagyUbd2iQpeXi4Oxe2nSwipCiO7xVF9)wSiJbY0ilORzezB(EvfXEBmzvfbpSmsvXIfby9ySQIWOPPneDWJlobbAdavFKNyrdCag7gaQJOE0Yccyy5CQkcEyzKQIflQ4bcvfbpSmsvXIfvA2qvrWdlJuvSyrURCzVnMSQIGhwgPQyXIw8amQnvve8WYivflw0ahGbSEmwDeHDdavfHrttBiOFrWdlJuvq)QJyXIfvctuBwZ5gIqaTPiGwZ23oovhr9iSdnMamAviYBTIq9IUiyFA7x5rwVH2q0rupBuqxZikRtll4Gfei)o(jAoGRfKPzuWc6wKhGrTjwvrOjIvvuFdmWaZnyzOyXIYDAzbhSCgKZzE7y33VoNP71mx7(1vlG0nJybDFvvr5oTSGdwodY5mVDS77xNZ09AMRD)6Qfq6MrKhGrRIAbzAgLlA9HGa5(texqMMrrvrioGH8WHGU)D8LJzenMXQyYI8dUjcyG5gmyJO(qeJGJErCo3qeM98alc7gwlKhoe09R3V(FlAGdWyJTJNMQJOyvmzrx2A2(2XzA70sZSeyCAN9NXbC2enWbyehWqE4qDevcVLCdRfYdhIUiypCR4ASHryrdCag7gwlKhouhryJTJNMIWgBhpnVS1S9TJtrdCaEmrS6iw0sBYImipOdKiJbY0ilORzezB(EvfXEBmzvfbpSmsvXIfHDdavfHrttBiOFrWdlJuvq)QJyXIg4am2nauhr9OLfeWWY5uve8WYivflwuPzdvfbpSmsvXIf5UYL92yYQkcEyzKQIflAXdWO2uvrWdlJuvSyrawpgRQimAAAdrh84ItqG2aq1h5jw0ahGbSEmwDev8aHQIGhwgPQyXIfT0MmHYxHGU7kQhHDT(Ce7bCcw0ZZvujmrTznNBicb0MI6dSNhfphQJi0eXGbAWU2GJEbDlcO1S9TJtzOOEe2HgtagTke5TwrOEr1cA6KGXP9Lhi6iQNnkORzenhW1cY0mkybDlkRtll4Gfei)z(enMCbzAgfvfH4agYdhc6(3XxoMre2nSwipCiO7xVF9)wSim7bCc2Pn0KfD5dO6J8elO7UQkQhHDOXeGrRcrERvuUtll4GLZGCoZBh7((15mDVM5A3VUAbKUze5by0QOwqMMr5IwFiiqU)eXfKPzuuveIdyipCiO7FhF5ygradm3GbBe1hIyeC0lIZ5gIWSNhyrJzSkMSi)GBIg4am2y74PP6ikwftw0LTMTVDCM2oT0mlbgN2z)zCaNnrdCagXbmKhouhrLWBj3WAH8WHOlc2d3kUgByew0ahGXUH1c5Hd1re2y74PPiSX2XtZ8cFFordCaEmrS6ic7gwlKhoe09R3V(FlwKXazAKf01mISnFVQIyVnMSQIGhwgPQyXIaSEmwvry000gIo4XfNGaTbGQpYtSOboaJDda1rupAzbbmSCovfbpSmsvXIfv8aHQIGhwgPQyXICx5YEBmzvfbpSmsvXIfT4byuBQQi4HLrQkwSiSBaOQimAAAdb9lcEyzKQc6xDelw0ahGbSEmwDevA2qvrWdlJuvSyXIkHjQnR5CdriG2ueAIyWanyxBWrVGUfnMCbzAgfvfHn2oEAkcBSD80mVW3NteIdyipCiO7FhF5ygry3WAH8WHGUF9(1)BXIq9IQf00jbJtB)kpY6n0gIoI6zJc6AgrZbCTGmnJcwq3IY60YcoybbYFMpraTMTVDCQoIf0DgvfL70YcoybbYD3prlTj7S1BIfDYavh8mOhIm0xUSzBfvf0VC(87x3VC8()7AMZoE(1zTasMRc6QCoZ5m3zEF(773X3DF39tlGK5Syr2MVxvrS3gtwvrWdlJuvSyry3aqvry000gc6xe8WYivf0V6iwSOboaJDda1rupAzbbmSCovfbpSmsvXIfvA2qvrWdlJuvSyrfpqOQi4HLrQkwSi3vUS3gtwvrWdlJuvSyrlEag1MQkcEyzKQIflAGdWawpgRoIaSEmwvry000gIo4XfNGaTbGQpYtSyrLWe1M1CUHi)O4n0xeHzpGtWYqrOjIbd0GDTbh9c6wehzXJsi6PcCRKtehzXo3MSidYd6ajAm5cY0mkQkcBSD80ue2y74t2J(Cyradm3GfTmMamQnZE2sRt70oTtBBdWBtBaJ(IzGtBqL2gCWKByTxA0xmdC2p0bbCBM2KlYjb(qzlToTt70oTlbpkZ0o7ag9fZaN2P8HGkTVZwADm7fHDdRfYdhc6)767)pXI8amAvulitZOCrRpeei3FI6ryxRpxnYIDqSWIEEUI4cY0mkQkAGdWag9fZaRoIg4a8yIy1re2y74PPiSX2XNSh95WIagyUbdMZ5gIIvXKfbmWCdw0YycWO2m7zlToTt70oTTnaVnTbm6lMboTbvABWbtUH1EPrFXmWz)qheWTzAtUiNe4dLT060oTt70Ue8Omt7Sdy0xmdCAdkqL23zlTt70oTtRJzFADADADADADADADADADADADADADADADADADADADADADADADADADADADATiaJ(IzGb3CJINBfrhgOeby0xmdSOBrJzSkMSi)GBIg4am2y74PP6icyG5g8bJINrTPOLXeGrTz2ZwADAN2PDABBaEBAdo)bN)y2x48VFu8mQntBqL2gCWKByTxA0xmdC2p0bbCBM2KlYjb(qzlToTt70oTlbpkZ0UFu8mQnZ)0gZ(cN25Z0UFu8mQntRJzVOyvmzrxA0ZP9fbg7ndrCo3qeWaZnyrLWBj3WAH8WHOdc42mTjxKtcSOboaJDdRfYdhQJOyvmzSiYPpCGdaBaNEWt1hGVe0pLNb)GsBN6GNmOh5b(bu9rEpdYGb)CNYZbhK2o1bpzqpYdCEpm4hqGp4z0tDCWJdenWby2xmdoViFpqLOxgkcWya4erXQyYIagyUbd2iQpebmWCdwe2nSwipCiO)VRV))elYyGmnYc6pJieqBkdfnhW1cY0mkybDl6iQNnkO3FI6ryxRpxnYIZdzAKfL2I6ryhAmby0QqK3AfH6fDaL2xA0xmJ0(pTlbGrFXmeHMRIcouhrCKftO8viO7BrmcokYqXc6(SQIYDAzbhSGa5U7NieqBkdfT0MSZwVjw0jduDWZGEiYqF5YMTvuvq)Y5ZVFD)YX7)VRzo745xN1cizUkORY5mNZCN595VVFhF39D3pTasMZIfzB(EvfXEBmzvfbpSmsvXIfby9ySQIWOPPneDWJlobbAdavFKNyrURCzVnMSQIGhwgPQyXI6rlliGHLZPQi4HLrQkwSOIhiuve8WYivflw0IhGrTPQIGhwgPQyXIg4am2nauhrLMnuve8WYivflw0ahGbSEmwDeHDdavfHrttBiOFrWdlJuvq)QJyXIfvctuBwZ5gI8JI3qFreM9aobldfHMigmqd21gC0lOBrCKfpkHONkWTsorCKf7CBYImipOdKOXKlitZOOQiSX2XttryJTJpzp6ZHfbmWCdw0YycWO2m7zlToTt70oTTnaVnTbm6lMboTbvABWbtUH1EPrFXmWz)qheWTzAtUiNe4dLT060oTt70Ue8OmtBaJ(IzGt78X0(pToM9IWUH1c5Hdb9)D99)NyrEagTkQfKPzuUO1hccK7pr9iSR1NRgzXoiwyr594PdmirCbzAgfvfnWbyaJ(IzGvhrdCaM9fZGZlY3duj6LHIagyUbd2iQpebmWCdwe2nSwipCiO)VRV))eby0xmdm4MBu8CRi6WaLiaJ(IzGfDlAGdWyJTJNMQJOyvmzSiYPpCGdaBaNEWt1hGVe0pLNb)GsBN6GNmOh5b(bu9rEpdYGb)CNYZbhikwftw0tamQntBdG9gAdrCo3qeWaZnyrLWBj3WAH8WHOdc42mTjxKtcSOboaJDdRfYdhQJiGbMBWIwgtag1MzpBP1PDAN2PTTb4TPnGrFXmWPnOsBdoyYnS2ln6lMbo7h6GaUntBYf5KaFOSLwN2PDAN2LGhLzAdy0xmdCAFyGkT)tRJzFADADADADADADADADADATOXmwftwKFWnryJTJNMIWgBhFYE0NdlcyG5gmyoNBikwftw0ahGhteRoIfXi4OidfXrwmHYxHGUVfDe1Zgf07prOErhqP9Lg9fZiT)tB)kpYkQhHDOXeGrRcrERvupc7A95QrwCEitJSO0w0CaxlitZOGf0TiJbY0ilO)mIf09BvfL1PLfCWcceh)eL70YcoybbYD3priG2ugkAPnzNTEtSOtgO6GNb9qKH(YLnBROQG(LZNF)6(LJ3)FxZC2XZVoRfqYCvqxLZzoN5oZ7ZFF)o(U77UFAbKmNflY289QkI92yYQkcEyzKQIflcW6XyvfHrttBi6GhxCcc0gaQ(ipXIg4am2nauhr9OLfeWWY5uve8WYivflwuXdeQkcEyzKQIflQ0SHQIGhwgPQyXICx5YEBmzvfbpSmsvXIfT4byuBQQi4HLrQkwSOboady9yS6ic7gaQkcJMM2qq)IGhwgPQG(vhXIflQeMO2SMZne5hfVH(Iim7bCcwgkcnrmyGgSRn4Oxq3I4ilEucrpvGBLCI4il252KfzqEqhirEagTkQfKPzuUO1hccK7pr9iSR1NRgzXoiwyrppxrCbzAgfvfnWbyaJ(IzGvhry3WAH8WHG()U(()tuSkMmwe50hoWbGnGtp4P6dWxc6NYZGFqPTtDWtg0J8a)aQ(iVNbzWGFUt55GdsBN6GNmOh5boVhg8diWh8m6Poo4XbIagyUbd2iQpebmWCdweGXaWjIIvXKfnMXQyYI8dUjcWOVygyWn3O45wr0Hbkrag9fZal6w0ahGzFXm48I89avIEzOiGbMBWG5CUHOyvmzrdCagBSD80uDevcVLCdRfYdhIoiGBZ0MCrojWIIvXKfDPrpN2xeyS3meX5Cdradm3GfbmWCd(GrXZO2u0YycWO2m7zlToTt70oTTnaVnTbN)GZFm7lC(3pkEg1MPnOsBdoyYnS2ln6lMbo7h6GaUntBYf5KaFOSLwN2PDAN2LGhLzA3pkEg1M5FAJzFHt78zA3pkEg1MP1XSx0ahGXUH1c5Hd1reWaZnyrlJjaJAZSNT060oTt7022a820gWOVyg40guPTbhm5gw7Lg9fZaN9dDqa3MPn5ICsGpu2sRt70oTt7sWJYmTZoGrFXmWPnOavA)LT0oTt706y2NwNwNwNwNwNwNwNwNwNwNwNwNwNwNwNwNwNwNwNwNwNwNwNwNwNwNwNwlcBSD80ue2y74t2J(CyrdCaEmrS6iweJGJImuKXazAKf0FgrCKftO8viO7BrO5QOGd1r0rupBuqV)e1JWUwFUAKfNhY0ilkTfH6fDaL2xA0xmJ0(oTlbGrFXme1JWo0ycWOvHiV1kAm5cY0mkQkcBSD80ue2y74t2J(Cyradm3GfTmMamQnZE2sRt70oTtBBdWBtBaJ(IzGtBqL2gCWKByTxA0xmdC2p0bbCBM2KlYjb(qzlToTt70oTlbpkZ0o7ag9fZaN2P8HGkT)YwADm7fHDdRfYdhc6)767)pXIMd4AbzAgfSGUflO7xQkkRtll4Gfeio(jk3PLfCWccK7UFIwAt2zR3el6KbQo4zqpezOVCzZ2kQkOF5853VUF549)31mND88RZAbKmxf0v5CMZzUZ8(833VJV7(U7NwajZzXISnFVQIyVnMSQIGhwgPQyXIWUbGQIWOPPne0Vi4HLrQkOF1rSyrdCag7gaQJOE0Yccyy5CQkcEyzKQIflQ0SHQIGhwgPQyXIkEGqvrWdlJuvSyrURCzVnMSQIGhwgPQyXIw8amQnvve8WYivflw0ahGbSEmwDeby9ySQIWOPPneDWJlobbAdavFKNyXIkHjQnR5Cdr(rXBOVicZEaNGLHIqtedgOb7Ado6f0TioYIhLq0tf4wjNioYIDUnzrgKh0bsKhGrRIAbzAgLlA9HGa5(tupc7A95QrwSdIfwuEpE6adsexqMMrrvrdCagWOVygy1r0ahGhteRoIWUH1c5Hdb9)D99)NOXmwftwKFWnrag9fZadU5gfp3kIomqjcWOVygyr3IagyUbdMZ5gIIvXKfnWbySX2Xtt1reWaZnyrlJjaJAZSNT060oTt7022a820gWOVyg40guPTbhm5gw7Lg9fZaN9dDqa3MPn5ICsGpu2sRt70oTt7sWJYmTbm6lMboTpmqL23P1XSpToToToToToToToToToTwuSkMSONayuBM2ga7n0gI4CUHiGbMBWIkH3sUH1c5HdrheWTzAtUiNeyrdCag7gwlKhouhrXQyYyrKtF4aha2ao9GNQpaFjOFkpd(bL2o1bpzqpYd8dO6J8EgKbd(5oLNdoqe2y74PPiSX2XNSh95WIg4am7lMbNxKVhOs0ldfbmWCdgSruFicyG5gSyrgdKPrwq)zeXrwmHYxHGUVfnhW1cY0mkybDlcb0MYqrhr9Srb9(t0yYfKPzuuve2y74PPiSX2XNSh95WIagyUblAzmbyuBM9SLwN2PDAN22gG3M2ag9fZaN2GkTn4Gj3WAV0OVyg4SFOdc42mTjxKtc8HYwADAN2PDAxcEuMPnGrFXmWPD(yAFNwhZEry3WAH8WHG()U(()tSOEe216ZvJS48qMgzrPTOEe2HgtagTke5TwrOErhqP9Lg9fZiTVtB)kpYkIrWrrgkwq3oQQOSoTSGdwqo(jk3PLfCWccK7UFIm0d4eZsBm7VSzBfvf0TC(81mV((V(9D9A3ZzE)slGKjJG(LZDZ8F)F(713)13o(2X3AbKmDf0vbDlOUc6wSOL2KD26nXIozGQdEg0drg6lx2STIQc6woNjZ93)RZN)(D87765RAbKmze0VC(TJ3))FN7(19(C3ZD)0cizYiORY53xVVF)FUBMRV6(kZ7BTasMRIfzB(EvfXEBmzvfbpSmsvXIfby9ySQIWOPPneDWJlobbAdavFKNyrdCag7gaQJOE0Yccyy5CQkcEyzKQIflQ4bcvfbpSmsvXIfvA2qvrWdlJuvSyrURCzVnMSQIGhwgPQyXIw8amQnvve8WYivflw0ahGbSEmwDeHDdavfHrttBiOFrWdlJuvq)QJyXIfvctuBwZ5gI8JI3qFreM9aobldfHMigmqd21gC0lOBrCKfpkHONkWTsorCKf7CBYImipOdKOEe2HgtagTke5TwrJjxqMMrrvryJTJNMIWgBhpnZl895eHDdRfYdhc6)(1FMZIf5by0QOwqMMr5IwFiiqU)e1JWUwFUAKf7GyHfL3JNoWGeXfKPzuuv0ahGbm6lMbwgkAGdWJjIvhrag9fZal6weWaZnyWgr9HiGbMBWIagyUbdMZ5gIIvXKfHDdRfYdhc6)(1FMZIam6lMbgCZnkEUveDyGseNZneHzppWIgZyvmzr(b3enWby2xmdoViFpqLOxgkAGdWyJTJNMQJOyvmzSiYPpCGdaBaNEWt1hGVe0pLNb)GsBN6GNmOh5b(bu9rEpdYGb)CNYZbhikwftw0LTMTVDCM2oT0mlbgN2zNCdRnBIkH3sUH1c5HdrpGDBhJsA)C(spw0ahGXUH1c5Hd1re2y74PPiSX2XtZ8cFFoXIyeCuKHI4ilMq5Rqq33IoI6zJc69NiuVOhWUP9Z5l9402VYJSI6ryxRpxnYIZdzAKfL2IqaTPmu0CaxlitZOGf0TiJbY0ilO)mIf0)NQIY60Ycoyb54NOCNwwWbliqU7(jYqpGtmlTXS)YMTvuvq3Y5ZVFD)YX7)VRzo74zhVQfqY8wq)Y5mxp)YrhF))9)6)833TwajZzbDvoN5CM7mVp)99747UVV(RfqY0vqDf0TyrlTj7S1BIfDYavh8mOhIm0xUSzBfvf0TC(87x3VC8()7AMZoE(1zTasMmc6xoF()(87Rxp)D9)9))NJAbKmDf0v58RmVUE969xMUzUF)6vxTasMRIfzB(EvfXEBmzvfbpSmsvXIfHDdavfHrttBiOFrWdlJuvq)QJyXIg4am2nauhr9OLfeWWY5uve8WYivflwuPzdvfbpSmsvXIfv8aHQIGhwgPQyXICx5YEBmzvfbpSmsvXIfT4byuBQQi4HLrQkwSOboady9yS6icW6XyvfHrttBi6GhxCcc0gaQ(ipXIfvctuBwZ5gI8JI3qFreM9aobldfHMigmqd21gC0lOBrCKfpkHONkWTsorCKf7CBYImipOdKipaJwf1cY0mkx06dbbY9NOEe216ZvJSyhelSONNRiUGmnJIQIg4amGrFXmWYqrCo3qeM98alAGdWJjIvhrJzSkMSi)GBIagyUbd2iQpebmWCdweGrFXmWGBUrXZTIOdduIam6lMbw0TOboaZ(IzW5f57bQe9YqrdCagBSD80uDefRIjl6YwZ23ootBNwAMLaJt7StUH1MnrLWBj3WAH8WHOhWUTJrjTFoFPhlAGdWy3WAH8WH6ikwftglIC6dh4aWgWPh8u9b4lb9t5zWpO02Po4jd6rEGFavFK3ZGmyWp3P8CWbIagyUbdMZ5gIIvXKfHn2oEAkcBSD808YwZ23oofHDdRfYdhc6)(1FMZIfzmqMgzb9NreJGJImu0CaxlitZOGf0TOJOE2OGE)jAm5cY0mkQkcBSD80ue2y74P5LTMTVDCkc7gwlKhoe0)9R)mNflQhHDT(C1ilopKPrwuAlQhHDOXeGrRcrERveQx0dy30(58LECAFzRz7BhNI4ilMq5Rqq33IqZvrbhQJieqBkdflO)BvfL1PLfCWccK)mNfL70Ycoy5miDp3T71R))VU(617Z3V0ciD7kcb0MYqrlTj7S1BIfDYavh8mOhIm0xUSzBfvf0TC(TJ3))FN7(19(C3ZD)0cizYiwKT57vve7TXKvve8WYivflwe2nauvegnnTHG(flYDLl7TXKvve8WYivflw0ahGbSEmwDev8aHQIGhwgPQyXIw8amQnvve8WYivflw0ahGXUbG6iQ0SHQIGhwgPQyXI6rlliGHLZPQi4HLrQkwSiaRhJvvegnnTHOdECXjiqBaO6J8elwujmrTznNBiYpkEd9fry2d4eSmueAIyWanyxBWrVGUfXrw8OeIEQa3k5eXrwSZTjlYG8GoqPDhr9iSdnMamAviYBTIagyUbxJSyrlJjaJAZSNT060oTt7022a8202qpoY)02THZ)0EgMPnOsBdmr8tm7bCItBhJs2pKR1NlkhkBP1PDAN2PTTb4TPT3nTbvABOhhPD(mTDB40oFM2ZWmToTt70oTTnaVnTxffCN2CGtBqL23h(xANptBdo4lBWg6588mAA2Pnh4SFzEGF(pYJEQ(mh8SQbb(GNU4jd(b4dob9iB5dU)(o8V060oTt7022a820g2N1Z3BhrAdQ0(pTZV027M25xA39WZK25xAVkk4oT5aN25xAFF4))P1PDAN2PTTb4TPTRhntBqL2gyIyN2ogLSFixRpxuou2sRt70oTtB0sA76rZ0(Ws7ZFPnBmMP1PDAN2PDAN2PDA76rZ0guP95V060oTt70oS4aTK2UE0mTZht7RFPnBmMP1PDAN2PDAN2PDA76rZ0guP91V060oTt70oM9P1PDAN2PTTb4TPTRhnVSfllPnOsBxpAM25ds7ZFh(xADAN2PDANwN2PDAN22gG3M2lHhZPnOsBVBANFP99HFnTZV0(AANFP9QOG70MdCADAN2PDANwN2PDAN22gG3M2GZFW5p48FP4nHJjJtBqL2gyI4oJLLSFixRpxuou(N2hIAdBA7CXBchtgFOSLwN2PDAN2OL0EP4nHJjJtBqbQ0EISPnBmMP1PDAN2PDAN2PDAVu8MWXKXPnOs7V060oTt70oM9P1PDAN2PTTb4TP9sXBc6WBrtZ0guP9sXBchtgN25xA)F4zs78lT9UPD(L2RIcUtBoWP1PDAN2PDj4rzM2l2wRKDyFwpFVDePD(L2UE08YwSSK25Z0Ej8yoTZNP9sXBc6WBrtZSLwhZErEagTkQfKPzuUO1hccK7pr9iSR1NRgzXoiwyrpparCbzAgfvfnWby32XOOoICBhJcNZne09lr9JINrTPO7UIagyUbd2iQpebmWCdw0ahGDBhJcNZnuhradm3GbZ5CdrXQyYI4CUHiGbMBWIgZyvmzr(b3e52ogfWn3O45wr0HbkrXQyYICA7yuefRIjJfzaONvb70tp3J8ebmWCd(GrXZO2u0YycWO2m7zlToTt70oTTnaVnTn0JJ8pTDB48pTNHzAdQ02ate)eZEaN402XOK9d5A95IYHYwADAN2PDABBaEBA7DtBqL2g6XrANptB3goTZNP9mmtRt70oTtBBdWBt7vrb3Pnh40guP99H)L25Z02Gd(YgSHEoppJMMDAZbo7xMh4N)J8ONQpZbpRAqGp4PlEYGFa(GtqpYw(G7VVd)lToTt70oTTnaVnTH9z9892rK2GkT)t78lT9UPD(L2Dp8mPD(L2RIcUtBoWPD(L23h()FADAN2PDABBaEBA76rZ0guPTbMi2PTJrj7hY16ZfLdLT060oTt70gTK2UE0mTpS0(8xAZgJzADAN2PDAN2PDAN2UE0mTbvAF(lToTt70oTdloqlPTRhnt78X0(6xAZgJzADAN2PDAN2PDAN2UE0mTbvAF9lToTt70oTJzFADAN2PDABBaEBA76rZlBXYsAdQ021JMPD(G0(83H)LwN2PDAN2P1PDAN2PTTb4TP9s4XCAdQ027M25xAFF4xt78lTVM25xAVkk4oT5aNwN2PDAN2P1PDAN2PTTb4TPn48hC(do)xkEt4yY40guPTbMiUZyzj7hY16ZfLdL)P9HO2WM2ox8MWXKXhkBP1PDAN2PnAjTxkEt4yY40guGkTNiBAZgJzADAN2PDAN2PDAN2lfVjCmzCAdQ0(lToTt70oTJzFADAN2PDABBaEBAVu8MGo8w00mTbvAVu8MWXKXPD(L2)hEM0o)sBVBANFP9QOG70MdCADAN2PDANwN2PDAN22gG3M2W(SaTttBqL2gyIyqhElB8cFwz)qUwFUOCOSLwN2PDAN2LGhLzAVyBTs2H9z9892rK25xA76rZlBXYsANpt7LWJ50oFM2lfVjOdVfnnZw(d7Zc0on)5YisRJzViGbMBWqE4quADADATiGbMBWIwgtag1MPD2ZwADAN2PDABBaEBA76rZ0guPTbMi2PTJrj7hY16ZfLdLT060oTt70Ue8OmtBxpAM2hgOs7RFP1XSxKB7yue9jcWya4erXQyYIg4a8yIy1rSigbhfzOi0CvuWH6i6iQNnkNp399vh))VEF(157UDDulG0nJiGbMBW1il2aU9EoefRIjlAm5cY0mkQkcyG5gSOLXeGrTzAN9SLwN2PDAN2LGhLzAZLrKwhZEXIq9IO2WM2xAd)QiTbD4TOPPid9aoXS0gZ(lB2wrvbDlOBb9lNF)DUB33FFFxFF)Q7FxTasMZc6QCoZ3RZDVF197)873)NVQfqY8wqDf0TyrZbCTGmnJcwq3ImgitJSCoZ1UV(()7E)9D)61FgTas3xIf0)VQIaA2wrvbDlNF9L5AxhZ86R7)vh)(CulGKPRG(LZVD8())7C3VU3N7EU7BTasMxcQRGUflQeMO2SMZneXrw8OeIY60YcoybbY9xxrEagTkQfKPzuUO1hccK7pr5oTSGdwqGCF)jIJS4rje9SjhLfpq4Wp13FAID4Nl8o5PrXJD4lIEK3HRrw8OeyhMY3dFjatWTgBeCNwPpkI6ryhAmby0QqK3AfXfKPzuuv0ahx2gtwDeb0gtw0TiG2yYNCJINBfrhgOen9WbwvbDlIAdBA7CXBchtglwSOJOE2OGo)jAoGRfKPzuWc6weQxe1g20(wKXazAKf01pr2MVxvrS3gtwvrWdlJuvSyry3aqvry000gc6xSOboaJDda1r0ahGbSEmwDev8aHQIGhwgPQyXICx5YEBmzvfbpSmsvXIfT4byuBQQi4HLrQkwSOsZgQkcEyzKQIflQhTSGagwoNQIGhwgPQyXIaSEmwvry000gIo4XfNGaTbGQpYtSyXc6)QQIY60YcoybbsMFr5oTSGdwqGCF)jQeMO2SMZneXrw8OeI8amAvulitZOCrRpeei3FIaA2wrvbDlNF9L5AxhZ86R7)vh)(CulGKPRG(LZVD8())7C3VU3N7EU7BTasMxcQRGUflIJS4rje9SjhLfpq4Wp13FAID4Nl8o5PrXJD4lIEK3HRrw8OeyhMY3dFjatWTgBeCNwPpkIq9IO2WM2)IoI6zJc68NO5aUwqMMrblOBrCbzAgfvfnWXLTXKvhraTXKf9lcOnM8j3O45wr0HbkrtpCGvvq3IO2WM2ox8MWXKXIflYyGmnYc66NiBZ3RQi2BJjRQi4HLrQkwSiSBaOQimAAAdb9lw0ahGXUbG6iAGdWawpgRoIkEGqvrWdlJuvSyrURCzVnMSQIGhwgPQyXIw8amQnvve8WYivflweG1JXQkcJMM2q0bpU4eeOnau9rEIf1JwwqadlNtvrWdlJuvSyrLMnuve8WYivflwSOEe2HgtagTke5TwXc6VRQIYDAzbhSGa5((tujmrTznNBiIJS4rje5by0QOwqMMr5IwFiiqU)eXrw8OeIE2KJYIhiC4N67pnXo8ZfEN80O4Xo8frpY7W1ilEucSdt57HVeGj4wJncUtR0hfr9iSdnMamAviYBTIq9IO2WM2xfDe1Zgf05prZbCTGmnJcwq3I4cY0mkQkAGJlBJjRoIaAJjl6QiG2yYNCJINBfrhgOen9WbwvbDlIAdBA7CXBchtglwSiJbY0ilORFISnFVQIyVnMSQIGhwgPQyXIWUbGQIWOPPne0VyrdCag7gaQJOboady9yS6iQ4bcvfbpSmsvXIf5UYL92yYQkcEyzKQIflAXdWO2uvrWdlJuvSyrawpgRQimAAAdrh84ItqG2aq1h5jwupAzbbmSCovfbpSmsvXIfvA2qvrWdlJuvSyXIaA2wrvbDlNF9L5AxhZ86R7)vh)(CulGKPRG(LZVD8())7C3VU3N7EU7BTasMxcQRGUflwq)zuvuwNwwWblOm)IkHjQnR5CdrCKfpkHiGMTvuvq3Y5xFzU21XmV(6(F1XVph1ciz6kOF58BhV)))o39R795UN7(wlGK5LG6kOBXI8amAvulitZOCrRpeei3FIYDAzbhSGa5((tupc7qJjaJwfI8wRioYIhLq0ZMCuw8aHd)uF)Pj2HFUW7KNgfp2HVi6rEhUgzXJsGDykFp8Lamb3ASrWDAL(Oic1lIAdBA3v0rupBuqN)enhW1cY0mkybDlIlitZOOQOboUSnMS6icOnMSOUIaAJjFYnkEUveDyGs00dhyvf0TiQnSPTZfVjCmzSyXImgitJSGU(jY289QkI92yYQkcEyzKQIflcW6XyvfHrttBi6GhxCcc0gaQ(ipXIg4am2nauhrdCagW6Xy1ruPzdvfbpSmsvXIf5UYL92yYQkcEyzKQIflAXdWO2uvrWdlJuvSyry3aqvry000gc6xSOE0Yccyy5CQkcEyzKQIflQ4bcvfbpSmsvXIflwq)NvvuwNwwWblO7VUIkHjQnR5CdrCKfpkHiGMTvuvq3Y5xFzU21XmV(6(F1XVph1ciz6kOF58BhV)))o39R795UN7(wlGK5LG6kOBXI8amAvulitZOCrRpeei3FIYDAzbhSGa5((tupc7qJjaJwfI8wRioYIhLq0ZMCuw8aHd)uF)Pj2HFUW7KNgfp2HVi6rEhUgzXJsGDykFp8Lamb3ASrWDAL(Oic1lIAdBANr0rupBuqN)enhW1cY0mkybDlIlitZOOQOboUSnMS6icOnMSOmIaAJjFYnkEUveDyGs00dhyvf0TiQnSPTZfVjCmzSyXImgitJSGU(jY289QkI92yYQkcEyzKQIflcW6XyvfHrttBi6GhxCcc0gaQ(ipXIg4am2nauhrdCagW6Xy1ruPzdvfbpSmsvXIf5UYL92yYQkcEyzKQIflAXdWO2uvrWdlJuvSyry3aqvry000gc6xSOE0Yccyy5CQkcEyzKQIflQ4bcvfbpSmsvXIflwq)Vvv0sBYekFfc6)xupc7A95QrwSONhwKhGrRIAbzAgLlA9HGa5(teAIyWanyxBWrVGUf1JWo0ycWOvHiV1kIlitZOOQOPhoWQkOBrKlQG40UTK2SXiTpWxCYmW402zRhoelweQxKbBBRcSOJOE2OC(917xxp)(((()(9DMFTasxhfL70Ycoy5miV)UE(17V7))3o649xxTas3mIwAtwKb5bDGs7oIMd4AbzAgfSGUfL1PLfCWYzqo399vh)FF(vMmV)YC(tlG0TRiJbY0ilNpF74F3UFxp)96)LJ)V0ciDFjY289QkI92yYQkcEyzKQIflc7gaQkcJMM2qq)If5UYL92yYQkcEyzKQIflAGdWawpgRoIknBOQi4HLrQkwSOfpaJAtvfbpSmsvXIfnWbySBaOoIaSEmwvry000gIo4XfNGaTbGQpYtSOE0Yccyy5CQkcEyzKQIflQ4bcvfbpSmsvXIflQeMO2SMZneXrwSyXIwjO7U)3ILa

The group consists of the following auras:

Aura Name Functionality
Pain Low Green pain bar for pain < 60 (don't use Soul Cleave if you don't need immediate healing)
Pain Medium Yellow pain bar for 60 <= pain < 80 (you can use Soul Cleave)
Pain High Red pain bar for pain >= 80 (you need to dump pain to avoid overcapping)
Pain Text Text indicator for current pain on pain bar
Demon Spikes active Progress bar for active demon spikes (physical damage reduction)
Empower Wards active Progress bar for active Empower Wards (magical damage reduction)
Meta active Progress bar for active Metamorphosis, also cites a random Illidan quote when activating
Fiery Brand active Progress bar for active Fiery brand on current target
Fiery Brand CD Progress bar showing the cooldown of Fiery Brand
Fiery Brand available Icon when Fiery Brand is not on cooldown
Meta CD Progress bar showing the cooldown of Metamorphosis
Meta available Icon when Metamorphosis is not on cooldown
Trinkets CD Progress bar showing the cooldown of Valor Medal of the First War
Trinkets available Icon when Valor Medal of the First War is not on cooldown
DS Charge 2 recharge Progress bar showing the remaining cooldown of Demon Spikes charge 2
DS Charge 2 avail Bar showing that Demon Spikes charge 2 is available
DS Charge 1 recharge Progress bar showing the remaining cooldown of Demon Spikes charge 1
DS Charge 1 avail Bar showing that Demon Spikes charge 1 is available
Emp Wards avail Bar showing that Empower Wards is available
Emp Wards Cooldown Progress bar showing the remaining cooldown of Empower Wards
Soul Cleave Healing Progress bar comparing player health bar with Soul Cleave healing to avoid overhealing
Soul 1-5 Textures showing current amount of soul fragments
Gloves Text indicator showing current amount of legendary glove stacks
There are some custom triggers and duration functions involved, mainly to request cooldowns und durations of Demon Spikes charges.

Changelog

20.8.2016 Uploaded first version
6.10.2016 Added Soul Cleave healing indicator
1.2.2017 Added Soul fragment indicator, added indicator for legendary gloves, added timewalking trinket indicator


Admin Cheat Sheet

This is an admin cheat sheet for myself.

Services to check

GNU Screen Shortcuts

Shortcut Function
CTRL + a, d Detach current session
CTRL + a, n Go to next session

tar

Command Function
tar cfvz archive.tar.gz folder Creates archive.tar.gz and inserts folder into it
tar xfvz archive.tar.gz Extracts archive.tar.gz


Server Update to 2.5.0

Minecraft Base

I just updated the server to version 2.5.0!

Please update your clients, so that you can play again.

(more…)