NEWS
Beta Test js-controller 3.0.x auf GitHub
-
@Kueppert sieht nach Adapter aus. Da wird versucht in eine bereits geschlossene Verbindung zu schreiben. Am besten GitHub issue beim Adapter anlegen
-
Ich habe mehrere Warnmeldungen:
Bei ODL:odl.0 2020-04-13 09:19:51.377 warn (25330) Got no data for DEZ3192 odl.0 2020-04-13 09:19:51.376 warn (25330) SyntaxError: Unexpected token < in JSON at position 0 odl.0 2020-04-13 09:19:51.376 warn (25330) Error parsing response from server!Bei sourceanalytics:
sourceanalytix.0 2020-04-13 09:19:50.716 warn (25736) This object will not be created in future versions. Please report this to the developer. sourceanalytix.0 2020-04-13 09:19:50.715 warn (25736) Object sonoff__0__Stecker3__ENERGY_Power.2020.costs.weeks.53 is invalid: obj.common.name has an invalid type! Expected "string" or "object", received "number" sourceanalytix.0 2020-04-13 09:19:50.654 warn (25736) This object will not be created in future versions. Please report this to the developer. sourceanalytix.0 2020-04-13 09:19:50.654 warn (25736) Object sonoff__0__Stecker3__ENERGY_Power.2020.meterReadings.weeks.53 is invalid: obj.common.name has an invalid type! Expected "string" or "object", received "number" sourceanalytix.0 2020-04-13 09:19:50.565 warn (25736) This object will not be created in future versions. Please report this to the developer. sourceanalytix.0 2020-04-13 09:19:50.565 warn (25736) Object sonoff__0__Stecker3__ENERGY_Power.2020.consumed.weeks.53 is invalid: obj.common.name has an invalid type! Expected "string" or "object", received "number" sourceanalytix.0 2020-04-13 09:19:50.487 warn (25736) This object will not be created in future versions. Please report this to the developer. ...gekürzt ...Bei WLED:
wled.0 2020-04-13 09:22:17.401 warn (25893) This value will not be set in future versions. Please report this to the developer. wled.0 2020-04-13 09:22:17.401 warn (25893) State value to set is invalid for wled.0.cc50e304f753.seg.0.col.0: The state is missing the required property val! wled.0 2020-04-13 09:22:17.394 warn (25893) This value will not be set in future versions. Please report this to the developer. wled.0 2020-04-13 09:22:17.392 warn (25893) State value to set is invalid for wled.0.cc50e304f753.seg.0.ix: The state is missing the required property val!Alle Adapter sind auf grün und alles scheint zu laufen.
-
@apollon77
Moin ... also bezüglich meiner Sonos-Adapter Probleme, gab es heute Nacht eine "spontane Selbstheilung" ... was auch immer das Problem war, diese haben sich in Luft aufgelöst ....:face_with_rolling_eyes: :thinking_face: -
Aktuelle Test Version 3.0.6 Veröffentlichungsdatum 08.04.2020 Github Link npm install ioBroker/ioBroker.js-controllerHallo in die Tester-Runde,
wie im neuen Release-Cycle für den js-controller geplant starten wir heute den Beta Test des neuen js-controller 3.0 (Releasename "Elena"). Wie auch bei den letzten beiden Versionen starten wir die erste Teststufe direkt von GitHub. Also bitte nur mitmachen wenn Ihr wisst was das heisst :-) Aber auch der Weg zurück ist unten beschrieben.
Nach dem frühzeitigen aus für Node.js 8 bereits letzten November setzt diese neue Version nun Node.js 10.x voraus und funktioniert ebenso mit Node.js 12.x und, nach aktuellem Stand, auch mit der Ende April kommenden Node.js 14.x. Wir werden mit diesem Release auch die empfohlene Node.js Version für ioBroker auf 12.x anheben.
Diese Version bringt einige Features mit, ist aber ebenso der Beginn um "unter der Haube" einiges zu vereinheitlichen und Wildwuchs in der Umsetzung einiger Adapter etwas einzugrenzen. Es gibt allerdings auch neue Features mit die die Adapter-Entwicklung vereinfachen und Hürden abbauen. Aus diesem Grund ist auch die Liste der Themen welche vor allem für Entwickler relevant sind diesmal recht lang.
Allerdings werden Aktionen von Adaptern die eigentlich den Regeln widersprechen jetzt über Logging sichtbar gemacht. Bitte unterstützt hier und legt bei den relevanten Adaptern Issues an das diese Dinge gefixt werden können. Für den js-controller 3.1 (ca. September 2020) ist es geplant einige dieser "verbotenen Aktionen" auch wirklich zu verhindern. Details sehen wir dann.Der js-controller hat jetzt standardmässig Sentry als Fehler-Reporting eingebaut und aktiviert. Wenn also der js-controller mit einer Fehlermeldung abstürzt (und nur dann!) werden die Fehlerdetails anonymisiert an einen von uns selbst in Deutschland betriebenen Sentry-Server gemeldet. IPs o.ä. personalisierte Daten werden nicht gespeichert. Dieses Fehler-Reporting hilft uns bei Crashes schneller und genauer zu sehen was los ist und solche Fehler noch schneller beheben zu können. Bitte legt für Crashed die Ihr seht bitte trotzdem weiterhin GitHub-Issues an und unterstützt uns indem Ihr das Fehler-Reporting aktiviert lasst. Weitere Details und wie es deaktivierbar ist findet Ihr unter https://github.com/ioBroker/ioBroker.js-controller/blob/master/README.md#error-reporting-via-iobroker-sentry
Darüber hinaus gibt es natürlich viele Optimierungen und Fixes. Mehr dazu weiter unten und im Changelog. Ich hoffe auch diesmal auf Eure tatkräftige Unterstützung, sodass der Latest-Release dann genau so reibungslos verläuft wie bei der 2.2!
Ich bedenke mich diesmal besonders bei @foxriver76, @AlCalzone und natürlich @Bluefox für die aktive Mitarbeit an dieser Version!
Der js-controller 3.0 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1/2.2 ist problemlos möglich. Nur die Node.js Version muss jetzt mindestens 10.x sein, wie oben bereits ausgeführt. Wer überlegt die Node.js Version anzuheben bitte weiter unten im Abschnitt "Was ist zu testen" lesen :-)
Installation
VOR der Installation
Wie bei jedem Test dieser Art: Bitte macht ein Backup!iobroker backupbzw kopieren desiobroker-dataVerzeichnisses reichen an sich aus. Bitte nicht das node_modules Verzeichnis einfach kopieren, da sonst symbolische Links kaputt gehen können, was zu größeren Problemen danach führt. Die alte Version des js-controller kann im Notfall einfach wieder pernpm install iobroker.js-controller@versioninstalliert werden und sollte alles wieder herstellen.Windows
Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden, darf der js-controller nicht mit npm aktualisiert werden. Es wird eine neue Version des Windows Installers geben, die das Update des js-controllers mit wenigen Mausklicks ermöglicht. Wir updaten dazu hier im Thread.
Linux
Für den Beta-Test muss der js-controller direkt per npm installiert werden. Dazu bitte den ioBroker auf dem Server beenden und dann in einer Shell UNBEDINGT in das ioBroker Verzeichnis wechseln. Dann mittels
npm install ioBroker/ioBroker.js-controllerden Controller manuell aktualisieren. Bevor ihr loslegt, lest aber bitte erst noch die folgenden Hinweise! Der zweite Post in diesem Thread ist für eine FAQ reserviert. Bitte schaut auch dort gern einmal rein.Achtung: Slave-Systeme zuerst!
Bei einem Multi-Host-System, welches auf js-controller 2.2 läuft ist es beim Update auf Version 3.0 empfohlen, zuerst die Slave-Systeme zu aktualisieren. Der Master wird als letztes aktualisiert!Bei Updates von Master/Slave-Systemen mit js-controller 1.5 oder früher auf die 3.0 müssen zwingend zuerst die Slaves und der Master als letztes aktualisiert werden. Die Slaves bleiben nach dem Update offline und werden erst wieder funktionieren wenn auch der Master auf die 3.0 aktualisiert wurde!
Nötige Adapter-Aktualisierungen
- Pushover funktioniert in Version 1.1.x. Wer Version 1.2.x drauf hat könnte Probleme bekommen und sollte bitte 1.3.0 vom GitHub versuchen ob die Probleme damit behoben werden.
- tr-064 in Version 4.0.0 ist nötig
- tr-064-community wird nun offiziell nicht mehr funktionieren.
- Die soef Adapter "firetv" und "wifilight" funktionieren nicht mehr und haben Updates bekommen: Bitte wifilight 1.1.0 bzw firetv 1.0.0 nutzen. Falls jemand "wifilight-community" oder "firetv-community" nutzt bitte wieder zurück auf die anderen wechseln.
- Der soef Adapter "Lightify" funktioniert ebenso nicht mehr. Da Lightify als Platform allerdings in ein paar Monaten nicht mehr weiter betrieben wird haben wir entscheiden hier keinen Aufwand mehr reinzustecken. Am besten die Geräte über zigbee direkt anbinden.
Es werden aber, wie oben ausgeführt, einige Adapter ggf Warnungen ins Log schreiben. Hier ist beispielsweise radar2 schon bekannt. Falls das Problematisch ist ist aktuell die einzige Option das Loglevel der Instanz auf "Error" zu setzen.
Fehler
Wenn bei der Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer (iobroker fixwer schon einen js-controller 2.x hat, alternativ weiterhin manuell viacurl -sL https://iobroker.net/fix.sh | bash -) nutzen und die Installation wiederholen.Falls es auch danach noch Fehler gibt, bitte die Installation erneut mittels
sudo -H -u iobroker npm install ioBroker/ioBroker.js-controllerversuchen. Bitte berichtet solche Fälle hier im Thread.Nach der Installation
Nach der Installation den ioBroker wieder starten (z.B. mittelsiobroker start).Wenn alles klappt merkt Ihr außer der höheren Versionsnummer in der Host-Ansicht im Admin keinen Unterschied. Alles funktioniert weiterhin wie vorher. Alle Adapterinstanzen starten und funktionieren. Wenn das so ist hat alles geklappt. Die großen Änderungen sind alle "Unter der Haube" versteckt.
Falls im Log Warn-Meldungen auftauchen mit dem Hinweis diese an den Entwickler zu senden, dann bitte schauen welcher Adapter es ist und entsprechend dort Issues bitte anlegen!
Was hat sich geändert, was besonders ansehen/testen?
Neben einiger weiterer Bugfixes gibt es folgende Änderungen und Fixes zu erwähnen:
- Der neue js-controller kann erkennen wenn es ein Node.js Update gab durch welches ggf, Adapter nicht mehr funktionieren und sollte diese automatisch reparieren (rebuilden). Wer also überlegt in dem Zuge des Tests seine Node.js Version anzuheben bitte mal explizit NICHT die übliche Anleitung nach dem Node-js update mit dem Rebuild befolgen sondern ioBroker einfach nach dem Node.js Update starten. Interessant ist ob sich alles selbst "heilt" :-)
- Der js-controller prüft jetzt vor jedem Start eines Adapters wieviel RAM noch frei ist und warnt im Log falls dies zu wenig ist. Die Limits sind 100MB (Warnung) bzw. 50MB (Fehler) und dies soll verhindern das mehr Adapter-Prozesse genutzt werden als RAM verfügbar ist. Hier sind wir gespannt auf Eure berichte.
- Logfiles sollten jetzt wirklich nach dem täglichen rotieren auf Linux-Systemen als .gz Dateien abgelegt werden.
Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:
Generell ist zu testen, ob alles noch so funktioniert wie vorher auch. Das ist das wichtigste!
Wie Fehler melden?
Wer sich unsicher ist, ob ein Fehler vorliegt, sollte am besten hier im Thread das Problem beschreiben. So können wir alle versuchen, das Problem nachzuvollziehen und ggf. einzugrenzen.
Sobald ein Fehler auftritt der in einer Fehlermeldung oder einen Crash mit Fehlerdetails im Log oder auf Kommandozeile endet, dann dazu am besten direkt ein GitHub-Issue im js-controller Projekt öffnen und zusätzlich hier im Thread posten. Je detaillierter die Angaben im Issue sind (genaue Fehlermeldungen/Logs, Infos zur OS- und Node.js-Umgebung sowie genaue Schritte zur Reproduktion des Problems), umso schneller können wir Fehler einkreisen und beheben.
Wir wünschen allen viel Spaß beim Testen und vielen Dank für Eure Unterstützung!
FAQ
FAQ1: Ich sehe Einträge wie "will not read this file (socketio.png) in future versions: socketio.admin is not an object of type "meta"" im Logfile Was soll ich tun?
Wenn der Name mit ".admin" lautet (wie hier "socketio.admin") dann bitte einfach ein "iobroker upload socketio" (in dem Fall) machen. Es kan sein das früher mal Admin Files nocht korrekt angelegt wurden oder auch Dinge nocht ganz vollständig gelöscht wurden. Das Upload geht auch wenn Ihr den Adapter gar nicht mehr installiert habt. Danach sollte aber die Meldung weg sein.
übrigens, wer Octoprint und Adapter nutzt, der Fork von @reloxx13 funktioniert mit Node 12 und js-controller 3.0.x einwandfrei :-)
ist von letztem Jahr März ..
-
Hi @apollon77 hab seid dem ich auf die 3.0.7 bin bei manchen scripten Fehler.
Ich hab keine Ahnung ob es hiervon kommt deshalb hier meine Frage.2020-04-13 11:29:28.435 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:29.437 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:30.437 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:31.437 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:32.436 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:33.437 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:34.436 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:35.437 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:36.438 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:37.439 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:38.439 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:39.440 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:40.440 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:41.442 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:42.442 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:43.442 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:44.441 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:45.442 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:46.443 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:47.443 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:48.444 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:49.444 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:50.444 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:51.445 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:52.445 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:53.447 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:54.448 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:55.449 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:56.450 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:57.451 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:58.452 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:59.453 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value -
Hi @apollon77 hab seid dem ich auf die 3.0.7 bin bei manchen scripten Fehler.
Ich hab keine Ahnung ob es hiervon kommt deshalb hier meine Frage.2020-04-13 11:29:28.435 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:29.437 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:30.437 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:31.437 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:32.436 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:33.437 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:34.436 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:35.437 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:36.438 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:37.439 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:38.439 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:39.440 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:40.440 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:41.442 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:42.442 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:43.442 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:44.441 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:45.442 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:46.443 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:47.443 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:48.444 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:49.444 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:50.444 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:51.445 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:52.445 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:53.447 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:54.448 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:55.449 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:56.450 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:57.451 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:58.452 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value 2020-04-13 11:29:59.453 - [31merror[39m: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value -
@Homer-J Dann schau doch mal was Du hier in Deinem Skript an Wert setzen willst ... scheinbar willst Du "undefined" setzen was formal seit jeher ein nicht erlaubter wert ist! Sonst zeig doch mal das genannte Skript
@apollon77 hier mal das Script für den Spüler. Beim Waschmaschine ist es genau so. Hat sich Erledigt hab die Datenpunkte neu angelegt.
var Meldetext, AUS_Zaehler, Intervall, Waschdauer, Sekunde, timeout, Minute, timeout2; /** * Beschreibe diese Funktion … */ function etwas_tun(Meldetext) { sendTo("pushover", "send", { message: Meldetext, sound: "", title: '+++ Geschirrspüler +++' }); } createState("Vis.Geschirrspüler.Aktiv", function () { createState("Vis.Geschirrspüler.Aktiv.Zeit_Minuten", function () { createState("Vis.Geschirrspüler.Aktiv.Zeit_Sekunden", function () { }); }); }); // Geschirrspüler_Script setState("javascript.0.Vis.Geschirrspüler.Aktiv"/*Vis.Geschirrspüler.Aktiv*/, false); on({id: 'hm-rpc.2.0001D3C99CB161.6.POWER', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("javascript.0.Vis.Geschirrspüler.Aktiv").val == false && getState("hm-rpc.2.0001D3C99CB161.6.POWER").val > 10) { setState("javascript.0.Vis.Geschirrspüler.Aktiv.Zeit_Minuten"/*Vis.Geschirrspüler.Aktiv.Zeit_Minuten*/, 0); (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); Intervall = setInterval(function () { Sekunde = (typeof Sekunde == 'number' ? Sekunde : 0) + 1; if (Sekunde > 59) { Minute = (typeof Minute == 'number' ? Minute : 0) + 1; Sekunde = 0; } setState("javascript.0.Vis.Geschirrspüler.Aktiv.Zeit_Minuten"/*Vis.Geschirrspüler.Aktiv.Zeit_Minuten*/, Minute); setState("javascript.0.Vis.Geschirrspüler.Aktiv.Zeit_Sekunden"/*Vis.Geschirrspüler.Aktiv.Zeit_Sekunden*/, Sekunde); }, 1000); setState("javascript.0.Vis.Geschirrspüler.Aktiv"/*Vis.Geschirrspüler.Aktiv*/, true); setState("javascript.0.Vis.Geschirrspüler.Aktiv_State"/*Vis.Geschirrspüler.Aktiv_State*/, 1); Waschdauer = (new Date().getHours() * 3600 + new Date().getMinutes() * 60 + new Date().getSeconds()); etwas_tun('Der Geschirrspüler wurde angeschalten'); setState("alexa2.0.Echo-Devices.G000RA07841712N1.Commands.speak-volume"/*Volume to use for speak commands*/, 35); setStateDelayed("javascript.0.Alexa.Sprachausgabe"/*Alexa.Sprachausgabe*/, 'Der Geschirrspüler wurde angeschalten', 1000, false); setStateDelayed("alexa2.0.Echo-Devices.G000RA07841712N1.Commands.speak-volume"/*Volume to use for speak commands*/, 40, 10000, false); } else if (getState("hm-rpc.2.0001D3C99CB161.6.POWER").val > 10 && getState("javascript.0.Vis.Geschirrspüler.Aktiv").val == true && AUS_Zaehler > 0) { AUS_Zaehler = AUS_Zaehler - 1; } else if (getState("hm-rpc.2.0001D3C99CB161.6.POWER").val < 1 && getState("javascript.0.Vis.Geschirrspüler.Aktiv").val == true) { AUS_Zaehler = (typeof AUS_Zaehler == 'number' ? AUS_Zaehler : 0) + 1; } if (AUS_Zaehler == 7) { etwas_tun('Der Geschirrspüler ist fertig'); Waschdauer = (new Date().getHours() * 3600 + new Date().getMinutes() * 60 + new Date().getSeconds()) - Waschdauer; (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})(); timeout = setTimeout(function () { (function () {if (timeout2) {clearTimeout(timeout2); timeout2 = null;}})(); timeout2 = setTimeout(function () { etwas_tun(['Der Spülvorgang dauerte *',Math.round(Waschdauer / 60),' Minuten* und hat *',getState("sourceanalytix.0.hm-rpc__2__0001D3C99CB161__6__ENERGY_COUNTER.2020.consumed.01_current_day").val,' kWh* Energie für (*',getState("sourceanalytix.0.hm-rpc__2__0001D3C99CB161__6__ENERGY_COUNTER.2020.costs.01_current_day").val,' €*) verbraucht.'].join('')); }, 240000); AUS_Zaehler = 0; setState("javascript.0.Vis.Geschirrspüler.Aktiv"/*Vis.Geschirrspüler.Aktiv*/, false); setState("alexa2.0.Echo-Devices.G000RA07841712N1.Commands.speak-volume"/*Volume to use for speak commands*/, 35); setStateDelayed("javascript.0.Alexa.Sprachausgabe"/*Alexa.Sprachausgabe*/, 'Der Geschirrspüler ist fertig.', 1000, false); setStateDelayed("alexa2.0.Echo-Devices.G000RA07841712N1.Commands.speak-volume"/*Volume to use for speak commands*/, 40, 10000, false); setStateDelayed("hm-rpc.2.0001D3C99CB161.3.STATE"/*Steckdose Geschirrspüler.STATE*/, false, 300000, false); setStateDelayed("javascript.0.Vis.Geschirrspüler.Aktiv_State"/*Vis.Geschirrspüler.Aktiv_State*/, 0, 300000, false); setState("javascript.0.Vis.Geschirrspüler.Aktiv_State"/*Vis.Geschirrspüler.Aktiv_State*/, 2); (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); Minute = 0; Sekunde = 0; console.log('Der Geschirrspüler ist jetzt fertig schalte Strom ab'); }, 300000); } }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ3ZhcmlhYmxlcyUzRSUzQ3ZhcmlhYmxlJTIwdHlwZSUzRCUyMiUyMiUyMGlkJTNEJTIyZnItTnNKbiUyQnhEMCU2MEl3QUZxJTQwJTI1LiUyMiUzRU1lbGRldGV4dCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIyJTIyJTIwaWQlM0QlMjIlMjUlNURKTyUzRG5LRiUzRnMyYllPJTVCeWV4VC4lMjIlM0VBVVMlMjBaYWVobGVyJTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMHR5cGUlM0QlMjJ1bmRlZmluZWQlMjIlMjBpZCUzRCUyMkludGVydmFsbCUyMiUzRUludGVydmFsbCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIyJTIyJTIwaWQlM0QlMjJPQyUzQWJXaCU1QmUyLWJLJTVFVVpnWEJyZCUyMiUzRVdhc2NoZGF1ZXIlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwdHlwZSUzRCUyMiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTNFU2VrdW5kZSUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIydW5kZWZpbmVkJTIyJTIwaWQlM0QlMjJ0aW1lb3V0JTIyJTNFdGltZW91dCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIyJTIyJTIwaWQlM0QlMjJUenlkNXFZOXElNUJlbyolM0Y0JTJDTS5BJTJCJTIyJTNFTWludXRlJTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMHR5cGUlM0QlMjJ1bmRlZmluZWQlMjIlMjBpZCUzRCUyMnRpbWVvdXQyJTIyJTNFdGltZW91dDIlM0MlMkZ2YXJpYWJsZSUzRSUzQyUyRnZhcmlhYmxlcyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNyZWF0ZSUyMiUyMGlkJTNEJTIyIXRONCElM0FndE0lNUUlN0RlayUzQiU3Q20lM0RuSG8lMjIlMjBjb2xsYXBzZWQlM0QlMjJ0cnVlJTIyJTIweCUzRCUyMjEzJTIyJTIweSUzRCUyMjEzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRVZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2JTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY3JlYXRlJTIyJTIwaWQlM0QlMjJtJTI1TVhKY3phKnkwJTNCSk5hSiUzRHUlM0IlMjUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFVmlzLkdlc2NoaXJyc3AlQzMlQkNsZXIuQWt0aXYuWmVpdF9NaW51dGVuJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY3JlYXRlJTIyJTIwaWQlM0QlMjJyYnZQUSlJdFBpMDVLJTYwJTNETEcyRyU2MCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0VWaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3Rpdi5aZWl0X1Nla3VuZGVuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMmhCJTI1cF9zbyUzRDQlNjBFR3pYJTNCMTAlM0F3ciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VHZXNjaGlycnNwJUMzJUJDbGVyX1NjcmlwdCUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMktiLnVQZHJ+Z1MlN0MlM0Q3TmclMkIlM0FIJTNGYSUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIydnFCeSUzRjguMWZpRE5Eb0xyVCUzQkd+JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX2V4dCUyMiUyMGlkJTNEJTIyJTJCQTd3bHV0UU84Z0JmcW9zYy55MyUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIxJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0VhbnklM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRDAlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIyZmllbGRfb2lkJTIyJTIwaWQlM0QlMjJMJTVCaSUzRHAlN0IlN0NpaS1haSolMkZZQVolNDA4cyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRWhtLXJwYy4yLjAwMDFEM0M5OUNCMTYxLjYuUE9XRVIlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJiUCU2MCopMCUzQk0lMkJnOU8lM0FnJTNGJTVEUGQqZiUyMiUzRSUzQ211dGF0aW9uJTIwZWxzZWlmJTNEJTIyMiUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfb3BlcmF0aW9uJTIyJTIwaWQlM0QlMjJGJTNBKXFZSHNJJTdEZHVnRiUzQiUzQlRqbSUyQ0ElMjIlMjBpbmxpbmUlM0QlMjJmYWxzZSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyJTJCJTVEJTVFRCU1QiU3QnpjT2R+KWQlMjU4QyUyNSUzQVM5JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyRTQlM0JxLldJKSUzQVJGOCUyQylQJTNCNEdhTSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5WaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3RpdiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJCbFAlNUIlNjBYSypkZlY2JTdCcSU1RCUyQ3VTdU4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMkg1JTI1XyUyRmEhbyUzQihjZDJmfnQhJTJCJTVFUSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFR1QlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMmElM0F5OTE2VyFTJTI1SCU3Q3BiNXFRbCUzQUolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VobS1ycGMuMi4wMDAxRDNDOTlDQjE2MS42LlBPV0VSJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJGYSklM0ZfQXF+VShIOSglNUJEN0JhQTIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMlEwJTJGRipVbCUyNGppaGhTSmopJTVFWiU3Q2clMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5WaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3Rpdi5aZWl0X01pbnV0ZW4lM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTdDVlA5US14VTg0NCUzRmglN0NyMCU1RDlNQyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfY2xlYXJpbnRlcnZhbCUyMiUyMGlkJTNEJTIyMUglN0Q3SyUyM2NMcTQlM0ZkNzI2aCpYSUMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFSW50ZXJ2YWxsJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfc2V0aW50ZXJ2YWwlMjIlMjBpZCUzRCUyMiUyM1p3bmt5bGV+RXlFNlY0NzclN0RGJTJCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRUludGVydmFsbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIySU5URVJWQUwlMjIlM0UxJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9jaGFuZ2UlMjIlMjBpZCUzRCUyMjE0NCU1RFZTSlBqOHAlNUUlM0JqQWpsMnFUJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJVeCUyQiUyQyUzQTUlM0YlMkZRc1N5JTJCZ35UJTNGJTNGWm8lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VTZWt1bmRlJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJERUxUQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyQyElM0JJUFhRJTdEMGl3b0QlNUV1TEl2NyUyQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJaSSUzQXQxV3Ihck1TJTYwbCU1RXQoNDNxJTVCJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIybTM0bzIlMjNUZVZpJTNEVW91WCUyRnglMjVMOSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFR1QlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjIlNURyR2kxZWolNUJiaVVHM1VYOFFueiUyRiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFU2VrdW5kZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyOCpmJTJGVkttalFfcmNNanAlMjVIdCU1RCUyNSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTU5JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2NoYW5nZSUyMiUyMGlkJTNEJTIya20ubFdpMXMlNUJkTCUyRjNzbSElMkNQWiUzQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVHp5ZDVxWTlxJTVCZW8qJTNGNCUyQ00uQSUyQiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRU1pbnV0ZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyREVMVEElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMmtlKlclN0JhJTdDanghbHB0dDFMeUZWaSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiU1RCUyRllhU3klM0QlMkJkejVjISUzRGV3LXQqSCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFU2VrdW5kZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIydHgySC4hJTI1WCU1RCU1RVIlNjB0UGlHeXBpJTNEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiFlJTNBU194LWlNVE13aVQlNjB6SVIlMkNpJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuVmlzLkdlc2NoaXJyc3AlQzMlQkNsZXIuQWt0aXYuWmVpdF9NaW51dGVuJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTI0NEZZRSU1RCUyQyUzREFSTCUzQU9NSWsxJTNCJTNCdyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVHp5ZDVxWTlxJTVCZW8qJTNGNCUyQ00uQSUyQiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRU1pbnV0ZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJfWHZmS0h+RTFvYSU3QldlUlM4JTI0JTNGciUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2LlplaXRfU2VrdW5kZW4lM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJoQ2lKNC5uaSolMkZEUyUzQnpaJTdCWVdtaCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFU2VrdW5kZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMlh4alJHLXd4JTdCR2lzJTdDUCU3RGolMjV3aSU3QiUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyOCU1RGolNUROUHkwcHpnXyU0MGZ5NyUyM3B1OSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiUzREs1ZThTJTdEcG0oJTJCYSUyNDRzJTQweiUyQyUyQyUyRiUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2X1N0YXRlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU2MGVZQWUlN0MlM0RQIVpTY2NYKU44UFZ5JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJTQ2IlMjMlM0Y4RlFxVUJtLmI5MUcqOWolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMk9DJTNBYldoJTVCZTItYkslNUVVWmdYQnJkJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFV2FzY2hkYXVlciUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0aW1lX2dldCUyMiUyMGlkJTNEJTIybCU1RFktSzMtWXE5SWVUcSUzQjZlSiUzQkQlMjIlM0UlM0NtdXRhdGlvbiUyMGZvcm1hdCUzRCUyMmZhbHNlJTIyJTIwbGFuZ3VhZ2UlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1BUSU9OJTIyJTNFc2lkJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnByb2NlZHVyZXNfY2FsbG5vcmV0dXJuJTIyJTIwaWQlM0QlMjIyZFclMkJEN1hjUHpqcCUyM3JqV2MlNUIlMkNJJTIyJTNFJTNDbXV0YXRpb24lMjBuYW1lJTNEJTIyZXR3YXMlMjB0dW4lMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIyTWVsZGV0ZXh0JTIyJTNFJTNDJTJGYXJnJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBUkcwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTIzZVYxazRibDMlMkYqdCUzRE9xJTNBRHJydyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VEZXIlMjBHZXNjaGlycnNwJUMzJUJDbGVyJTIwd3VyZGUlMjBhbmdlc2NoYWx0ZW4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyc2EuJTI1QXg1STZDYUUyRSUzRGwlNjAoX3IlMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy5HMDAwUkEwNzg0MTcxMk4xLkNvbW1hbmRzLnNwZWFrLXZvbHVtZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJVM053dWglM0JtIUE0MSUyRkslMkY3ckspciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTM1JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMlU4JTJGbyUyMzhqTGFUb1RpJTNGQ2clMkJqJTdEViUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQWxleGEuU3ByYWNoYXVzZ2FiZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZX01TJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRXNlYyUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ0xFQVJfUlVOTklORyUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMm9nJTdDJTNCUX5YJTI1eW14dCU1RSU3RFRqVCUzREUoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRURlciUyMEdlc2NoaXJyc3AlQzMlQkNsZXIlMjB3dXJkZSUyMGFuZ2VzY2hhbHRlbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJWMkYlNURtJTdDJTNBWUhtTWMhJTIzMDAlNjBMJTJGJTNBJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMnRydWUlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy5HMDAwUkEwNzg0MTcxMk4xLkNvbW1hbmRzLnNwZWFrLXZvbHVtZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZX01TJTIyJTNFMTAlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VzZWMlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNMRUFSX1JVTk5JTkclMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyISU1QlowVVolNDAlN0QwIShrQzclMjMlM0ZvJTVCa1olMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0U0MCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfb3BlcmF0aW9uJTIyJTIwaWQlM0QlMjJ4UX5BeGpwJTVFeCU3RHhJYyU3RCUzRiUyQ35iZDMlMjIlMjBpbmxpbmUlM0QlMjJmYWxzZSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIybSUzQUYlNUJBJTJDQyU1RDIzJTdCdFZHLiU1QjlvZ3glMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUdUJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJ+OWhtLmJuN0p1UiU2MDlUJTVFNTdyJTdDISUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWhtLXJwYy4yLjAwMDFEM0M5OUNCMTYxLjYuUE9XRVIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMkpmbFYlNUVydjFfM3kpJTJDRiUzRmpZfjNSJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX29wZXJhdGlvbiUyMiUyMGlkJTNEJTIyV1pxZXFycWJ4JTNEekItJTQwRCl+bF8hJTIyJTIwaW5saW5lJTNEJTIyZmFsc2UlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUFORCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMjIlMjMlMkMyJTdCVXpLVVhLYy1iJTNCYVhJJTVEZCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFRVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMlglN0M3SUVxJTJCJTIzZVE2VSU1REslNDBRWkRMXyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5WaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3RpdiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjI4OCU1Qng5VFF0VCU2MGhrYWdYJTNGdXglM0I2JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMiUzQjVUMndqaGdSa0k0YSUzRGZQJTNEdHhBJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VHVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlglN0M1JTNCV0tfNiUyQmIqWDdkV1RoZFlGJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjUlNURKTyUzRG5LRiUzRnMyYllPJTVCeWV4VC4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VBVVMlMjBaYWVobGVyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJKaHZZJTIzbTJlKSU3QmlaZyolN0RVKVU3JTNEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJxZDJqY1pTWC5qJTYwbWFrcy0wWEdHJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjUlNURKTyUzRG5LRiUzRnMyYllPJTVCeWV4VC4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VBVVMlMjBaYWVobGVyJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyLVklN0RabWYlNUUlMjNobSUyQ1d5TDYpS2NkLSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFTUlOVVMlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU1RX5wfiUyM1UhUiUyQmVhSmphV342VSlkJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyYyUyRmIlM0J0ZWg3Qi50ZmF2VyUyMzNLeDIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyNSU1REpPJTNEbktGJTNGczJiWU8lNUJ5ZXhULiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRUFVUyUyMFphZWhsZXIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlMkYlNDBkU3daJTdCSHBiS2s2eTNfcSUzRmp6JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU3Q0Z+JTNENHNnNk9jYjc0ciU1REQwODVXJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX29wZXJhdGlvbiUyMiUyMGlkJTNEJTIyaUhwRX4lM0R1VWlDMEhZWkUwaXhmdiUyMiUyMGlubGluZSUzRCUyMmZhbHNlJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VBTkQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJ+JTNEJTYwQUtrVilwLkxSSyU3Qy0peW0lMjMwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VMVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyJTdCYk1QM1JjdCU1RHN+JTVFT3hCJTVFS1lKQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWhtLXJwYy4yLjAwMDFEM0M5OUNCMTYxLjYuUE9XRVIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMll+TE0lMkMzYSU3RDIlMkI4dUJlJTI0Y3MlNUIobyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMiFjQVIlNDBrYWdrZG4lMkZkdSFsZzUlM0ZyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyOVRnZ0RmcWxUaiUzRjRPTyUzRCU0MCU2MH5lTyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5WaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3RpdiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJTMVIha1M5LSUzRmtRayUyQktTXzVRcyUyMyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8yJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9jaGFuZ2UlMjIlMjBpZCUzRCUyMlQudW41JTNELnJkTGwlNDB3b0duKjRvSiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTI1JTVESk8lM0RuS0YlM0ZzMmJZTyU1QnlleFQuJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFQVVTJTIwWmFlaGxlciUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyREVMVEElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiUzRmMlM0RwWExPYzYxdjNBSlAuKGQlM0FrJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMk1hJTNCJTNGJTVFWDUhcnQuV3J0VCUzRHFFdiUyNSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIySiEwY3ZURyUyM2htJTJCLnZwT21QJTJCRGglMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjIlMjVBYk1PJTNGSjJEJTVCZi1yQ0VXeXElM0RPJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMnU1RlpOc3lwZ3MlM0FwUFVZc1YxJTNEZyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTI1JTVESk8lM0RuS0YlM0ZzMmJZTyU1QnlleFQuJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFQVVTJTIwWmFlaGxlciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIydWFIUCU1QlAzd3QtIWglNDBNIVVFJTVEZVglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0U3JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2NhbGxub3JldHVybiUyMiUyMGlkJTNEJTIyNU03ZUpvbEYzUlBLR3MtWSUyRlI1eSUyMiUzRSUzQ211dGF0aW9uJTIwbmFtZSUzRCUyMmV0d2FzJTIwdHVuJTIyJTNFJTNDYXJnJTIwbmFtZSUzRCUyMk1lbGRldGV4dCUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQVJHMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMndWJTJGQXcycS0lMkNsJTVEY2gwY3olM0FpRyU3QiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VEZXIlMjBHZXNjaGlycnNwJUMzJUJDbGVyJTIwaXN0JTIwZmVydGlnJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMkM3JTIzTSEpTUJObFhXRmRSeXUoMSUyRiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyT0MlM0FiV2glNUJlMi1iSyU1RVVaZ1hCcmQlMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VXYXNjaGRhdWVyJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyZndhMGR2bG4xbV90JTI1eTRkJTVEJTNEKnYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRU1JTlVTJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJXOGclM0IlMjN0RnolMjVWOEt4JTQwIW1qdXFqJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZV9nZXQlMjIlMjBpZCUzRCUyMiUyNSUzQiU0MGI4S05USFJlbiU1QkxQMEZ2SyUyQyUyMiUzRSUzQ211dGF0aW9uJTIwZm9ybWF0JTNEJTIyZmFsc2UlMjIlMjBsYW5ndWFnZSUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUFRJT04lMjIlM0VzaWQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlNDBsIWgxbE9NcFhsbzhOJTdEeSUzQSU3QiU1RCUyQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlhPcG0pQSU0ME8lMjVURiUzQShTQXk3KEklN0QlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMk9DJTNBYldoJTVCZTItYkslNUVVWmdYQnJkJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFV2FzY2hkYXVlciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfY2xlYXJ0aW1lb3V0JTIyJTIwaWQlM0QlMjI4JTQwRzJ2ZnROUSUzQmJnJTJDJTdEX28uJTdDLV8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFdGltZW91dCUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3NldHRpbWVvdXQlMjIlMjBpZCUzRCUyMiUzQlJldE0lNUQxTk1ucShnTTIlM0YqNnZPJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRXRpbWVvdXQlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZJTIyJTNFNSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRW1pbiUzQyUyRmZpZWxkJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX2NsZWFydGltZW91dCUyMiUyMGlkJTNEJTIySk92RzQwJTQwUiU1RCUyNXRfJTNGJTVCNFEzJTNERiUyNCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0V0aW1lb3V0MiUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3NldHRpbWVvdXQlMjIlMjBpZCUzRCUyMmYlNjB+S25JSSUzRCUzQnIlNUQlMjMoJTJGJTNBaiUyQyUyQk1FJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRXRpbWVvdXQyJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWSUyMiUzRTQlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VtaW4lM0MlMkZmaWVsZCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2NhbGxub3JldHVybiUyMiUyMGlkJTNEJTIyNkoyayUzRCUyNCU1RUJLTXlFfiUzQm9CKkZZJTVEJTIyJTNFJTNDbXV0YXRpb24lMjBuYW1lJTNEJTIyZXR3YXMlMjB0dW4lMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIyTWVsZGV0ZXh0JTIyJTNFJTNDJTJGYXJnJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBUkcwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dF9qb2luJTIyJTIwaWQlM0QlMjJTVX5TbWclNUQlN0NQSldOJTVFWWhUJTYwJTJGVUglMjIlMjBpbmxpbmUlM0QlMjJmYWxzZSUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjI3JTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyWSgqWEptXyEha3AuV0J1ZTQ5T3YlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRGVyJTIwU3AlQzMlQkNsdm9yZ2FuZyUyMGRhdWVydGUlMjAqJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfcm91bmQlMjIlMjBpZCUzRCUyMmc2UCU3QkklM0ExRyUzRm80c01iTyU0MCFWcHAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRVJPVU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJOVU0lMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiUzRk5mJTJDN0UwNEljaSUyNSlfX05OJTdDRzMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UzLjElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyJTdCJTIzNThGJTJCZWwlMkJuYTdWOFlyJTdCZHAlM0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRURJVklERSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyaUw5OSU3REU4ZUklNUItZkNzJTNEZkkxM0UlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJmSUZsUUhfVExGfjIlNUJGcHpXeVMlM0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMk9DJTNBYldoJTVCZTItYkslNUVVWmdYQnJkJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFV2FzY2hkYXVlciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMnQlNDAoRkpJKVp2S0R5JTNCcyUzQiU1RCUzRG9EJTJCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFNjAlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJWJTJDYlolNjAyMCU3Q3YlMkJVU3ZZVUNIOSUyRiU1RSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTYwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQyJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyRCFHakxybSU0MHdKU0xIVFIxRCU1RE1mJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyME1pbnV0ZW4qJTIwdW5kJTIwaGF0JTIwKiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDMlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMnlEcGZjViUyNERjSk9DVVQ5JTYwWk1BLiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRXNvdXJjZWFuYWx5dGl4LjAuaG0tcnBjX18yX18wMDAxRDNDOTlDQjE2MV9fNl9fRU5FUkdZX0NPVU5URVIuMjAyMC5jb25zdW1lZC4wMV9jdXJyZW50X2RheSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJ+YWolMjNacDdRNSU1QnRrUHUyWiUyQkU5JTVFJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyMGtXaColMjBFbmVyZ2llJTIwZiVDMyVCQ3IlMjAoKiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMilfNS4lNUVFRC1WWVh+REJLc3NRWUclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0Vzb3VyY2VhbmFseXRpeC4wLmhtLXJwY19fMl9fMDAwMUQzQzk5Q0IxNjFfXzZfX0VORVJHWV9DT1VOVEVSLjIwMjAuY29zdHMuMDFfY3VycmVudF9kYXklM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQ2JTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyNGslMjUueSUyQlBCJTJCRyUzRE1+dVJ2eSU3Q0MlNjAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTIwJUUyJTgyJUFDKiklMjB2ZXJicmF1Y2h0LiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJIdmQydkwpcHRjNCUyRnNmam9QM0t4JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjUlNURKTyUzRG5LRiUzRnMyYllPJTVCeWV4VC4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VBVVMlMjBaYWVobGVyJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJZeiU2MClyeiUyQy5lc3g4JTQwbEMlMkJkbW0lNUUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMnNqMFpBRyUzREVMUS0lN0NYZVdtdEVnMyUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyZVglN0NCZiU3Qm9XJTJCJTI1QkFXLlklM0Epa2JLJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiU1RCUyMzdZZUclM0ZJVEYhJTdEKjlkOG1yNUglMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy5HMDAwUkEwNzg0MTcxMk4xLkNvbW1hbmRzLnNwZWFrLXZvbHVtZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJPeUhmLVQ4OSU1QjJhbkJqT2NYbHVZJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMzUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyV21+QihFVUlEJTdDTjR4M0NjcEolM0I0JTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMnRydWUlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5BbGV4YS5TcHJhY2hhdXNnYWJlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0UxJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTJDJTVCJTYwfkRudVklN0RGM2slNjBJUUwuJTI1SU4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRGVyJTIwR2VzY2hpcnJzcCVDMyVCQ2xlciUyMGlzdCUyMGZlcnRpZy4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyTnElN0JqJTNCJTI1c2trJTdCb2VHUl9KKTlVZSUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VhbGV4YTIuMC5FY2hvLURldmljZXMuRzAwMFJBMDc4NDE3MTJOMS5Db21tYW5kcy5zcGVhay12b2x1bWUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWV9NUyUyMiUzRTEwJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMjUpWmclM0RtQWxVJTJCbyUyQ2drJTNBJTQwSU9oJTI1JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFNDAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyJTdDelYlM0JCRSUyNWpISiU1RCU3Q2c0bzglN0IlNUJRcCUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VobS1ycGMuMi4wMDAxRDNDOTlDQjE2MS4zLlNUQVRFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0U1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFbWluJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyfnFtOSU2MCU3Qkt6JTNCJTYwcSgzRi5MaWFzSCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjIuM34lMkI1KG0lM0RrQyFjSSUzRCUyNVBaRlMlMkIlMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIydHJ1ZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2X1N0YXRlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0U1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFbWluJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMklPKTUwUX5tMVIlM0ZrflhLa1JmSjclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiUyM05XSiU0MGQoTXNQZiU1RGgpcylzeC4xJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuVmlzLkdlc2NoaXJyc3AlQzMlQkNsZXIuQWt0aXZfU3RhdGUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyS2xlIVdFJTIzU35VM3hhSGhnMyUyQkglMjMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX2NsZWFyaW50ZXJ2YWwlMjIlMjBpZCUzRCUyMiUyMyElNUVFcDlGaU83NjIlMjNsJTdDZV8lMkZRTiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0VJbnRlcnZhbGwlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjIlNUUlM0QlMkNMJTI1JTJDV2hrV1VCbUlaSV9BJTNEdyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVHp5ZDVxWTlxJTVCZW8qJTNGNCUyQ00uQSUyQiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRU1pbnV0ZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyITVYTyU3QiUyNSU3Qm4zJTNCZzVIRGdSVWtnZyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyQlVJbWJISTFOQmlDZiUyQmNCc2ktbCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFU2VrdW5kZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyYlAlNUJSMjRoJTJDdUxRRCU1QmYzQjFaNkglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmRlYnVnJTIyJTIwaWQlM0QlMjJ+TmFDJTVFRG15eSU3Q3hEdlMlNUIlNUQ0aCFoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0Vsb2clM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyKCpNSW90dUx+aTklNUVhfnUlN0N+NUglN0MlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRGVyJTIwR2VzY2hpcnJzcCVDMyVCQ2xlciUyMGlzdCUyMGpldHp0JTIwZmVydGlnJTIwc2NoYWx0ZSUyMFN0cm9tJTIwYWIlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2RlZm5vcmV0dXJuJTIyJTIwaWQlM0QlMjIhKCU0MG4tJTNBJTJCIVBqSiU1RSU1RXFINiU3Q1YlNURKJTIyJTIweCUzRCUyMjc4OCUyMiUyMHklM0QlMjIxMyUyMiUzRSUzQ211dGF0aW9uJTNFJTNDYXJnJTIwbmFtZSUzRCUyMk1lbGRldGV4dCUyMiUyMHZhcmlkJTNEJTIyZnItTnNKbiUyQnhEMCU2MEl3QUZxJTQwJTI1LiUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRWV0d2FzJTIwdHVuJTNDJTJGZmllbGQlM0UlM0Njb21tZW50JTIwcGlubmVkJTNEJTIyZmFsc2UlMjIlMjBoJTNEJTIyODAlMjIlMjB3JTNEJTIyMTYwJTIyJTNFQmVzY2hyZWliZSUyMGRpZXNlJTIwRnVua3Rpb24lMjAlRTIlODAlQTYlM0MlMkZjb21tZW50JTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQUNLJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHVzaG92ZXIlMjIlMjBpZCUzRCUyMjRwUW51Q1BRbyUzRndIazdzTiUzQSU0MF92JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIySU5TVEFOQ0UlMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlNPVU5EJTIyJTNFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJQUklPUklUWSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkxPRyUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyTUVTU0FHRSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJDVGJJV3NWRzVCKnBwYiU1RHdMJTJGY0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFdGV4dCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTYwUXhoYmdNcVZXV01vRyUzQlclNUJZdWYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMmZyLU5zSm4lMkJ4RDAlNjBJd0FGcSU0MCUyNS4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VNZWxkZXRleHQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJUSVRMRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMiUyNS1oKCU1RWpwb3JWJTNGJTVFJTVEJTVFa0tVNmpnJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyQiUyQiUyQiUyMEdlc2NoaXJyc3AlQzMlQkNsZXIlMjAlMkIlMkIlMkIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGeG1sJTNF -
@apollon77 hier mal das Script für den Spüler. Beim Waschmaschine ist es genau so. Hat sich Erledigt hab die Datenpunkte neu angelegt.
var Meldetext, AUS_Zaehler, Intervall, Waschdauer, Sekunde, timeout, Minute, timeout2; /** * Beschreibe diese Funktion … */ function etwas_tun(Meldetext) { sendTo("pushover", "send", { message: Meldetext, sound: "", title: '+++ Geschirrspüler +++' }); } createState("Vis.Geschirrspüler.Aktiv", function () { createState("Vis.Geschirrspüler.Aktiv.Zeit_Minuten", function () { createState("Vis.Geschirrspüler.Aktiv.Zeit_Sekunden", function () { }); }); }); // Geschirrspüler_Script setState("javascript.0.Vis.Geschirrspüler.Aktiv"/*Vis.Geschirrspüler.Aktiv*/, false); on({id: 'hm-rpc.2.0001D3C99CB161.6.POWER', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("javascript.0.Vis.Geschirrspüler.Aktiv").val == false && getState("hm-rpc.2.0001D3C99CB161.6.POWER").val > 10) { setState("javascript.0.Vis.Geschirrspüler.Aktiv.Zeit_Minuten"/*Vis.Geschirrspüler.Aktiv.Zeit_Minuten*/, 0); (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); Intervall = setInterval(function () { Sekunde = (typeof Sekunde == 'number' ? Sekunde : 0) + 1; if (Sekunde > 59) { Minute = (typeof Minute == 'number' ? Minute : 0) + 1; Sekunde = 0; } setState("javascript.0.Vis.Geschirrspüler.Aktiv.Zeit_Minuten"/*Vis.Geschirrspüler.Aktiv.Zeit_Minuten*/, Minute); setState("javascript.0.Vis.Geschirrspüler.Aktiv.Zeit_Sekunden"/*Vis.Geschirrspüler.Aktiv.Zeit_Sekunden*/, Sekunde); }, 1000); setState("javascript.0.Vis.Geschirrspüler.Aktiv"/*Vis.Geschirrspüler.Aktiv*/, true); setState("javascript.0.Vis.Geschirrspüler.Aktiv_State"/*Vis.Geschirrspüler.Aktiv_State*/, 1); Waschdauer = (new Date().getHours() * 3600 + new Date().getMinutes() * 60 + new Date().getSeconds()); etwas_tun('Der Geschirrspüler wurde angeschalten'); setState("alexa2.0.Echo-Devices.G000RA07841712N1.Commands.speak-volume"/*Volume to use for speak commands*/, 35); setStateDelayed("javascript.0.Alexa.Sprachausgabe"/*Alexa.Sprachausgabe*/, 'Der Geschirrspüler wurde angeschalten', 1000, false); setStateDelayed("alexa2.0.Echo-Devices.G000RA07841712N1.Commands.speak-volume"/*Volume to use for speak commands*/, 40, 10000, false); } else if (getState("hm-rpc.2.0001D3C99CB161.6.POWER").val > 10 && getState("javascript.0.Vis.Geschirrspüler.Aktiv").val == true && AUS_Zaehler > 0) { AUS_Zaehler = AUS_Zaehler - 1; } else if (getState("hm-rpc.2.0001D3C99CB161.6.POWER").val < 1 && getState("javascript.0.Vis.Geschirrspüler.Aktiv").val == true) { AUS_Zaehler = (typeof AUS_Zaehler == 'number' ? AUS_Zaehler : 0) + 1; } if (AUS_Zaehler == 7) { etwas_tun('Der Geschirrspüler ist fertig'); Waschdauer = (new Date().getHours() * 3600 + new Date().getMinutes() * 60 + new Date().getSeconds()) - Waschdauer; (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})(); timeout = setTimeout(function () { (function () {if (timeout2) {clearTimeout(timeout2); timeout2 = null;}})(); timeout2 = setTimeout(function () { etwas_tun(['Der Spülvorgang dauerte *',Math.round(Waschdauer / 60),' Minuten* und hat *',getState("sourceanalytix.0.hm-rpc__2__0001D3C99CB161__6__ENERGY_COUNTER.2020.consumed.01_current_day").val,' kWh* Energie für (*',getState("sourceanalytix.0.hm-rpc__2__0001D3C99CB161__6__ENERGY_COUNTER.2020.costs.01_current_day").val,' €*) verbraucht.'].join('')); }, 240000); AUS_Zaehler = 0; setState("javascript.0.Vis.Geschirrspüler.Aktiv"/*Vis.Geschirrspüler.Aktiv*/, false); setState("alexa2.0.Echo-Devices.G000RA07841712N1.Commands.speak-volume"/*Volume to use for speak commands*/, 35); setStateDelayed("javascript.0.Alexa.Sprachausgabe"/*Alexa.Sprachausgabe*/, 'Der Geschirrspüler ist fertig.', 1000, false); setStateDelayed("alexa2.0.Echo-Devices.G000RA07841712N1.Commands.speak-volume"/*Volume to use for speak commands*/, 40, 10000, false); setStateDelayed("hm-rpc.2.0001D3C99CB161.3.STATE"/*Steckdose Geschirrspüler.STATE*/, false, 300000, false); setStateDelayed("javascript.0.Vis.Geschirrspüler.Aktiv_State"/*Vis.Geschirrspüler.Aktiv_State*/, 0, 300000, false); setState("javascript.0.Vis.Geschirrspüler.Aktiv_State"/*Vis.Geschirrspüler.Aktiv_State*/, 2); (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); Minute = 0; Sekunde = 0; console.log('Der Geschirrspüler ist jetzt fertig schalte Strom ab'); }, 300000); } }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ3ZhcmlhYmxlcyUzRSUzQ3ZhcmlhYmxlJTIwdHlwZSUzRCUyMiUyMiUyMGlkJTNEJTIyZnItTnNKbiUyQnhEMCU2MEl3QUZxJTQwJTI1LiUyMiUzRU1lbGRldGV4dCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIyJTIyJTIwaWQlM0QlMjIlMjUlNURKTyUzRG5LRiUzRnMyYllPJTVCeWV4VC4lMjIlM0VBVVMlMjBaYWVobGVyJTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMHR5cGUlM0QlMjJ1bmRlZmluZWQlMjIlMjBpZCUzRCUyMkludGVydmFsbCUyMiUzRUludGVydmFsbCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIyJTIyJTIwaWQlM0QlMjJPQyUzQWJXaCU1QmUyLWJLJTVFVVpnWEJyZCUyMiUzRVdhc2NoZGF1ZXIlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwdHlwZSUzRCUyMiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTNFU2VrdW5kZSUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIydW5kZWZpbmVkJTIyJTIwaWQlM0QlMjJ0aW1lb3V0JTIyJTNFdGltZW91dCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIyJTIyJTIwaWQlM0QlMjJUenlkNXFZOXElNUJlbyolM0Y0JTJDTS5BJTJCJTIyJTNFTWludXRlJTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMHR5cGUlM0QlMjJ1bmRlZmluZWQlMjIlMjBpZCUzRCUyMnRpbWVvdXQyJTIyJTNFdGltZW91dDIlM0MlMkZ2YXJpYWJsZSUzRSUzQyUyRnZhcmlhYmxlcyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNyZWF0ZSUyMiUyMGlkJTNEJTIyIXRONCElM0FndE0lNUUlN0RlayUzQiU3Q20lM0RuSG8lMjIlMjBjb2xsYXBzZWQlM0QlMjJ0cnVlJTIyJTIweCUzRCUyMjEzJTIyJTIweSUzRCUyMjEzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRVZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2JTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY3JlYXRlJTIyJTIwaWQlM0QlMjJtJTI1TVhKY3phKnkwJTNCSk5hSiUzRHUlM0IlMjUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFVmlzLkdlc2NoaXJyc3AlQzMlQkNsZXIuQWt0aXYuWmVpdF9NaW51dGVuJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY3JlYXRlJTIyJTIwaWQlM0QlMjJyYnZQUSlJdFBpMDVLJTYwJTNETEcyRyU2MCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0VWaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3Rpdi5aZWl0X1Nla3VuZGVuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMmhCJTI1cF9zbyUzRDQlNjBFR3pYJTNCMTAlM0F3ciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VHZXNjaGlycnNwJUMzJUJDbGVyX1NjcmlwdCUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMktiLnVQZHJ+Z1MlN0MlM0Q3TmclMkIlM0FIJTNGYSUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIydnFCeSUzRjguMWZpRE5Eb0xyVCUzQkd+JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX2V4dCUyMiUyMGlkJTNEJTIyJTJCQTd3bHV0UU84Z0JmcW9zYy55MyUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIxJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0VhbnklM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRDAlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIyZmllbGRfb2lkJTIyJTIwaWQlM0QlMjJMJTVCaSUzRHAlN0IlN0NpaS1haSolMkZZQVolNDA4cyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRWhtLXJwYy4yLjAwMDFEM0M5OUNCMTYxLjYuUE9XRVIlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJiUCU2MCopMCUzQk0lMkJnOU8lM0FnJTNGJTVEUGQqZiUyMiUzRSUzQ211dGF0aW9uJTIwZWxzZWlmJTNEJTIyMiUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfb3BlcmF0aW9uJTIyJTIwaWQlM0QlMjJGJTNBKXFZSHNJJTdEZHVnRiUzQiUzQlRqbSUyQ0ElMjIlMjBpbmxpbmUlM0QlMjJmYWxzZSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyJTJCJTVEJTVFRCU1QiU3QnpjT2R+KWQlMjU4QyUyNSUzQVM5JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyRTQlM0JxLldJKSUzQVJGOCUyQylQJTNCNEdhTSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5WaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3RpdiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJCbFAlNUIlNjBYSypkZlY2JTdCcSU1RCUyQ3VTdU4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMkg1JTI1XyUyRmEhbyUzQihjZDJmfnQhJTJCJTVFUSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFR1QlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMmElM0F5OTE2VyFTJTI1SCU3Q3BiNXFRbCUzQUolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VobS1ycGMuMi4wMDAxRDNDOTlDQjE2MS42LlBPV0VSJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJGYSklM0ZfQXF+VShIOSglNUJEN0JhQTIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMlEwJTJGRipVbCUyNGppaGhTSmopJTVFWiU3Q2clMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5WaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3Rpdi5aZWl0X01pbnV0ZW4lM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTdDVlA5US14VTg0NCUzRmglN0NyMCU1RDlNQyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfY2xlYXJpbnRlcnZhbCUyMiUyMGlkJTNEJTIyMUglN0Q3SyUyM2NMcTQlM0ZkNzI2aCpYSUMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFSW50ZXJ2YWxsJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfc2V0aW50ZXJ2YWwlMjIlMjBpZCUzRCUyMiUyM1p3bmt5bGV+RXlFNlY0NzclN0RGJTJCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRUludGVydmFsbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIySU5URVJWQUwlMjIlM0UxJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9jaGFuZ2UlMjIlMjBpZCUzRCUyMjE0NCU1RFZTSlBqOHAlNUUlM0JqQWpsMnFUJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJVeCUyQiUyQyUzQTUlM0YlMkZRc1N5JTJCZ35UJTNGJTNGWm8lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VTZWt1bmRlJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJERUxUQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyQyElM0JJUFhRJTdEMGl3b0QlNUV1TEl2NyUyQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJaSSUzQXQxV3Ihck1TJTYwbCU1RXQoNDNxJTVCJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIybTM0bzIlMjNUZVZpJTNEVW91WCUyRnglMjVMOSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFR1QlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjIlNURyR2kxZWolNUJiaVVHM1VYOFFueiUyRiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFU2VrdW5kZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyOCpmJTJGVkttalFfcmNNanAlMjVIdCU1RCUyNSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTU5JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2NoYW5nZSUyMiUyMGlkJTNEJTIya20ubFdpMXMlNUJkTCUyRjNzbSElMkNQWiUzQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVHp5ZDVxWTlxJTVCZW8qJTNGNCUyQ00uQSUyQiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRU1pbnV0ZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyREVMVEElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMmtlKlclN0JhJTdDanghbHB0dDFMeUZWaSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiU1RCUyRllhU3klM0QlMkJkejVjISUzRGV3LXQqSCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFU2VrdW5kZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIydHgySC4hJTI1WCU1RCU1RVIlNjB0UGlHeXBpJTNEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiFlJTNBU194LWlNVE13aVQlNjB6SVIlMkNpJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuVmlzLkdlc2NoaXJyc3AlQzMlQkNsZXIuQWt0aXYuWmVpdF9NaW51dGVuJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTI0NEZZRSU1RCUyQyUzREFSTCUzQU9NSWsxJTNCJTNCdyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVHp5ZDVxWTlxJTVCZW8qJTNGNCUyQ00uQSUyQiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRU1pbnV0ZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJfWHZmS0h+RTFvYSU3QldlUlM4JTI0JTNGciUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2LlplaXRfU2VrdW5kZW4lM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJoQ2lKNC5uaSolMkZEUyUzQnpaJTdCWVdtaCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFU2VrdW5kZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMlh4alJHLXd4JTdCR2lzJTdDUCU3RGolMjV3aSU3QiUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyOCU1RGolNUROUHkwcHpnXyU0MGZ5NyUyM3B1OSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiUzREs1ZThTJTdEcG0oJTJCYSUyNDRzJTQweiUyQyUyQyUyRiUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2X1N0YXRlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU2MGVZQWUlN0MlM0RQIVpTY2NYKU44UFZ5JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJTQ2IlMjMlM0Y4RlFxVUJtLmI5MUcqOWolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMk9DJTNBYldoJTVCZTItYkslNUVVWmdYQnJkJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFV2FzY2hkYXVlciUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0aW1lX2dldCUyMiUyMGlkJTNEJTIybCU1RFktSzMtWXE5SWVUcSUzQjZlSiUzQkQlMjIlM0UlM0NtdXRhdGlvbiUyMGZvcm1hdCUzRCUyMmZhbHNlJTIyJTIwbGFuZ3VhZ2UlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1BUSU9OJTIyJTNFc2lkJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnByb2NlZHVyZXNfY2FsbG5vcmV0dXJuJTIyJTIwaWQlM0QlMjIyZFclMkJEN1hjUHpqcCUyM3JqV2MlNUIlMkNJJTIyJTNFJTNDbXV0YXRpb24lMjBuYW1lJTNEJTIyZXR3YXMlMjB0dW4lMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIyTWVsZGV0ZXh0JTIyJTNFJTNDJTJGYXJnJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBUkcwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTIzZVYxazRibDMlMkYqdCUzRE9xJTNBRHJydyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VEZXIlMjBHZXNjaGlycnNwJUMzJUJDbGVyJTIwd3VyZGUlMjBhbmdlc2NoYWx0ZW4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyc2EuJTI1QXg1STZDYUUyRSUzRGwlNjAoX3IlMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy5HMDAwUkEwNzg0MTcxMk4xLkNvbW1hbmRzLnNwZWFrLXZvbHVtZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJVM053dWglM0JtIUE0MSUyRkslMkY3ckspciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTM1JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMlU4JTJGbyUyMzhqTGFUb1RpJTNGQ2clMkJqJTdEViUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQWxleGEuU3ByYWNoYXVzZ2FiZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZX01TJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRXNlYyUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ0xFQVJfUlVOTklORyUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMm9nJTdDJTNCUX5YJTI1eW14dCU1RSU3RFRqVCUzREUoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRURlciUyMEdlc2NoaXJyc3AlQzMlQkNsZXIlMjB3dXJkZSUyMGFuZ2VzY2hhbHRlbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJWMkYlNURtJTdDJTNBWUhtTWMhJTIzMDAlNjBMJTJGJTNBJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMnRydWUlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy5HMDAwUkEwNzg0MTcxMk4xLkNvbW1hbmRzLnNwZWFrLXZvbHVtZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZX01TJTIyJTNFMTAlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VzZWMlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNMRUFSX1JVTk5JTkclMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyISU1QlowVVolNDAlN0QwIShrQzclMjMlM0ZvJTVCa1olMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0U0MCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfb3BlcmF0aW9uJTIyJTIwaWQlM0QlMjJ4UX5BeGpwJTVFeCU3RHhJYyU3RCUzRiUyQ35iZDMlMjIlMjBpbmxpbmUlM0QlMjJmYWxzZSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIybSUzQUYlNUJBJTJDQyU1RDIzJTdCdFZHLiU1QjlvZ3glMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUdUJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJ+OWhtLmJuN0p1UiU2MDlUJTVFNTdyJTdDISUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWhtLXJwYy4yLjAwMDFEM0M5OUNCMTYxLjYuUE9XRVIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMkpmbFYlNUVydjFfM3kpJTJDRiUzRmpZfjNSJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX29wZXJhdGlvbiUyMiUyMGlkJTNEJTIyV1pxZXFycWJ4JTNEekItJTQwRCl+bF8hJTIyJTIwaW5saW5lJTNEJTIyZmFsc2UlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUFORCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMjIlMjMlMkMyJTdCVXpLVVhLYy1iJTNCYVhJJTVEZCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFRVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMlglN0M3SUVxJTJCJTIzZVE2VSU1REslNDBRWkRMXyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5WaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3RpdiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjI4OCU1Qng5VFF0VCU2MGhrYWdYJTNGdXglM0I2JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMiUzQjVUMndqaGdSa0k0YSUzRGZQJTNEdHhBJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VHVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlglN0M1JTNCV0tfNiUyQmIqWDdkV1RoZFlGJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjUlNURKTyUzRG5LRiUzRnMyYllPJTVCeWV4VC4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VBVVMlMjBaYWVobGVyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJKaHZZJTIzbTJlKSU3QmlaZyolN0RVKVU3JTNEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJxZDJqY1pTWC5qJTYwbWFrcy0wWEdHJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjUlNURKTyUzRG5LRiUzRnMyYllPJTVCeWV4VC4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VBVVMlMjBaYWVobGVyJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyLVklN0RabWYlNUUlMjNobSUyQ1d5TDYpS2NkLSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFTUlOVVMlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU1RX5wfiUyM1UhUiUyQmVhSmphV342VSlkJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyYyUyRmIlM0J0ZWg3Qi50ZmF2VyUyMzNLeDIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyNSU1REpPJTNEbktGJTNGczJiWU8lNUJ5ZXhULiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRUFVUyUyMFphZWhsZXIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlMkYlNDBkU3daJTdCSHBiS2s2eTNfcSUzRmp6JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU3Q0Z+JTNENHNnNk9jYjc0ciU1REQwODVXJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX29wZXJhdGlvbiUyMiUyMGlkJTNEJTIyaUhwRX4lM0R1VWlDMEhZWkUwaXhmdiUyMiUyMGlubGluZSUzRCUyMmZhbHNlJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VBTkQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJ+JTNEJTYwQUtrVilwLkxSSyU3Qy0peW0lMjMwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VMVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyJTdCYk1QM1JjdCU1RHN+JTVFT3hCJTVFS1lKQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWhtLXJwYy4yLjAwMDFEM0M5OUNCMTYxLjYuUE9XRVIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMll+TE0lMkMzYSU3RDIlMkI4dUJlJTI0Y3MlNUIobyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMiFjQVIlNDBrYWdrZG4lMkZkdSFsZzUlM0ZyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyOVRnZ0RmcWxUaiUzRjRPTyUzRCU0MCU2MH5lTyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5WaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3RpdiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJTMVIha1M5LSUzRmtRayUyQktTXzVRcyUyMyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8yJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9jaGFuZ2UlMjIlMjBpZCUzRCUyMlQudW41JTNELnJkTGwlNDB3b0duKjRvSiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTI1JTVESk8lM0RuS0YlM0ZzMmJZTyU1QnlleFQuJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFQVVTJTIwWmFlaGxlciUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyREVMVEElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiUzRmMlM0RwWExPYzYxdjNBSlAuKGQlM0FrJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMk1hJTNCJTNGJTVFWDUhcnQuV3J0VCUzRHFFdiUyNSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIySiEwY3ZURyUyM2htJTJCLnZwT21QJTJCRGglMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjIlMjVBYk1PJTNGSjJEJTVCZi1yQ0VXeXElM0RPJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMnU1RlpOc3lwZ3MlM0FwUFVZc1YxJTNEZyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTI1JTVESk8lM0RuS0YlM0ZzMmJZTyU1QnlleFQuJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFQVVTJTIwWmFlaGxlciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIydWFIUCU1QlAzd3QtIWglNDBNIVVFJTVEZVglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0U3JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2NhbGxub3JldHVybiUyMiUyMGlkJTNEJTIyNU03ZUpvbEYzUlBLR3MtWSUyRlI1eSUyMiUzRSUzQ211dGF0aW9uJTIwbmFtZSUzRCUyMmV0d2FzJTIwdHVuJTIyJTNFJTNDYXJnJTIwbmFtZSUzRCUyMk1lbGRldGV4dCUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQVJHMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMndWJTJGQXcycS0lMkNsJTVEY2gwY3olM0FpRyU3QiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VEZXIlMjBHZXNjaGlycnNwJUMzJUJDbGVyJTIwaXN0JTIwZmVydGlnJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMkM3JTIzTSEpTUJObFhXRmRSeXUoMSUyRiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyT0MlM0FiV2glNUJlMi1iSyU1RVVaZ1hCcmQlMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VXYXNjaGRhdWVyJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyZndhMGR2bG4xbV90JTI1eTRkJTVEJTNEKnYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRU1JTlVTJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJXOGclM0IlMjN0RnolMjVWOEt4JTQwIW1qdXFqJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZV9nZXQlMjIlMjBpZCUzRCUyMiUyNSUzQiU0MGI4S05USFJlbiU1QkxQMEZ2SyUyQyUyMiUzRSUzQ211dGF0aW9uJTIwZm9ybWF0JTNEJTIyZmFsc2UlMjIlMjBsYW5ndWFnZSUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUFRJT04lMjIlM0VzaWQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlNDBsIWgxbE9NcFhsbzhOJTdEeSUzQSU3QiU1RCUyQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlhPcG0pQSU0ME8lMjVURiUzQShTQXk3KEklN0QlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMk9DJTNBYldoJTVCZTItYkslNUVVWmdYQnJkJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFV2FzY2hkYXVlciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfY2xlYXJ0aW1lb3V0JTIyJTIwaWQlM0QlMjI4JTQwRzJ2ZnROUSUzQmJnJTJDJTdEX28uJTdDLV8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFdGltZW91dCUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3NldHRpbWVvdXQlMjIlMjBpZCUzRCUyMiUzQlJldE0lNUQxTk1ucShnTTIlM0YqNnZPJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRXRpbWVvdXQlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZJTIyJTNFNSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRW1pbiUzQyUyRmZpZWxkJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX2NsZWFydGltZW91dCUyMiUyMGlkJTNEJTIySk92RzQwJTQwUiU1RCUyNXRfJTNGJTVCNFEzJTNERiUyNCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0V0aW1lb3V0MiUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3NldHRpbWVvdXQlMjIlMjBpZCUzRCUyMmYlNjB+S25JSSUzRCUzQnIlNUQlMjMoJTJGJTNBaiUyQyUyQk1FJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRXRpbWVvdXQyJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWSUyMiUzRTQlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VtaW4lM0MlMkZmaWVsZCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2NhbGxub3JldHVybiUyMiUyMGlkJTNEJTIyNkoyayUzRCUyNCU1RUJLTXlFfiUzQm9CKkZZJTVEJTIyJTNFJTNDbXV0YXRpb24lMjBuYW1lJTNEJTIyZXR3YXMlMjB0dW4lMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIyTWVsZGV0ZXh0JTIyJTNFJTNDJTJGYXJnJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBUkcwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dF9qb2luJTIyJTIwaWQlM0QlMjJTVX5TbWclNUQlN0NQSldOJTVFWWhUJTYwJTJGVUglMjIlMjBpbmxpbmUlM0QlMjJmYWxzZSUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjI3JTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyWSgqWEptXyEha3AuV0J1ZTQ5T3YlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRGVyJTIwU3AlQzMlQkNsdm9yZ2FuZyUyMGRhdWVydGUlMjAqJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfcm91bmQlMjIlMjBpZCUzRCUyMmc2UCU3QkklM0ExRyUzRm80c01iTyU0MCFWcHAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRVJPVU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJOVU0lMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiUzRk5mJTJDN0UwNEljaSUyNSlfX05OJTdDRzMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UzLjElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyJTdCJTIzNThGJTJCZWwlMkJuYTdWOFlyJTdCZHAlM0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRURJVklERSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyaUw5OSU3REU4ZUklNUItZkNzJTNEZkkxM0UlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJmSUZsUUhfVExGfjIlNUJGcHpXeVMlM0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMk9DJTNBYldoJTVCZTItYkslNUVVWmdYQnJkJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFV2FzY2hkYXVlciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMnQlNDAoRkpJKVp2S0R5JTNCcyUzQiU1RCUzRG9EJTJCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFNjAlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJWJTJDYlolNjAyMCU3Q3YlMkJVU3ZZVUNIOSUyRiU1RSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTYwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQyJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyRCFHakxybSU0MHdKU0xIVFIxRCU1RE1mJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyME1pbnV0ZW4qJTIwdW5kJTIwaGF0JTIwKiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDMlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMnlEcGZjViUyNERjSk9DVVQ5JTYwWk1BLiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRXNvdXJjZWFuYWx5dGl4LjAuaG0tcnBjX18yX18wMDAxRDNDOTlDQjE2MV9fNl9fRU5FUkdZX0NPVU5URVIuMjAyMC5jb25zdW1lZC4wMV9jdXJyZW50X2RheSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJ+YWolMjNacDdRNSU1QnRrUHUyWiUyQkU5JTVFJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyMGtXaColMjBFbmVyZ2llJTIwZiVDMyVCQ3IlMjAoKiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMilfNS4lNUVFRC1WWVh+REJLc3NRWUclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0Vzb3VyY2VhbmFseXRpeC4wLmhtLXJwY19fMl9fMDAwMUQzQzk5Q0IxNjFfXzZfX0VORVJHWV9DT1VOVEVSLjIwMjAuY29zdHMuMDFfY3VycmVudF9kYXklM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQ2JTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyNGslMjUueSUyQlBCJTJCRyUzRE1+dVJ2eSU3Q0MlNjAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTIwJUUyJTgyJUFDKiklMjB2ZXJicmF1Y2h0LiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJIdmQydkwpcHRjNCUyRnNmam9QM0t4JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjUlNURKTyUzRG5LRiUzRnMyYllPJTVCeWV4VC4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VBVVMlMjBaYWVobGVyJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJZeiU2MClyeiUyQy5lc3g4JTQwbEMlMkJkbW0lNUUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMnNqMFpBRyUzREVMUS0lN0NYZVdtdEVnMyUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyZVglN0NCZiU3Qm9XJTJCJTI1QkFXLlklM0Epa2JLJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiU1RCUyMzdZZUclM0ZJVEYhJTdEKjlkOG1yNUglMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy5HMDAwUkEwNzg0MTcxMk4xLkNvbW1hbmRzLnNwZWFrLXZvbHVtZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJPeUhmLVQ4OSU1QjJhbkJqT2NYbHVZJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMzUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyV21+QihFVUlEJTdDTjR4M0NjcEolM0I0JTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMnRydWUlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5BbGV4YS5TcHJhY2hhdXNnYWJlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0UxJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTJDJTVCJTYwfkRudVklN0RGM2slNjBJUUwuJTI1SU4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRGVyJTIwR2VzY2hpcnJzcCVDMyVCQ2xlciUyMGlzdCUyMGZlcnRpZy4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyTnElN0JqJTNCJTI1c2trJTdCb2VHUl9KKTlVZSUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VhbGV4YTIuMC5FY2hvLURldmljZXMuRzAwMFJBMDc4NDE3MTJOMS5Db21tYW5kcy5zcGVhay12b2x1bWUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWV9NUyUyMiUzRTEwJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMjUpWmclM0RtQWxVJTJCbyUyQ2drJTNBJTQwSU9oJTI1JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFNDAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyJTdDelYlM0JCRSUyNWpISiU1RCU3Q2c0bzglN0IlNUJRcCUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VobS1ycGMuMi4wMDAxRDNDOTlDQjE2MS4zLlNUQVRFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0U1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFbWluJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyfnFtOSU2MCU3Qkt6JTNCJTYwcSgzRi5MaWFzSCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjIuM34lMkI1KG0lM0RrQyFjSSUzRCUyNVBaRlMlMkIlMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIydHJ1ZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2X1N0YXRlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0U1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFbWluJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMklPKTUwUX5tMVIlM0ZrflhLa1JmSjclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiUyM05XSiU0MGQoTXNQZiU1RGgpcylzeC4xJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuVmlzLkdlc2NoaXJyc3AlQzMlQkNsZXIuQWt0aXZfU3RhdGUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyS2xlIVdFJTIzU35VM3hhSGhnMyUyQkglMjMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX2NsZWFyaW50ZXJ2YWwlMjIlMjBpZCUzRCUyMiUyMyElNUVFcDlGaU83NjIlMjNsJTdDZV8lMkZRTiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0VJbnRlcnZhbGwlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjIlNUUlM0QlMkNMJTI1JTJDV2hrV1VCbUlaSV9BJTNEdyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVHp5ZDVxWTlxJTVCZW8qJTNGNCUyQ00uQSUyQiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRU1pbnV0ZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyITVYTyU3QiUyNSU3Qm4zJTNCZzVIRGdSVWtnZyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyQlVJbWJISTFOQmlDZiUyQmNCc2ktbCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFU2VrdW5kZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyYlAlNUJSMjRoJTJDdUxRRCU1QmYzQjFaNkglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmRlYnVnJTIyJTIwaWQlM0QlMjJ+TmFDJTVFRG15eSU3Q3hEdlMlNUIlNUQ0aCFoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0Vsb2clM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyKCpNSW90dUx+aTklNUVhfnUlN0N+NUglN0MlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRGVyJTIwR2VzY2hpcnJzcCVDMyVCQ2xlciUyMGlzdCUyMGpldHp0JTIwZmVydGlnJTIwc2NoYWx0ZSUyMFN0cm9tJTIwYWIlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2RlZm5vcmV0dXJuJTIyJTIwaWQlM0QlMjIhKCU0MG4tJTNBJTJCIVBqSiU1RSU1RXFINiU3Q1YlNURKJTIyJTIweCUzRCUyMjc4OCUyMiUyMHklM0QlMjIxMyUyMiUzRSUzQ211dGF0aW9uJTNFJTNDYXJnJTIwbmFtZSUzRCUyMk1lbGRldGV4dCUyMiUyMHZhcmlkJTNEJTIyZnItTnNKbiUyQnhEMCU2MEl3QUZxJTQwJTI1LiUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRWV0d2FzJTIwdHVuJTNDJTJGZmllbGQlM0UlM0Njb21tZW50JTIwcGlubmVkJTNEJTIyZmFsc2UlMjIlMjBoJTNEJTIyODAlMjIlMjB3JTNEJTIyMTYwJTIyJTNFQmVzY2hyZWliZSUyMGRpZXNlJTIwRnVua3Rpb24lMjAlRTIlODAlQTYlM0MlMkZjb21tZW50JTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQUNLJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHVzaG92ZXIlMjIlMjBpZCUzRCUyMjRwUW51Q1BRbyUzRndIazdzTiUzQSU0MF92JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIySU5TVEFOQ0UlMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlNPVU5EJTIyJTNFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJQUklPUklUWSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkxPRyUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyTUVTU0FHRSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJDVGJJV3NWRzVCKnBwYiU1RHdMJTJGY0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFdGV4dCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTYwUXhoYmdNcVZXV01vRyUzQlclNUJZdWYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMmZyLU5zSm4lMkJ4RDAlNjBJd0FGcSU0MCUyNS4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VNZWxkZXRleHQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJUSVRMRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMiUyNS1oKCU1RWpwb3JWJTNGJTVFJTVEJTVFa0tVNmpnJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyQiUyQiUyQiUyMEdlc2NoaXJyc3AlQzMlQkNsZXIlMjAlMkIlMkIlMkIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGeG1sJTNF -
@Dr-Bakterius sagte in Beta Test js-controller 3.0.x auf GitHub:
Der rflink-Adapter konnte keinen Serial-Port finden. Auch eine Neuinstallation des Adapters hat nicht geholfen. Dieses Problem konnte ich dann durch folgenden Befehl im iobroker-Verzeichnis lösen (hat halt dann rund 15 Minuten gedauert alle Adapter neu zu installieren):
Ja ich fürchte hier greif das Auto-Rebuild nicht weil das nicht verfügbare Serialport im ersten schritt für Admin abgefangen wird und somit keine Exception fliegt. Was hat das Log genau gesagt?
@apollon77 sagte in Beta Test js-controller 3.0.x auf GitHub:
Ja ich fürchte hier greif das Auto-Rebuild nicht weil das nicht verfügbare Serialport im ersten schritt für Admin abgefangen wird und somit keine Exception fliegt. Was hat das Log genau gesagt?
Sorry, das ist weg. Hatte vor einem zweiten Versuch einen Snapshot wiederhergestellt und dann gleich das reinstall gefahren.
-
Sodele, ich habe die v3.0.6 auch einmal zusammen mit node.js v12.16.2 installiert.
Die Installation verlief fehlerfrei, alle Adapter sind grün! :+1:In den Logs habe ich zum Einen die hier bereits erwähnte Warnung
adapter.objects.getObjectView is deprecated ...
Bei mir kommen diese wiederkehrend vomiot.0und vomweb.0Adapter sowie einmalig vomadmin.0Vom
broadlink2.0Adapter erhalte ich wiederholt die Warnung:
State value to set is invalid for broadlink2.0.RMproWohnzimmer.Temperature: The state contains the forbidden properties user!Beim Start des
iot.0Adapter kommen dann noch diese Meldungen:iot.0 2020-04-12 12:29:17.324 warn (2413) adapter.objects.getObjectView is deprecated, and will be removed in the future. Please use adapter.getObjectView/Async. Report this to Developer! iot.0 2020-04-12 12:29:17.281 warn (2413) adapter.objects.getObjectView is deprecated, and will be removed in the future. Please use adapter.getObjectView/Async. Report this to Developer! iot.0 2020-04-12 12:29:17.143 warn (2413) adapter.objects.getObjectView is deprecated, and will be removed in the future. Please use adapter.getObjectView/Async. Report this to Developer! iot.0 2020-04-12 12:29:16.779 warn (2413) adapter.objects.getObjectView is deprecated, and will be removed in the future. Please use adapter.getObjectView/Async. Report this to Developer! iot.0 2020-04-12 12:29:16.779 warn (2413) adapter.objects.getObjectView is deprecated, and will be removed in the future. Please use adapter.getObjectView/Async. Report this to Developer! iot.0 2020-04-12 12:29:16.771 warn the module (for instance, using `npm rebuild` or `npm install`). iot.0 2020-04-12 12:29:16.771 warn NODE_MODULE_VERSION 72. Please try re-compiling or re-installing iot.0 2020-04-12 12:29:16.771 warn NODE_MODULE_VERSION 64. This version of Node.js requires iot.0 2020-04-12 12:29:16.771 warn was compiled against a different Node.js version using iot.0 2020-04-12 12:29:16.771 warn (2413) Cannot initialize getImage: Error: The module '/opt/iobroker/node_modules/canvas/build/Release/canvas.node'Ach ja, schöne Ostern an alle ;-)
@BBTown sagte in Beta Test js-controller 3.0.x auf GitHub:
In den Logs habe ich zum Einen die hier bereits erwähnte Warnung
adapter.objects.getObjectView is deprecated ...
Bei mir kommen diese wiederkehrend vom iot.0 und vom web.0 Adapter sowie einmalig vom admin.0Bei mir noch beim Info-Adapter und beim MaxCube-Adapter. Auf Github gibt es dazu schon entsprechende Issues.
-
Aktuelle Test Version 3.0.6 Veröffentlichungsdatum 08.04.2020 Github Link npm install ioBroker/ioBroker.js-controllerHallo in die Tester-Runde,
wie im neuen Release-Cycle für den js-controller geplant starten wir heute den Beta Test des neuen js-controller 3.0 (Releasename "Elena"). Wie auch bei den letzten beiden Versionen starten wir die erste Teststufe direkt von GitHub. Also bitte nur mitmachen wenn Ihr wisst was das heisst :-) Aber auch der Weg zurück ist unten beschrieben.
Nach dem frühzeitigen aus für Node.js 8 bereits letzten November setzt diese neue Version nun Node.js 10.x voraus und funktioniert ebenso mit Node.js 12.x und, nach aktuellem Stand, auch mit der Ende April kommenden Node.js 14.x. Wir werden mit diesem Release auch die empfohlene Node.js Version für ioBroker auf 12.x anheben.
Diese Version bringt einige Features mit, ist aber ebenso der Beginn um "unter der Haube" einiges zu vereinheitlichen und Wildwuchs in der Umsetzung einiger Adapter etwas einzugrenzen. Es gibt allerdings auch neue Features mit die die Adapter-Entwicklung vereinfachen und Hürden abbauen. Aus diesem Grund ist auch die Liste der Themen welche vor allem für Entwickler relevant sind diesmal recht lang.
Allerdings werden Aktionen von Adaptern die eigentlich den Regeln widersprechen jetzt über Logging sichtbar gemacht. Bitte unterstützt hier und legt bei den relevanten Adaptern Issues an das diese Dinge gefixt werden können. Für den js-controller 3.1 (ca. September 2020) ist es geplant einige dieser "verbotenen Aktionen" auch wirklich zu verhindern. Details sehen wir dann.Der js-controller hat jetzt standardmässig Sentry als Fehler-Reporting eingebaut und aktiviert. Wenn also der js-controller mit einer Fehlermeldung abstürzt (und nur dann!) werden die Fehlerdetails anonymisiert an einen von uns selbst in Deutschland betriebenen Sentry-Server gemeldet. IPs o.ä. personalisierte Daten werden nicht gespeichert. Dieses Fehler-Reporting hilft uns bei Crashes schneller und genauer zu sehen was los ist und solche Fehler noch schneller beheben zu können. Bitte legt für Crashed die Ihr seht bitte trotzdem weiterhin GitHub-Issues an und unterstützt uns indem Ihr das Fehler-Reporting aktiviert lasst. Weitere Details und wie es deaktivierbar ist findet Ihr unter https://github.com/ioBroker/ioBroker.js-controller/blob/master/README.md#error-reporting-via-iobroker-sentry
Darüber hinaus gibt es natürlich viele Optimierungen und Fixes. Mehr dazu weiter unten und im Changelog. Ich hoffe auch diesmal auf Eure tatkräftige Unterstützung, sodass der Latest-Release dann genau so reibungslos verläuft wie bei der 2.2!
Ich bedenke mich diesmal besonders bei @foxriver76, @AlCalzone und natürlich @Bluefox für die aktive Mitarbeit an dieser Version!
Der js-controller 3.0 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1/2.2 ist problemlos möglich. Nur die Node.js Version muss jetzt mindestens 10.x sein, wie oben bereits ausgeführt. Wer überlegt die Node.js Version anzuheben bitte weiter unten im Abschnitt "Was ist zu testen" lesen :-)
Installation
VOR der Installation
Wie bei jedem Test dieser Art: Bitte macht ein Backup!iobroker backupbzw kopieren desiobroker-dataVerzeichnisses reichen an sich aus. Bitte nicht das node_modules Verzeichnis einfach kopieren, da sonst symbolische Links kaputt gehen können, was zu größeren Problemen danach führt. Die alte Version des js-controller kann im Notfall einfach wieder pernpm install iobroker.js-controller@versioninstalliert werden und sollte alles wieder herstellen.Windows
Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden, darf der js-controller nicht mit npm aktualisiert werden. Es wird eine neue Version des Windows Installers geben, die das Update des js-controllers mit wenigen Mausklicks ermöglicht. Wir updaten dazu hier im Thread.
Linux
Für den Beta-Test muss der js-controller direkt per npm installiert werden. Dazu bitte den ioBroker auf dem Server beenden und dann in einer Shell UNBEDINGT in das ioBroker Verzeichnis wechseln. Dann mittels
npm install ioBroker/ioBroker.js-controllerden Controller manuell aktualisieren. Bevor ihr loslegt, lest aber bitte erst noch die folgenden Hinweise! Der zweite Post in diesem Thread ist für eine FAQ reserviert. Bitte schaut auch dort gern einmal rein.Achtung: Slave-Systeme zuerst!
Bei einem Multi-Host-System, welches auf js-controller 2.2 läuft ist es beim Update auf Version 3.0 empfohlen, zuerst die Slave-Systeme zu aktualisieren. Der Master wird als letztes aktualisiert!Bei Updates von Master/Slave-Systemen mit js-controller 1.5 oder früher auf die 3.0 müssen zwingend zuerst die Slaves und der Master als letztes aktualisiert werden. Die Slaves bleiben nach dem Update offline und werden erst wieder funktionieren wenn auch der Master auf die 3.0 aktualisiert wurde!
Nötige Adapter-Aktualisierungen
- Pushover funktioniert in Version 1.1.x. Wer Version 1.2.x drauf hat könnte Probleme bekommen und sollte bitte 1.3.0 vom GitHub versuchen ob die Probleme damit behoben werden.
- tr-064 in Version 4.0.0 ist nötig
- tr-064-community wird nun offiziell nicht mehr funktionieren.
- Die soef Adapter "firetv" und "wifilight" funktionieren nicht mehr und haben Updates bekommen: Bitte wifilight 1.1.0 bzw firetv 1.0.0 nutzen. Falls jemand "wifilight-community" oder "firetv-community" nutzt bitte wieder zurück auf die anderen wechseln.
- Der soef Adapter "Lightify" funktioniert ebenso nicht mehr. Da Lightify als Platform allerdings in ein paar Monaten nicht mehr weiter betrieben wird haben wir entscheiden hier keinen Aufwand mehr reinzustecken. Am besten die Geräte über zigbee direkt anbinden.
Es werden aber, wie oben ausgeführt, einige Adapter ggf Warnungen ins Log schreiben. Hier ist beispielsweise radar2 schon bekannt. Falls das Problematisch ist ist aktuell die einzige Option das Loglevel der Instanz auf "Error" zu setzen.
Fehler
Wenn bei der Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer (iobroker fixwer schon einen js-controller 2.x hat, alternativ weiterhin manuell viacurl -sL https://iobroker.net/fix.sh | bash -) nutzen und die Installation wiederholen.Falls es auch danach noch Fehler gibt, bitte die Installation erneut mittels
sudo -H -u iobroker npm install ioBroker/ioBroker.js-controllerversuchen. Bitte berichtet solche Fälle hier im Thread.Nach der Installation
Nach der Installation den ioBroker wieder starten (z.B. mittelsiobroker start).Wenn alles klappt merkt Ihr außer der höheren Versionsnummer in der Host-Ansicht im Admin keinen Unterschied. Alles funktioniert weiterhin wie vorher. Alle Adapterinstanzen starten und funktionieren. Wenn das so ist hat alles geklappt. Die großen Änderungen sind alle "Unter der Haube" versteckt.
Falls im Log Warn-Meldungen auftauchen mit dem Hinweis diese an den Entwickler zu senden, dann bitte schauen welcher Adapter es ist und entsprechend dort Issues bitte anlegen!
Was hat sich geändert, was besonders ansehen/testen?
Neben einiger weiterer Bugfixes gibt es folgende Änderungen und Fixes zu erwähnen:
- Der neue js-controller kann erkennen wenn es ein Node.js Update gab durch welches ggf, Adapter nicht mehr funktionieren und sollte diese automatisch reparieren (rebuilden). Wer also überlegt in dem Zuge des Tests seine Node.js Version anzuheben bitte mal explizit NICHT die übliche Anleitung nach dem Node-js update mit dem Rebuild befolgen sondern ioBroker einfach nach dem Node.js Update starten. Interessant ist ob sich alles selbst "heilt" :-)
- Der js-controller prüft jetzt vor jedem Start eines Adapters wieviel RAM noch frei ist und warnt im Log falls dies zu wenig ist. Die Limits sind 100MB (Warnung) bzw. 50MB (Fehler) und dies soll verhindern das mehr Adapter-Prozesse genutzt werden als RAM verfügbar ist. Hier sind wir gespannt auf Eure berichte.
- Logfiles sollten jetzt wirklich nach dem täglichen rotieren auf Linux-Systemen als .gz Dateien abgelegt werden.
Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:
Generell ist zu testen, ob alles noch so funktioniert wie vorher auch. Das ist das wichtigste!
Wie Fehler melden?
Wer sich unsicher ist, ob ein Fehler vorliegt, sollte am besten hier im Thread das Problem beschreiben. So können wir alle versuchen, das Problem nachzuvollziehen und ggf. einzugrenzen.
Sobald ein Fehler auftritt der in einer Fehlermeldung oder einen Crash mit Fehlerdetails im Log oder auf Kommandozeile endet, dann dazu am besten direkt ein GitHub-Issue im js-controller Projekt öffnen und zusätzlich hier im Thread posten. Je detaillierter die Angaben im Issue sind (genaue Fehlermeldungen/Logs, Infos zur OS- und Node.js-Umgebung sowie genaue Schritte zur Reproduktion des Problems), umso schneller können wir Fehler einkreisen und beheben.
Wir wünschen allen viel Spaß beim Testen und vielen Dank für Eure Unterstützung!
FAQ
FAQ1: Ich sehe Einträge wie "will not read this file (socketio.png) in future versions: socketio.admin is not an object of type "meta"" im Logfile Was soll ich tun?
Wenn der Name mit ".admin" lautet (wie hier "socketio.admin") dann bitte einfach ein "iobroker upload socketio" (in dem Fall) machen. Es kan sein das früher mal Admin Files nocht korrekt angelegt wurden oder auch Dinge nocht ganz vollständig gelöscht wurden. Das Upload geht auch wenn Ihr den Adapter gar nicht mehr installiert habt. Danach sollte aber die Meldung weg sein.
@apollon77
Ich habe beieinem Update eine Fehlermeldung:host.ioBroker 2020-04-14 07:38:33.524 info iobroker exit 0 host.ioBroker 2020-04-14 07:38:32.508 error iobroker Required dependency "hm-rpc" not found. host.ioBroker 2020-04-14 07:38:30.806 info iobroker upgrade hm-rega host.ioBroker 2020-04-14 07:38:24.475 info Update repository "latest" under "http://download.iobroker.net/sources-dist-latest.json" -
@apollon77
Ich habe beieinem Update eine Fehlermeldung:host.ioBroker 2020-04-14 07:38:33.524 info iobroker exit 0 host.ioBroker 2020-04-14 07:38:32.508 error iobroker Required dependency "hm-rpc" not found. host.ioBroker 2020-04-14 07:38:30.806 info iobroker upgrade hm-rega host.ioBroker 2020-04-14 07:38:24.475 info Update repository "latest" under "http://download.iobroker.net/sources-dist-latest.json" -
@Chaot und ist hm-rpc installiert?
@foxriver76
Ja.
Deshalb wundert es mich ja so.
Ich habe nichts mit Homematic. Deshalb werde ich mal beides deinstallieren. Oder wird der innerhalb vom ioBroker für irgendwas gebraucht? Der war bei mir von Anfang an installiert. -
@foxriver76
Ja.
Deshalb wundert es mich ja so.
Ich habe nichts mit Homematic. Deshalb werde ich mal beides deinstallieren. Oder wird der innerhalb vom ioBroker für irgendwas gebraucht? Der war bei mir von Anfang an installiert. -
@Chaot naja warte doch mal bitte ... lass doch mal untersuchen ... nicht gleich den Holzhammer!!
Hats Du ein oder mehrere Hosts?
Zeig mal die Instanzliste bitte@apollon77 Ich habe nur einen Host und kein Homematic System.
Um zu testen habe ich jetzt nach Entfernen der Instanzen beide nochmals hinzugefügt und keine Fehlermeldung mehr erhalten.
Du hats Recht. Ich hätte sinnvollerweise warten sollen. Hilft dir das Log weiter? -
@apollon77 Ich habe nur einen Host und kein Homematic System.
Um zu testen habe ich jetzt nach Entfernen der Instanzen beide nochmals hinzugefügt und keine Fehlermeldung mehr erhalten.
Du hats Recht. Ich hätte sinnvollerweise warten sollen. Hilft dir das Log weiter? -
@Chaot Ääähm mal so gefragt: welche Controller Version war es denn? Die 3.0.7? Oder eine frühere?
@apollon77 Die 3.0.7 vom 13.04.
-
@apollon77 Ich habe nur einen Host und kein Homematic System.
Um zu testen habe ich jetzt nach Entfernen der Instanzen beide nochmals hinzugefügt und keine Fehlermeldung mehr erhalten.
Du hats Recht. Ich hätte sinnvollerweise warten sollen. Hilft dir das Log weiter? -
Hey All,
auf GitHub habe ich die 3.0.8 AKA Latest-RC1 für Euch. Sie behebt keine Probleme, weil bisher nichts mehr gross neu dazugekommen ist, optimiert aber noch etwas und verhindert potentielle Probleme.
Das Changelog ist daher recht übersichtlich:
3.0.8 (2020-04-xx) Release Elena- (foxriver76/bluefox/Apollon77) small code optimizations
- (Apollon77) dependency updates