Skip to content

Skripten / Logik

Hilfe zu JavaScript, Blockly, TypeScript, Node-RED, Scenes und text2command

16.6k Themen 213.9k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    maxclaudiM
    @Daniel-8 sagte in Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro): ...Im Moment bin ich noch am Script umbauen, da ja das neue Firmware Update meint, wenn es den minSoc unterschreitet vom Netz laden zu müssen Hallo Daniel, freut mich von Dir mal wieder zu lesen, wie geht's Dir? Ja Zendure macht gerade viel .... Es wird immer mehr reglementiert. Vieles meiner Meinung nach unnötig und wahrscheinlich zum (Eigen-)Schutz. Persönlich würde ich abwarten und neue Firmware nicht sofort aktualisieren. Setze doch MinSoc sehr tief und baue einen Entladeschutz ein. Der verhindert dann rechtzeitig, dass Batterien weiter entladen werden noch bevor minSoc erreicht wird. Beispiel Ausschnitt einer Steuerung von mir: [image: 1773228124807-8f148a02-f02b-4f23-a03b-81edf9e089f1-image.png]
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    andre1deA
    Danke! Ich habe gerade meine Frage formuliert, wie man es macht, wenn ich das alles ohne Zeitplan mache, um ständige Abfragen zu reduzieren. Und du hast schon die zweite Variante vorgeschlagen. Auf die Idee mit „aktuelle Zeit ist nicht zwischen“ kam ich wegen Problemen mit dem Zeitintervall über Mitternacht, also von 23:00 bis 05:00 Uhr. Irgendwie hat das nicht funktioniert, und ich musste zwei Skripte machen: eines von 23:00 bis 23:59 und ein zweites von 00:00 bis 05:00. Deshalb dachte ich, ich nehme „nicht zwischen“, habe es aber noch nicht getestet.
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    Marc BergM
    Es gibt in der Verson 1.3.0 einen neuen Node: iob-setObject (Stand 10.02.26 noch beta) Mit dem neuen Node kann man ioBroker-Objektdefinitionen (Metadaten) direkt schreiben und ändern. Hauptfunktionen: Instanz-Konfigurationen ändern - z.B. MQTT publish-Pattern, Intervalle, etc. Objekt-Eigenschaften aktualisieren - Namen, Rollen, Einheiten, Min/Max-Werte ändern es gibt zwei Modi: Merge-Modus : Ändert nur die angegebenen Eigenschaften, alle anderen bleiben erhalten Replace-Modus: Überschreibt das komplette Objekt Typischer Workflow: Objekt mit iob-getobject holen Mit Change-Node gewünschte Properties ändern Mit iob-setobject zurückschreiben
  • setTimeout innerhalb if-Ausführungsblock

    9
    3
    0 Stimmen
    9 Beiträge
    582 Aufrufe
    M
    @paul53 genial, vielen Dank für die Hilfe, es funktioniert wie gewollt... und das mit sooo wenig Quellcode. Klasse. Ich hab nur eine kleine Änderung/Ergänzung virgenommen: Bisher hatte ich es so, dass die broadlinkszenen die Befehle "Lampe an, 1000," + den Sendebefehl für die Farbe enthielten. Dies habe ich aufgelöst und nun nur noch den betreffenden Farbcode drin und eine eigene Szene für das Einschalten der Lampe mit Farbe weiss gesetzt. Im "Schedule-Anweisungsblock" sende ich dann gleich den Befehl für das Einschalten der Lampe mit, damit dann in der Farbwechsel-Funktion nur noch das Umschalten zwischen den Farben erfolgt. Das Ausschalten will ich bewusst manuell halten - als Erinnerungsstütze weil man vielleicht nicht immer in der Küche steht wenn die Lampe angeht. EDIT: Da ich ja ich den Schefule-Part das Einschalten der Lampe mit reingekommen habe, würde ja folglich die Lampe zu den Schedule-Zriten angehen - unabhängig davon ob überhaupt ein Entsorgungsrermin ansteht oder nicht. schedule('0 12,16,20 * * *', function() { Leichtverpackungen = getState('ical.0.events.1.Leichtverpackungen').val; Papiertonne = getState('ical.0.events.1.Papiertonne').val; Bioabfallbehaelter = getState('ical.0.events.1.Bioabfallbehaelter').val; Restmuelltonne = getState('ical.0.events.1.Restmuelltonne').val; Problemmuell = getState('ical.0.events.1.Problemmuell').val; cnt = 0; muelllicht(); Um das zu verhindern habe ich hier noch eine if-Abfeage eingebaut, welche dann zu den Schefule-Zeiten als erstes prüft, ob eine der Events überhaupt ein True hat. Wenn ja, dann wird die Funktion aufgerufen oder eben nicht. schedule('0 14,17,20 * * *', function() { Leichtverpackungen = getState('ical.0.events.1.Leichtverpackungen').val; Papiertonne = getState('ical.0.events.1.Papiertonne').val; Bioabfallbehaelter = getState('ical.0.events.1.Bioabfallbehaelter').val; Restmuelltonne = getState('ical.0.events.1.Restmuelltonne').val; Problemmuell = getState('ical.0.events.1.Problemmuell').val; cnt = 0; if(Leichtverpackungen === true || Papiertonne === true || Bioabfallbehaelter === true || Restmuelltonne === true || Problemmuell === true) { setState("broadlink2.0.Scenes.Lampe an", true); muelllicht(); } Nochmals vielen, vielen Dank. Gruß Markus
  • [gelöst] Blockly - per ssh an anderen Rechner und script ausführen

    Verschoben
    42
    0 Stimmen
    42 Beiträge
    14k Aufrufe
    wauzziW
    @oliverio Klasse ! Kann evtl. ein Mod die Anleitung irgendwo zentral platzieren ? Ich denke so haben Mehrere etwas davon. Und ich finde die Anleitung, wenn ich es in ein paar Jahren mal wieder benötige ;-)
  • Markisensteuerung mittels enet Einfahren mit aus statt 0

    2
    0 Stimmen
    2 Beiträge
    126 Aufrufe
    M
    @msh Wie sieht denn die Objektstruktur von Gira enet in ioBroker aus? Bitte Bilder darstellen und das Objekt um das es geht mit RAW-Experten Daten. [image: 1618178646607-ec652355-327e-4aa9-9e77-12f56f11a97e-image.png] Stift anklicken und die Daten in Codetags (</>) schicken. Genau beschreiben in welchem Objekt du die Daten eingibst und wann soll welcher Wert eintragen werden. Kommt die Ansage über Alexa? Alexa2-Adpater installiert?
  • Werte aus einem SNMP Otect-String herausfiltern

    1
    4
    0 Stimmen
    1 Beiträge
    126 Aufrufe
    Niemand hat geantwortet
  • Lichteten durch Skript starten?

    14
    0 Stimmen
    14 Beiträge
    1k Aufrufe
    M
    @mcu vielen Dank für Deine Hilfe. Mit Blockly habe zwar noch wirklich überhaupt keine Berührungspunkte gehabt aber das werde ich auf jeden Fall probieren. Danke.
  • Philips-TV Apple Homekit

    1
    0 Stimmen
    1 Beiträge
    970 Aufrufe
    Niemand hat geantwortet
  • LED aufdimmen und abdimmen

    3
    0 Stimmen
    3 Beiträge
    403 Aufrufe
    F
    @mickym Sorry, hatte vergessen hier eine Rückmeldung zu geben :man-facepalming: aber ich habe damit mein Problem beheben können. Danke für den Tipp
  • [erledigt] Subscription a. Ordnerelemente einfacher möglich?

    3
    0 Stimmen
    3 Beiträge
    234 Aufrufe
    PeoplesP
    @paul53 sagte in Subscription auf Ordnerelemente einfacher möglich?: on(/^0_userdata.0.Shutters.ventilate.+/, function(dp) { Genau so meinte ich das, Danke Paul!
  • [Problem]Daten aus JSON nutzen

    Verschoben
    10
    4
    0 Stimmen
    10 Beiträge
    4k Aufrufe
    PLCHome 0P
    @thomytp said in [Problem]Daten aus JSON nutzen: Die Daten kommen von der Growatt API über MQTT: Schon mal den ioBroker Growatt Adapter getestet?
  • Hilfe, irgend ein Script verhaut mein Daten

    javascript
    20
    3
    0 Stimmen
    20 Beiträge
    2k Aufrufe
    AtifanA
    Hi Leute, wollte hier mal das Thema nochmal aufgreifen. Das Problem besteht bei mir immer noch weiterhin. Meistens funktioniert alles und meine Werte werden ab 23:58 sauber umgeschrieben. Manchmal funktioniert aber irgendwas nicht richtig, so dass die Werte alle nicht stimmen. Es werden ja mehrere Blockly-Scripte ausgeführt. Habe diese Scripte mir jetzt mal in Javascript anzeigen lassen und da ist mir eine Sache aufgefallen. Die meisten Scripte nutzen "function", aber bei zwei Scripten ist mir aufgefallen dass da "async function" steht. Kann das evtl. die Probleme verursachen? Wenn ich mir die Scripte als Blockly anschaue sehen sie identisch aus, als Javascript angezeigt ist aber dieser Unterschied zu erkennen. Ich habe die Punkte wo "async function" vorkam jetzt mal in "function" geändert und teste mal ob das funktioniert. Könnte das das Problem sein? Oder muss ich evtl. überall statt "function" eine "async function" draus machen? Vielleicht funktioniert es dann? var Strom_Bezug_aus_Netz_Variable_07, Strom_Bezug_aus_Netz_Variable_06, Strom_Bezug_aus_Netz_Variable_05, Strom_Bezug_aus_Netz_Variable_04, Strom_Bezug_aus_Netz_Variable_03, Strom_Bezug_aus_Netz_Variable_02, Strom_Bezug_aus_Netz_Variable_01, Strom_Bezug_Durchschnitt, Strom_Bezug_aus_Netz_Variable_00; // Berechnung Durschnittsverbrauch letzte 7 Tage schedule('{"time":{"exactTime":true,"start":"23:58"},"period":{"days":1}}', function () { // muss um 23:59 Uhr starten, damit aktueller Wert // heute_aktuell noch mit berücksichtigt wird Strom_Bezug_aus_Netz_Variable_07 = getState("0_userdata.0.Strom_Bezug_aus_Netz_07_vor_6_Tagen").val; Strom_Bezug_aus_Netz_Variable_06 = getState("0_userdata.0.Strom_Bezug_aus_Netz_06_vor_5_Tagen").val; Strom_Bezug_aus_Netz_Variable_05 = getState("0_userdata.0.Strom_Bezug_aus_Netz_05_vor_4_Tagen").val; Strom_Bezug_aus_Netz_Variable_04 = getState("0_userdata.0.Strom_Bezug_aus_Netz_04_vor_3_Tagen").val; Strom_Bezug_aus_Netz_Variable_03 = getState("0_userdata.0.Strom_Bezug_aus_Netz_03_vorgestern").val; Strom_Bezug_aus_Netz_Variable_02 = getState("0_userdata.0.Strom_Bezug_aus_Netz_02_gestern").val; Strom_Bezug_aus_Netz_Variable_01 = getState("0_userdata.0.Strom_Bezug_aus_Netz_01_heute_aktuell").val; Strom_Bezug_Durchschnitt = [Strom_Bezug_aus_Netz_Variable_01, Strom_Bezug_aus_Netz_Variable_02, Strom_Bezug_aus_Netz_Variable_03, Strom_Bezug_aus_Netz_Variable_04, Strom_Bezug_aus_Netz_Variable_05, Strom_Bezug_aus_Netz_Variable_06, Strom_Bezug_aus_Netz_Variable_07].reduce(function(x, y) {return x + y;}) / 7; setState("0_userdata.0.Strom_Bezug_aus_Netz_08_Durchschnitt_letzen_7_Tage"/*Strom_Bezug_aus_Netz_08_Durchschnitt_letzen_7_Tage*/, Strom_Bezug_Durchschnitt, true); }); // Bezug aus Netz der letzten 7 Tage schedule('{"time":{"exactTime":true,"start":"23:59"},"period":{"days":1}}', function () { Strom_Bezug_aus_Netz_Variable_07 = getState("0_userdata.0.Strom_Bezug_aus_Netz_06_vor_5_Tagen").val; setStateDelayed("0_userdata.0.Strom_Bezug_aus_Netz_07_vor_6_Tagen"/*Strom_Bezug_aus_Netz_07_vor_6_Tagen*/, Strom_Bezug_aus_Netz_Variable_07, true, 2000, false); Strom_Bezug_aus_Netz_Variable_06 = getState("0_userdata.0.Strom_Bezug_aus_Netz_05_vor_4_Tagen").val; setStateDelayed("0_userdata.0.Strom_Bezug_aus_Netz_06_vor_5_Tagen"/*Strom_Bezug_aus_Netz_06_vor_5_Tagen*/, Strom_Bezug_aus_Netz_Variable_06, true, 2000, false); Strom_Bezug_aus_Netz_Variable_05 = getState("0_userdata.0.Strom_Bezug_aus_Netz_04_vor_3_Tagen").val; setStateDelayed("0_userdata.0.Strom_Bezug_aus_Netz_05_vor_4_Tagen"/*Strom_Bezug_aus_Netz_05_vor_4_Tagen*/, Strom_Bezug_aus_Netz_Variable_05, true, 2000, false); Strom_Bezug_aus_Netz_Variable_04 = getState("0_userdata.0.Strom_Bezug_aus_Netz_03_vorgestern").val; setStateDelayed("0_userdata.0.Strom_Bezug_aus_Netz_04_vor_3_Tagen"/*Strom_Bezug_aus_Netz_04_vor_3_Tagen*/, Strom_Bezug_aus_Netz_Variable_04, true, 2000, false); Strom_Bezug_aus_Netz_Variable_03 = getState("0_userdata.0.Strom_Bezug_aus_Netz_02_gestern").val; setStateDelayed("0_userdata.0.Strom_Bezug_aus_Netz_03_vorgestern"/*Strom_Bezug_aus_Netz_03_vorgestern*/, Strom_Bezug_aus_Netz_Variable_03, true, 2000, false); Strom_Bezug_aus_Netz_Variable_02 = getState("0_userdata.0.Strom_Bezug_aus_Netz_01_heute_aktuell").val; setStateDelayed("0_userdata.0.Strom_Bezug_aus_Netz_02_gestern"/*Strom_Bezug_aus_Netz_02_gestern*/, Strom_Bezug_aus_Netz_Variable_02, true, 2000, false); Strom_Bezug_aus_Netz_Variable_01 = 0; setStateDelayed("0_userdata.0.Strom_Bezug_aus_Netz_01_heute_aktuell"/*Strom_Bezug_aus_Netz_01_heute_aktuell*/, Strom_Bezug_aus_Netz_Variable_01, true, 2000, false); Strom_Bezug_aus_Netz_Variable_00 = getState("smartmeter.0.1-0:1_8_0__255.value").val; setStateDelayed("0_userdata.0.Strom_Bezug_aus_Netz_00_Zählerstand_Tagesende"/*Strom_Bezug_aus_Netz_00_Zählerstand_Tagesende*/, Strom_Bezug_aus_Netz_Variable_00, true, 2000, false); }); on({id: 'smartmeter.0.1-0:1_8_0__255.value', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("0_userdata.0.Strom_Bezug_aus_Netz_01_heute_aktuell"/*Strom_Bezug_aus_Netz_01_heute_aktuell*/, (getState("smartmeter.0.1-0:1_8_0__255.value").val - getState("0_userdata.0.Strom_Bezug_aus_Netz_00_Zählerstand_Tagesende").val), true); }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0N2YXJpYWJsZXMlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyNWslN0J0YXolN0MlMkYxQyE2NXglMkYpRiglM0YlM0ElMjIlM0VTdHJvbV9CZXp1Z19hdXNfTmV0el9WYXJpYWJsZV8wNyUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMmwlMjNyJTYwZVUpeSElNUUhcCU3QiF+JTVFRGp3KSUyMiUzRVN0cm9tX0JlenVnX2F1c19OZXR6X1ZhcmlhYmxlXzA2JTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyTCglNUJiLjZ4JTJGJTdCMXFGViU1RCUzQkZ6bTMlM0ElMjIlM0VTdHJvbV9CZXp1Z19hdXNfTmV0el9WYXJpYWJsZV8wNSUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMiUyNWxSJTNCMCU2MDdLJTNBNkZrVVkyLiUyNEZyJTIzJTIyJTNFU3Ryb21fQmV6dWdfYXVzX05ldHpfVmFyaWFibGVfMDQlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjIlMjQlMkZZOHNPWTAxdi00ajNoNiUyNXJXciUyMiUzRVN0cm9tX0JlenVnX2F1c19OZXR6X1ZhcmlhYmxlXzAzJTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyMEhzRGROcChUV2clM0Y4WTl+XypITyUyMiUzRVN0cm9tX0JlenVnX2F1c19OZXR6X1ZhcmlhYmxlXzAyJTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyRyg3JTdCfiU0MEZvdW1Rc24lMkJIOVVqXy0lMjIlM0VTdHJvbV9CZXp1Z19hdXNfTmV0el9WYXJpYWJsZV8wMSUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMnJ+KEJmVCUzQiFsTjRyYiUzRmYlMjMlMkNOSmMlMjIlM0VTdHJvbV9CZXp1Z19EdXJjaHNjaG5pdHQlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjJDS05MWCU3Q1pUJTdELSUzRFd0LTd0JTVCLlVfJTIyJTNFU3Ryb21fQmV6dWdfYXVzX05ldHpfVmFyaWFibGVfMDAlM0MlMkZ2YXJpYWJsZSUzRSUzQyUyRnZhcmlhYmxlcyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMm0lMjMlN0IlMkYwTSUyM3NtVEdlJTdCQ1NuakQucCUyMiUyMHglM0QlMjItMTQ2MiUyMiUyMHklM0QlMjItNzEyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUJlcmVjaG51bmclMjBEdXJzY2huaXR0c3ZlcmJyYXVjaCUyMGxldHp0ZSUyMDclMjBUYWdlJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyc2NoZWR1bGUlMjIlMjBpZCUzRCUyMkJoJTVEfkElMkZ1VC4tSUslMkNVKlBRNURSJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU0NIRURVTEUlMjIlM0UlN0IlMjJ0aW1lJTIyJTNBJTdCJTIyZXhhY3RUaW1lJTIyJTNBdHJ1ZSUyQyUyMnN0YXJ0JTIyJTNBJTIyMjMlM0E1OCUyMiU3RCUyQyUyMnBlcmlvZCUyMiUzQSU3QiUyMmRheXMlMjIlM0ExJTdEJTdEJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIydVZyUlAlMjNrZEMlMkYyYUwlM0E3bUoxSFclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFbXVzcyUyMHVtJTIwMjMlM0E1OSUyMFVociUyMHN0YXJ0ZW4lMkMlMjBkYW1pdCUyMGFrdHVlbGxlciUyMFdlcnQlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJvSyUyRiglN0QtJTNEJTYwdyFleENaJTJCJTI0JTIzSE4pJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRWhldXRlX2FrdHVlbGwlMjBub2NoJTIwbWl0JTIwYmVyJUMzJUJDY2tzaWNodGlndCUyMHdpcmQlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJYUld6ZlZ3LnJCflFNJTdEJTdDJTIzJTdDJTNGJTQwVyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyNWslN0J0YXolN0MlMkYxQyE2NXglMkYpRiglM0YlM0ElMjIlM0VTdHJvbV9CZXp1Z19hdXNfTmV0el9WYXJpYWJsZV8wNyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMjJGbE9wN3hEcXZBQiglN0MqWEglN0NfISUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRTBfdXNlcmRhdGEuMC5TdHJvbV9CZXp1Z19hdXNfTmV0el8wN192b3JfNl9UYWdlbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJlVU84SyUyNHMlNUUlN0NKT3hoLU4lM0ElM0F5TEclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMmwlMjNyJTYwZVUpeSElNUUhcCU3QiF+JTVFRGp3KSUyMiUzRVN0cm9tX0JlenVnX2F1c19OZXR6X1ZhcmlhYmxlXzA2JTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyZXN6MUFyaWUlMkNIZGM1NnNOJTNCWl8zJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFMF91c2VyZGF0YS4wLlN0cm9tX0JlenVnX2F1c19OZXR6XzA2X3Zvcl81X1RhZ2VuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMmozeTNxbWh6JTdDVmZQR2xmMmNzXyU0MCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyTCglNUJiLjZ4JTJGJTdCMXFGViU1RCUzQkZ6bTMlM0ElMjIlM0VTdHJvbV9CZXp1Z19hdXNfTmV0el9WYXJpYWJsZV8wNSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMmUlM0REVU8lMjV4WUxEJTNBTXdyLiU1RVlBLiklMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0UwX3VzZXJkYXRhLjAuU3Ryb21fQmV6dWdfYXVzX05ldHpfMDVfdm9yXzRfVGFnZW4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyWkFaayU0MEMlM0FCJTVFJTJGbX5VZjlnJTJGJTNCfmUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyNWxSJTNCMCU2MDdLJTNBNkZrVVkyLiUyNEZyJTIzJTIyJTNFU3Ryb21fQmV6dWdfYXVzX05ldHpfVmFyaWFibGVfMDQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjIpLSUzQSlYZGE5JTVCJTIzYiU3Q1RWNmFWWEpUJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFMF91c2VyZGF0YS4wLlN0cm9tX0JlenVnX2F1c19OZXR6XzA0X3Zvcl8zX1RhZ2VuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiUzQXF4VmpvSyUzQW9nZSUzQVdKbmFqJTI0aSU2MCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTI0JTJGWThzT1kwMXYtNGozaDYlMjVyV3IlMjIlM0VTdHJvbV9CZXp1Z19hdXNfTmV0el9WYXJpYWJsZV8wMyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMmpjITd0JTVFOXJLeSUyMyUzRCUyNCUyQ2JiJTNCQ1M3JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFMF91c2VyZGF0YS4wLlN0cm9tX0JlenVnX2F1c19OZXR6XzAzX3Zvcmdlc3Rlcm4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyJTIzJTdCJTNCNktMd0dyQ2I0Y2FxbmZsaDElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMjBIc0RkTnAoVFdnJTNGOFk5fl8qSE8lMjIlM0VTdHJvbV9CZXp1Z19hdXNfTmV0el9WYXJpYWJsZV8wMiUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMlRoRiUzRCU3QnFJJTI0SSU2MGxuWGxTfjk5JTNCdCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRTBfdXNlcmRhdGEuMC5TdHJvbV9CZXp1Z19hdXNfTmV0el8wMl9nZXN0ZXJuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiUyM2ctMEZqb0wlMjRVSGE2JTdDVSUzQSU3QmkqNSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyRyg3JTdCfiU0MEZvdW1Rc24lMkJIOVVqXy0lMjIlM0VTdHJvbV9CZXp1Z19hdXNfTmV0el9WYXJpYWJsZV8wMSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMkUtV01qcjFUKTUlNjAlMjVPaiUyNW1DV2clNUUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0UwX3VzZXJkYXRhLjAuU3Ryb21fQmV6dWdfYXVzX05ldHpfMDFfaGV1dGVfYWt0dWVsbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjIlN0JnJTdDJTVCbUIxYW9ZUSUyRi5yKndDZiUzRH4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnJ+KEJmVCUzQiFsTjRyYiUzRmYlMjMlMkNOSmMlMjIlM0VTdHJvbV9CZXp1Z19EdXJjaHNjaG5pdHQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9hcml0aG1ldGljJTIyJTIwaWQlM0QlMjJ5NFNlVG8lMkM3ZmJKMjBUUTJDRnIxJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VESVZJREUlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMjNnNiUzQVgzJTdDJTNBZ1JGTmMlNURKWE4lMjVoSiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfb25fbGlzdCUyMiUyMGlkJTNEJTIyZGJTbjhYTXVwJTdCaiUyNWNwWSUyNCU1RU40RSUyMiUzRSUzQ211dGF0aW9uJTIwb3AlM0QlMjJTVU0lMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFU1VNJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJMSVNUJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybGlzdHNfY3JlYXRlX3dpdGglMjIlMjBpZCUzRCUyMiUyQ0klN0Rzc2FHanY3TlBRNktnQVYlNUIxJTIyJTNFJTNDbXV0YXRpb24lMjBpdGVtcyUzRCUyMjclMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJuWWEwSnEqdSUzRHlVcyU3Q216MVpjOSElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMkcoNyU3Qn4lNDBGb3VtUXNuJTJCSDlVal8tJTIyJTNFU3Ryb21fQmV6dWdfYXVzX05ldHpfVmFyaWFibGVfMDElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTVEKXMlN0IlNjAyaiU3RDBuYylqOEwlNUVlbGQ1JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIwSHNEZE5wKFRXZyUzRjhZOX5fKkhPJTIyJTNFU3Ryb21fQmV6dWdfYXVzX05ldHpfVmFyaWFibGVfMDIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQyJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyY2JOQThLZCklNUJ+ekpOJTVESS0lN0MyVCUyNSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTI0JTJGWThzT1kwMXYtNGozaDYlMjVyV3IlMjIlM0VTdHJvbV9CZXp1Z19hdXNfTmV0el9WYXJpYWJsZV8wMyUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDMlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjIpJTNBKkolM0ZqLnpQJTJGUUwtJTI0WDEyX2FhJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjVsUiUzQjAlNjA3SyUzQTZGa1VZMi4lMjRGciUyMyUyMiUzRVN0cm9tX0JlenVnX2F1c19OZXR6X1ZhcmlhYmxlXzA0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQURENCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMiUzQUY0JTVCcVhxTiU1RChCJTVFKmhGJTI1JTI0JTJCQTklMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMkwoJTVCYi42eCUyRiU3QjFxRlYlNUQlM0JGem0zJTNBJTIyJTNFU3Ryb21fQmV6dWdfYXVzX05ldHpfVmFyaWFibGVfMDUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQ1JTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyWSl+JTVCdGh6dGJDcXRZd1NhJTdEZVclN0MlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMmwlMjNyJTYwZVUpeSElNUUhcCU3QiF+JTVFRGp3KSUyMiUzRVN0cm9tX0JlenVnX2F1c19OZXR6X1ZhcmlhYmxlXzA2JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQURENiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMkElNjApcCU3QiUzRkxCIWJpMFUlMjM4bDRMbS4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMjVrJTdCdGF6JTdDJTJGMUMhNjV4JTJGKUYoJTNGJTNBJTIyJTNFU3Ryb21fQmV6dWdfYXVzX05ldHpfVmFyaWFibGVfMDclM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMl9BYVp1KFFLMyUyRm4xME9TdGdUSiolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0U3JTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydXBkYXRlJTIyJTIwaWQlM0QlMjIlNUJfNHRKdUwxcm51KTQwKSUzRHklMkNYcSUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRTBfdXNlcmRhdGEuMC5TdHJvbV9CZXp1Z19hdXNfTmV0el8wOF9EdXJjaHNjaG5pdHRfbGV0emVuXzdfVGFnZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlklMjNmKVolNUU4SXFPJTNCRU9SJTVCSG9vJTdCJTI0JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJyfihCZlQlM0IhbE40cmIlM0ZmJTIzJTJDTkpjJTIyJTNFU3Ryb21fQmV6dWdfRHVyY2hzY2huaXR0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMi4lM0JhJTdDRS4lNUVUaUElNUIoJTdEcXAlM0YlMkMlMkZzbCUyMiUyMHglM0QlMjItMTQ2MiUyMiUyMHklM0QlMjItODclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFQmV6dWclMjBhdXMlMjBOZXR6JTIwZGVyJTIwbGV0enRlbiUyMDclMjBUYWdlJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyc2NoZWR1bGUlMjIlMjBpZCUzRCUyMkQ4YjhBJTVCVnUlN0M2SGlvdEFWcGdmJTJGJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU0NIRURVTEUlMjIlM0UlN0IlMjJ0aW1lJTIyJTNBJTdCJTIyZXhhY3RUaW1lJTIyJTNBdHJ1ZSUyQyUyMnN0YXJ0JTIyJTNBJTIyMjMlM0E1OSUyMiU3RCUyQyUyMnBlcmlvZCUyMiUzQSU3QiUyMmRheXMlMjIlM0ExJTdEJTdEJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyeih2STlKMWhsaCUyQlppJTJCVSUyNSUyMyU2MElIJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjI1ayU3QnRheiU3QyUyRjFDITY1eCUyRilGKCUzRiUzQSUyMiUzRVN0cm9tX0JlenVnX2F1c19OZXR6X1ZhcmlhYmxlXzA3JTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyaUJZbDFWaGlYcTYlN0N6JTNGJTNCTyh3JTJGJTdDJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFMF91c2VyZGF0YS4wLlN0cm9tX0JlenVnX2F1c19OZXR6XzA2X3Zvcl81X1RhZ2VuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnVwZGF0ZSUyMiUyMGlkJTNEJTIyNktveEolN0I1JTIzQkNUJTNERSlLRiU3QlpyOCUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGRlbGF5X2lucHV0JTNEJTIydHJ1ZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFMF91c2VyZGF0YS4wLlN0cm9tX0JlenVnX2F1c19OZXR6XzA3X3Zvcl82X1RhZ2VuJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0UyMDAwJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFbXMlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNMRUFSX1JVTk5JTkclMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJXJTI0JTNEfiUzRkppanMlM0JrMFUocGVPdiU1RFAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMjVrJTdCdGF6JTdDJTJGMUMhNjV4JTJGKUYoJTNGJTNBJTIyJTNFU3Ryb21fQmV6dWdfYXVzX05ldHpfVmFyaWFibGVfMDclM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyOCU0MEZRJTdEJTVELSU3QiUzRkRLJTdEISU1RDFYbmN6ZCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIybCUyM3IlNjBlVSl5ISU1RSFwJTdCIX4lNUVEancpJTIyJTNFU3Ryb21fQmV6dWdfYXVzX05ldHpfVmFyaWFibGVfMDYlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJHTyUyQiUyNUwlMkNyKFFLJTdCTio3MSU2MDRyJTYwJTJCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFMF91c2VyZGF0YS4wLlN0cm9tX0JlenVnX2F1c19OZXR6XzA1X3Zvcl80X1RhZ2VuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnVwZGF0ZSUyMiUyMGlkJTNEJTIyJTJCYjdGc0RHYTBEbWV6aTA0JTVCJTdDWFQlMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBkZWxheV9pbnB1dCUzRCUyMnRydWUlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRTBfdXNlcmRhdGEuMC5TdHJvbV9CZXp1Z19hdXNfTmV0el8wNl92b3JfNV9UYWdlbiUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZX01TJTIyJTNFMjAwMCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRW1zJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyQ1pwJTNCJTJGKHdvSW11Y1FrRiUzQXQ0JTJDKSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIybCUyM3IlNjBlVSl5ISU1RSFwJTdCIX4lNUVEancpJTIyJTNFU3Ryb21fQmV6dWdfYXVzX05ldHpfVmFyaWFibGVfMDYlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyTCUyNSUzQjE5IU5HUDg4ZnZyNCUyQiFBciUzRiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyTCglNUJiLjZ4JTJGJTdCMXFGViU1RCUzQkZ6bTMlM0ElMjIlM0VTdHJvbV9CZXp1Z19hdXNfTmV0el9WYXJpYWJsZV8wNSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMmdseVZRJTVEOSU1RTFuJTJCJTI0eS5EMi0xR0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0UwX3VzZXJkYXRhLjAuU3Ryb21fQmV6dWdfYXVzX05ldHpfMDRfdm9yXzNfVGFnZW4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydXBkYXRlJTIyJTIwaWQlM0QlMjI5MnBwNlIlMjRKX0d4JTJGRiUzRG0lMkMhcm4lMkMlMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBkZWxheV9pbnB1dCUzRCUyMnRydWUlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRTBfdXNlcmRhdGEuMC5TdHJvbV9CZXp1Z19hdXNfTmV0el8wNV92b3JfNF9UYWdlbiUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZX01TJTIyJTNFMjAwMCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRW1zJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyISU1QiUyQjVDSS1YX243VmtqZ18yZVExJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJMKCU1QmIuNnglMkYlN0IxcUZWJTVEJTNCRnptMyUzQSUyMiUzRVN0cm9tX0JlenVnX2F1c19OZXR6X1ZhcmlhYmxlXzA1JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMjElNURqJTNGJTdCN2UzZ0gzJTNETyUyQyolMkI1cFkpJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjVsUiUzQjAlNjA3SyUzQTZGa1VZMi4lMjRGciUyMyUyMiUzRVN0cm9tX0JlenVnX2F1c19OZXR6X1ZhcmlhYmxlXzA0JTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyITdtSkFuVlZlJTNEJTI1MXElN0N0c2lXJTdEbCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRTBfdXNlcmRhdGEuMC5TdHJvbV9CZXp1Z19hdXNfTmV0el8wM192b3JnZXN0ZXJuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnVwZGF0ZSUyMiUyMGlkJTNEJTIyUiUyNSU1RCpqSSUyNDJXVGh5JTJCJTIzUiUzRnklM0ZJdyUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGRlbGF5X2lucHV0JTNEJTIydHJ1ZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFMF91c2VyZGF0YS4wLlN0cm9tX0JlenVnX2F1c19OZXR6XzA0X3Zvcl8zX1RhZ2VuJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0UyMDAwJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFbXMlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNMRUFSX1JVTk5JTkclMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJtXyU3Q0FvSUElNDBLVCg3Kk0lNUVnJTIzJTdCX0UlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyNWxSJTNCMCU2MDdLJTNBNkZrVVkyLiUyNEZyJTIzJTIyJTNFU3Ryb21fQmV6dWdfYXVzX05ldHpfVmFyaWFibGVfMDQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyIVd+dGplbkMlM0QwYzJkOUtYJTNBTnolNUIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyNCUyRlk4c09ZMDF2LTRqM2g2JTI1cldyJTIyJTNFU3Ryb21fQmV6dWdfYXVzX05ldHpfVmFyaWFibGVfMDMlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjIlMkNWKTNLSVBWJTVEXyUyRndVJTYwQ3MlM0JmMEYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0UwX3VzZXJkYXRhLjAuU3Ryb21fQmV6dWdfYXVzX05ldHpfMDJfZ2VzdGVybiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ1cGRhdGUlMjIlMjBpZCUzRCUyMjYoIWlCbElQJTYwaSpXVHIyaXklM0FEOCUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGRlbGF5X2lucHV0JTNEJTIydHJ1ZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFMF91c2VyZGF0YS4wLlN0cm9tX0JlenVnX2F1c19OZXR6XzAzX3Zvcmdlc3Rlcm4lM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWV9NUyUyMiUzRTIwMDAlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VtcyUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ0xFQVJfUlVOTklORyUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMllHQihQcyU2MCUyRiU1RCpYJTVFJTVCV0YzJTdDOCUyQyklMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyNCUyRlk4c09ZMDF2LTRqM2g2JTI1cldyJTIyJTNFU3Ryb21fQmV6dWdfYXVzX05ldHpfVmFyaWFibGVfMDMlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyQiUzRlJNZndyYXRGeWglMkMlN0Jzfm1VQ3MlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMjBIc0RkTnAoVFdnJTNGOFk5fl8qSE8lMjIlM0VTdHJvbV9CZXp1Z19hdXNfTmV0el9WYXJpYWJsZV8wMiUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMilTOXZUTHI2TWpmTmpCbCU1RGZPR0ElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0UwX3VzZXJkYXRhLjAuU3Ryb21fQmV6dWdfYXVzX05ldHpfMDFfaGV1dGVfYWt0dWVsbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ1cGRhdGUlMjIlMjBpZCUzRCUyMiUzRHIlM0YzJTNGbnYqRjN0UXhrJTYwJTdEMiU1RSUyRlolMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBkZWxheV9pbnB1dCUzRCUyMnRydWUlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRTBfdXNlcmRhdGEuMC5TdHJvbV9CZXp1Z19hdXNfTmV0el8wMl9nZXN0ZXJuJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0UyMDAwJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFbXMlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNMRUFSX1JVTk5JTkclMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjIlM0FWSSFhTClzLiU3RCU1RFh+TWZhaE53biUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyMEhzRGROcChUV2clM0Y4WTl+XypITyUyMiUzRVN0cm9tX0JlenVnX2F1c19OZXR6X1ZhcmlhYmxlXzAyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiUzQUx5JTNCJTVCUEQlNDBBY3ZYJTdCbSU0MFYlMkIlNUJXcyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyRyg3JTdCfiU0MEZvdW1Rc24lMkJIOVVqXy0lMjIlM0VTdHJvbV9CZXp1Z19hdXNfTmV0el9WYXJpYWJsZV8wMSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyRXlJR2JZWF9sSSUyM1dpcyUzQXRhaSU3Qk0lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnVwZGF0ZSUyMiUyMGlkJTNEJTIyJTNGYXZDNXFtdlFvOC02JTI0VSoyc0p6JTIyJTNFJTNDbXV0YXRpb24lMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhodG1sJTIyJTIwZGVsYXlfaW5wdXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0UwX3VzZXJkYXRhLjAuU3Ryb21fQmV6dWdfYXVzX05ldHpfMDFfaGV1dGVfYWt0dWVsbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZX01TJTIyJTNFMjAwMCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRW1zJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyN1NKMiU0MEMwJTNBQWJkJTdDJTQwQ18lM0RsJTIzd34lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMkcoNyU3Qn4lNDBGb3VtUXNuJTJCSDlVal8tJTIyJTNFU3Ryb21fQmV6dWdfYXVzX05ldHpfVmFyaWFibGVfMDElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyc01vUCU1QlJxJTNBKGhyVkVDWkZLZTIoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJDS05MWCU3Q1pUJTdELSUzRFd0LTd0JTVCLlVfJTIyJTNFU3Ryb21fQmV6dWdfYXVzX05ldHpfVmFyaWFibGVfMDAlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjIlM0FvJTJDJTNGU1hSV1dRSkclM0RoJTNCay4lNUJlbiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRXNtYXJ0bWV0ZXIuMC4xLTAlM0ExXzhfMF9fMjU1LnZhbHVlJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnVwZGF0ZSUyMiUyMGlkJTNEJTIyJTNBJTNCN2UhJTdCeFJTJTNBT1VEKCU1QiU0MDYyJTNGJTJGJTIyJTNFJTNDbXV0YXRpb24lMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhodG1sJTIyJTIwZGVsYXlfaW5wdXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0UwX3VzZXJkYXRhLjAuU3Ryb21fQmV6dWdfYXVzX05ldHpfMDBfWiVDMyVBNGhsZXJzdGFuZF9UYWdlc2VuZGUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWV9NUyUyMiUzRTIwMDAlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VtcyUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ0xFQVJfUlVOTklORyUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMm8lMjVybmYlNUJlREpzJTdEYiFudyU3QyU3Q1IlMkM5JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJDS05MWCU3Q1pUJTdELSUzRFd0LTd0JTVCLlVfJTIyJTNFU3Ryb21fQmV6dWdfYXVzX05ldHpfVmFyaWFibGVfMDAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb25fZXh0JTIyJTIwaWQlM0QlMjJmJTJCcEUwYSU0MEcqelUtYnklNDA2RlVlKCUyMiUyMHglM0QlMjItMTQ2MiUyMiUyMHklM0QlMjI2MTMlMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBpdGVtcyUzRCUyMjElMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTkRJVElPTiUyMiUzRWFueSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQUNLX0NPTkRJVElPTiUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEMCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMkMlMkNBYy16bSUzQlNFJTQwJTJGcm9POCU2MEglMkYlMkIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJvaWQlMjIlM0VzbWFydG1ldGVyLjAuMS0wJTNBMV84XzBfXzI1NS52YWx1ZSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydXBkYXRlJTIyJTIwaWQlM0QlMjJDNEolM0JDS3A4JTVEM0MlNUJYKjlaSXoqdiUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRTBfdXNlcmRhdGEuMC5TdHJvbV9CZXp1Z19hdXNfTmV0el8wMV9oZXV0ZV9ha3R1ZWxsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9hcml0aG1ldGljJTIyJTIwaWQlM0QlMjIhZCU3RGRBeCUzQiUyRkhMJTJCYSU1RTglN0R6JTJGQkZMJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VNSU5VUyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyX2I4JTNGUVBJWSUzRiUyNDYqRCUzQm1WSkZMLSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyMHZwMmUlN0RHYiU1RXgxbWpnJTIzRmlxSnklMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VzbWFydG1ldGVyLjAuMS0wJTNBMV84XzBfXzI1NS52YWx1ZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMkJ3RVplTWlpZlZ3WkJDZkc2eXEoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjIlMkJqSWMlMkI2T2dBQSU0MGFiV3ElMjRMKSU0MFYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0UwX3VzZXJkYXRhLjAuU3Ryb21fQmV6dWdfYXVzX05ldHpfMDBfWiVDMyVBNGhsZXJzdGFuZF9UYWdlc2VuZGUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnhtbCUzRQ==
  • [Vorlage] Heizungsthermostatsteuerung 2.1 - Script

    Verschoben javascript template heating climate
    1k
    1
    7 Stimmen
    1k Beiträge
    419k Aufrufe
    D
    @mymeyer Hi, sag mal kannst du dich noch daran errinern was mit den Gewerken war? Ich habe exakt das gleiche Problem. Viele Grüße DOM1
  • Python Skript mit Blockly exec ausführen

    5
    1
    0 Stimmen
    5 Beiträge
    760 Aufrufe
    J
    /closed habe das problem behoben. das python plugin war nicht mit sudo installiert.
  • Sofortige Auswertung trotz Verzögerung normal?

    blockly
    2
    1
    0 Stimmen
    2 Beiträge
    140 Aufrufe
    paul53P
    @padrino sagte: ist das normal? Ja, der Wert wird bei Aufruf der Funktion setStateDelayed(id, val, ack, delay) übergeben und nur setState(id, val, ack) wird verzögert ausgeführt.
  • JSON Parsen Weenect CAT 2 mit 2 GPSTracker

    javascript
    6
    3
    0 Stimmen
    6 Beiträge
    819 Aufrufe
    H
    @oliverio Erstmal Danke für die Hilfe Ich habe es hinbekommen. Heute Abend werde ich den Weg hier beschreiben. Mit diesem Blockly hole ich die Daten und wandle ich sie in lesbares JSON um. ...sagt mir Payload to large..... Sorry kann ich nicht hochladen.. ??? als Javascript: var originalText, suchText, tauschText, Text2, AnzZeichenSuchtext, timeout, MeinText, Stelle, pos_daten, result, neuerText, klammerauf1, klammerauf2, Teil_1, Teil_2, klammerzu1, klammerzu2, Tracker1, Tracker2, timeout2; // Beschreibe diese Funktion … async function changeText(originalText, suchText, tauschText) { Text2 = originalText; AnzZeichenSuchtext = suchText.length; Stelle = Text2.indexOf(suchText) + 1; while (Stelle > 0) { if (Stelle == 1) { // steht am Textanfang Teil_1 = tauschText; } else { Teil_1 = Text2.slice(0, Stelle - 1); } Teil_2 = Text2.slice(((Stelle + AnzZeichenSuchtext) - 1), Text2.length); Text2 = [Teil_1,tauschText,Teil_2].join(''); Stelle = Text2.indexOf(suchText) + 1; } return Text2; } on({id: 'javascript.0.Weenect.buttons.get_pos_butt', change: "any"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; exec('bash /home/iobroker/pos_get_sh.sh', async function (error, result, stderr) { timeout = setTimeout(async function () { pos_daten = result; setState("javascript.0.Weenect.js_rohdaten"/*Weenect.js_rohdaten*/, pos_daten, true); }, 1000); }); MeinText = String(pos_daten).toLowerCase(); if (!!MeinText.length) { neuerText = await changeText(MeinText, '\'', '"'); neuerText = await changeText(neuerText, 'none', '"unbekannt"'); } klammerauf1 = neuerText.indexOf('{') + 1; klammerauf2 = neuerText.lastIndexOf('{') + 1; klammerzu1 = neuerText.indexOf('}') + 1; klammerzu2 = neuerText.lastIndexOf('}') + 1; Tracker1 = neuerText.slice((klammerauf1 - 1), klammerzu1); Tracker2 = neuerText.slice((klammerauf2 - 1), klammerzu2); console.log(('Daten Tracker 1')); console.log(('Daten Tracker 2')); await wait(500); timeout2 = setTimeout(async function () { setStateDelayed('javascript.0.Weenect.js_Tracker1', Tracker1, true, 0, false); setStateDelayed('javascript.0.Weenect.js_Tracker2', Tracker2, true, 0, false); }, 1000); }); Dann hole ich jeweils für einen Tracker die Daten raus und schreibe sie in die Objekte. const idJson = 'javascript.0.Weenect.js_Tracker1'; const path = 'Weenect.Tracker1.'; const js = 'javascript.0.'; on(idJson, function(dp) { // triggert bei Wertänderung let obj = JSON.parse(dp.state.val); for(let prop in obj) { if(existsState(js + path + prop)) setState(path + prop, obj[prop], true); else createState(path + prop, obj[prop], {type: typeof obj[prop]}); } });
  • Blockly Intervall ordentlich stoppen

    4
    2
    0 Stimmen
    4 Beiträge
    814 Aufrufe
    Basti97B
    @denis-wodtke Funktioniert es bei dir richtig?
  • zentraler Licht-Aus-Schalter

    6
    0 Stimmen
    6 Beiträge
    545 Aufrufe
    paul53P
    @mathopa1973 sagte: alle aktuell eingeschalteten Lampen ausschalte $(selector).setState(false)
  • [gelöst] Skript Ausführung ohne Trigger?

    20
    1
    0 Stimmen
    20 Beiträge
    2k Aufrufe
    treff and NIXT
    Scheint nun alles zu funktionieren wie gewünscht, Vielen dank euch allen
  • [Gelöst] Hilfe bei MQTT Daten String / Parsen

    blockly communication javascript
    10
    2
    0 Stimmen
    10 Beiträge
    696 Aufrufe
    YodaY
    @paul53 super klasse es läuft - ich Danke dir für die Hilfe!!!:+1: Der Shelly Motion kann so nun über mqtt weiter verwendet verwendet werden. So Richtig lief dieser leider nicht im Shelly Adapter, Ich hatte dieses dort zuletzt als Gerät entfernt, und bekam ihn dort seit dem auch nicht wieder rein. Über dieses Umweg klappt es nun aber auch. Ich hoffe das Ding hat nur kein weg - musste Ihn nun grade erst wieder überreden das er Online geht - mal abwarten. [image: 1617660726938-26.jpg] [image: 1617660744062-27.jpg] [image: 1617660966072-28.jpg] <xml xmlns="https://developers.google.com/blockly/xml"> <block type="comment" id="PuvRy#0hgHV,?G;E_laZ" x="113" y="-137"> <field name="COMMENT">status</field> <next> <block type="on_ext" id="Yo#F?^4-0=GZ6^)MpcRc"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="p;PD%8nm~Exy_*S6~rQ9"> <field name="oid">mqtt.0.shellies.shellymotionsensor-60A42396038E.status</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="Cf%35qRbv`!_:sS)r;M$"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Shelly.Motion</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_attr" id="hSLi_es)=h1K,M|66xZ/"> <value name="PATH"> <shadow type="text" id="a6XOXOwYi=1{zJv#,Xw?"> <field name="TEXT">motion</field> </shadow> </value> <value name="OBJECT"> <block type="on_source" id="yqE%o(Y}4aWCA2vBk4,q"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="update" id="LBg+;y=*=8zJQDH|uj0e"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Shelly.Lux</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_attr" id="Ndk,bvgHAQOBunf!?j^1"> <value name="PATH"> <shadow type="text" id="+n.O)g9Vx@#/DKS6/,vK"> <field name="TEXT">lux</field> </shadow> </value> <value name="OBJECT"> <block type="on_source" id="mPbXlKh-j-5YSKe@KTho"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="update" id="wM+r2=S3waZ?M.:f.QFE"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Shelly.Bat</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_attr" id="i_P:79X~f[7MF{vG:%N4"> <value name="PATH"> <shadow type="text" id="N1LMn=AbwunK_2wV|rCY"> <field name="TEXT">bat</field> </shadow> </value> <value name="OBJECT"> <block type="on_source" id="pl[!U+-KU;@4*^1hOy8^"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml>
  • Sonos Addon / in welchen Pfad kommt eine mp3

    3
    0 Stimmen
    3 Beiträge
    334 Aufrufe
    J
    @webmaik hast du die Antwort schon gefunden, ich stehe gerade vor der gleichen Frage...
  • Cron wird ignoriert

    3
    1
    0 Stimmen
    3 Beiträge
    293 Aufrufe
    I
    @mcu DANKE!!

634

Online

32.7k

Benutzer

82.5k

Themen

1.3m

Beiträge