/*
 * More web UI HTML source arrays.
 * This file is auto generated, please don't make any changes manually.
 * Instead, see https://github.com/Aircoookie/WLED/wiki/Add-own-functionality#web-ui
 * to find out how to easily modify the web UI source!
 */ 

// Autogenerated from wled00/data/style.css, do not edit!!
const char PAGE_settingsCss[] PROGMEM = R"=====(<style>body{font-family:Verdana,sans-serif;text-align:center;background:#222;color:#fff;line-height:200%;margin:0}hr{border-color:#666}button{background:#333;color:#fff;font-family:Verdana,sans-serif;border:.3ch solid #333;display:inline-block;font-size:20px;margin:8px;margin-top:12px;cursor:pointer}.helpB{text-align:left;position:absolute;width:60px}input{background:#333;color:#fff;font-family:Verdana,sans-serif;border:.5ch solid #333}input[type=number]{width:4em}select{background:#333;color:#fff;font-family:Verdana,sans-serif;border:.5ch solid #333}td{padding:2px}.d5{width:4.5em!important}</style>)=====";


// Autogenerated from wled00/data/settings.htm, do not edit!!
const char PAGE_settings[] PROGMEM = R"=====(<!DOCTYPE html><html lang="de"><head><meta charset="UTF-8"><title>
EffectX-Light Einstellungen</title><style>
body{text-align:center;background:#222;height:100px;margin:0}html{--h:11.55vh}button{background:#333;color:#fff;font-family:Verdana,Helvetica,sans-serif;border:.3ch solid #333;display:inline-block;font-size:8vmin;height:var(--h);width:95%%;margin-top:2.4vh}
</style><script>
function BB(){window.frameElement&&(document.getElementById("b").style.display="none",document.documentElement.style.setProperty("--h","13.86vh"))}
</script></head><body onload="BB()"><form action="/"><button type="submit" 
id="b">Home</button></form><form action="/settings/wifi"><button type="submit">
WLan</button></form><form action="/settings/leds"><button type="submit">LED
</button></form><form action="/settings/ui"><button type="submit">Benutzer
</button></form><form action="/settings/sync"><button type="submit">
Synchronisation</button></form><form action="/settings/time"><button 
type="submit">Zeit & Voreinstellung</button></form><form action="/settings/sec">
<button type="submit">Sicherheit & Updates</button></form></body></html>)=====";


// Autogenerated from wled00/data/settings_wifi.htm, do not edit!!
const char PAGE_settings_wifi[] PROGMEM = R"=====(<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=500"><title>WiFi Einstellungen</title><script>
function H(){window.open("https://effectx-light.de/wiki")}function B(){window.open("/settings","_self")}function GetV() {var d=document;
%CSS%%SCSS%</head><body onload="GetV()">
<form id="form_s" name="Sf" method="post"><div class="helpB"><button 
type="button" onclick="H()">?</button></div><button type="button" onclick="B()">
Home</button><button type="submit">Speichern und verbinden</button><hr><h2>
Wlan Einstellungen</h2><h3>Verbindung zu deinem Wlan</h3>
Netzwerkname (leerlassen für den Offlinemodus):<br><input name="CS" 
maxlength="32"><br>Netzwerkpasswort:<br><input type="password" name="CP" 
maxlength="63"><br>Static IP (0.0.0.0 für DHCP):<br><input name="I0" 
type="number" min="0" max="255" required> . <input name="I1" type="number" 
min="0" max="255" required> . <input name="I2" type="number" min="0" max="255" 
required> . <input name="I3" type="number" min="0" max="255" required><br>
Static gateway:<br><input name="G0" type="number" min="0" max="255" required> . 
<input name="G1" type="number" min="0" max="255" required> . <input name="G2" 
type="number" min="0" max="255" required> . <input name="G3" type="number" 
min="0" max="255" required><br>Static subnet mask:<br><input name="S0" 
type="number" min="0" max="255" required> . <input name="S1" type="number" 
min="0" max="255" required> . <input name="S2" type="number" min="0" max="255" 
required> . <input name="S3" type="number" min="0" max="255" required><br>
mDNS Addresse (Name für deine EffectX-Light):<br><i>
effectx-light.local ist deine Lampe im Standard zu erreichen.<br>http:// <input 
name="CM" maxlength="32"> .local<br>Client IP: <span class="sip">Nicht verbunden
</span><br><h3>Access Point Einstellung</h3>
AP SSID (leer für kein Access Point):<br><input name="AS" maxlength="32"><br>
Verstecke AP Name: <input type="checkbox" name="AH"><br>
AP Passwort (leer lassen für kein Passwort):<br><input type="password" 
name="AP" maxlength="63" pattern="(.{8,63})|()" 
title="Empty or min. 8 characters"><br>Access Point WiFi Kanal: <input 
name="AC" type="number" min="1" max="13" required><br>AP wird geöffnet: <select 
name="AB"><option value="0">keine Verbindung nach dem Start zum Wlan</option>
<option value="1">Nicht verbunden</option><option value="2">Immer</option>
<option value="3">Nie (nicht empfohlen)</option></select><br>AP IP: <span 
class="sip">Nicht aktiv</span><br><h3>Experimentell</h3>
WiFi sleep deaktivieren: <input type="checkbox" name="WS"><br><i>
Wenn die Verbindung abbricht kann dies zur besserung führen.<br>
Höherer Stromverbrauch und erst nach Rücksprache mit dem Support</i><hr><button 
type="button" onclick="B()">Home</button><button type="submit">
Speichern und verbinden</button></i></form></body></html>)=====";


// Autogenerated from wled00/data/settings_leds.htm, do not edit!!
const char PAGE_settings_leds[] PROGMEM = R"=====(<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=500"><title>LED Settings</title><script>
var d=document,laprev=55,maxB=1,maxM=5e3,maxPB=4096,bquot=0;function H(){window.open("https://effectx-light.de/wiki")}function B(){window.open("/settings","_self")}function off(e){d.getElementsByName(e)[0].value=-1}function bLimits(e,n,t){maxB=e,maxM=t,maxPB=n}function trySubmit(e){e.preventDefault();var n=d.getElementsByTagName("input");for(i=0;i<n.length;i++){var t=n[i].name.substring(0,2);if(("L0"==t||"L1"==t||"RL"==t||"BT"==t||"IR"==t||"AX"==t)&&""!=n[i].value&&"-1"!=n[i].value){if(n[i].value>5&&n[i].value<12)return alert("Sorry, pins 6-11 can not be used."),void n[i].focus();if(d.um_p&&d.um_p.some(e=>e==parseInt(n[i].value,10)))return alert("Usermod pin conflict!"),void n[i].focus();for(j=i+1;j<n.length;j++){var a=n[j].name.substring(0,2);if(("L0"==a||"L1"==a||"RL"==a||"BT"==a||"IR"==a||"AX"==a)&&""!=n[j].value&&n[i].value==n[j].value)return alert("Pin conflict!"),void n[i].focus()}}}if(bquot>100){var l="Zu viele LEDs für mich";return maxM<1e4&&(l+=" Consider using an ESP32."),void alert(l)}d.Sf.checkValidity()&&d.Sf.submit(),d.Sf.reportValidity()&&d.Sf.submit()}function S(){GetV(),setABL()}function enABL(){var e=d.getElementById("able").checked;d.Sf.LA.value=e?laprev:0,d.getElementById("abl").style.display=e?"inline":"none",d.getElementById("psu2").style.display=e?"inline":"none",d.Sf.LA.value>0&&setABL()}function enLA(){var e=d.Sf.LAsel.value;d.Sf.LA.value=e,d.getElementById("LAdis").style.display=50==e?"inline":"none",UI()}function setABL(){switch(d.getElementById("able").checked=!0,d.Sf.LAsel.value=50,parseInt(d.Sf.LA.value)){case 0:d.getElementById("able").checked=!1,enABL();break;case 30:d.Sf.LAsel.value=30;break;case 35:d.Sf.LAsel.value=35;break;case 55:d.Sf.LAsel.value=55;break;case 255:d.Sf.LAsel.value=255;break;default:d.getElementById("LAdis").style.display="inline"}d.getElementById("m1").innerHTML=maxM,UI()}function getMem(e,n,t){return e<32?maxM<1e4&&3==t?e>29?20*n:15*n:maxM>=1e4?e>29?8*n:6*n:e>29?4*n:3*n:e>31&&e<48?5:44==e||45==e?4*n:3*n}function UI(){var e=!1,t=0;d.getElementById("ampwarning").style.display=d.Sf.MA.value>7200?"inline":"none",255==d.Sf.LA.value?laprev=12:d.Sf.LA.value>0&&(laprev=d.Sf.LA.value);var i=d.getElementsByTagName("select");for(u=0;u<i.length;u++)if("LT"==i[u].name.substring(0,2)){n=i[u].name.substring(2);var a=i[u].value;d.getElementById("p0d"+n).innerHTML=a>49?"Data pin:":a>41?"Pins:":"Pin:",d.getElementById("p1d"+n).innerHTML=a>49?"Clk:":"";var l=d.getElementsByName("L1"+n)[0];for(t+=getMem(a,d.getElementsByName("LC"+n)[0].value,d.getElementsByName("L0"+n)[0].value),p=1;p<5;p++){(l=d.getElementsByName("L"+p+n)[0])&&(a>49&&1==p||a>41&&a<50&&p+40<a?(l.style.display="inline",l.required=!0):(l.style.display="none",l.required=!1,l.value=""))}(30==a||31==a||a>40&&a<46&&43!=a)&&(e=!0),d.getElementById("dig"+n).style.display=a>31&&a<48?"none":"inline",d.getElementById("psd"+n).innerHTML=a>31&&a<48?"Index:":"Start:"}var o=d.querySelectorAll(".wc"),s=o.length;for(u=0;u<s;u++)o[u].style.display=e?"inline":"none";if(d.activeElement==d.getElementsByName("LC")[0]){var u=d.getElementsByClassName("iST").length;1==u&&(d.getElementsByName("LC0")[0].value=d.getElementsByName("LC")[0].value)}var r=d.getElementsByTagName("input"),m=0,v=0;for(u=0;u<r.length;u++){if("LC"!=r[u].name.substring(0,2)||"LC"==r[u].name);else{var y=parseInt(r[u].value,10);y&&(m+=y,y>v&&(v=y))}}d.getElementById("m0").innerHTML=t,bquot=t/maxM*100,d.getElementById("dbar").style.background=`linear-gradient(90deg, ${bquot>60?bquot>90?"red":"orange":"#ccc"} 0 ${bquot}%%, #444 ${bquot}%% 100%%)`,d.getElementById("ledwarning").style.display=v>800||bquot>80?"inline":"none",d.getElementById("wreason").innerHTML=bquot>80?"than 60%% of max. LED memory":"800 LEDs per pin";var g=Math.ceil((100+m*laprev)/500)/2;g=g>5?Math.ceil(g):g;i="";var f=30==d.Sf.LAsel.value,L=255==d.Sf.LAsel.value;g<1.02&&!f&&!L?i="ESP 5V pin mit 1A USB Netzteil":(i+=f?"12V ":L?"WS2815 12V ":"5V ",i+=g,i+="LEDs per Netzteil versorgt");var B=Math.ceil((100+m*laprev)/1500)/2,c="(Du brauchst, ~";c+=B=B>5?Math.ceil(B):B,c+="A )<br>",d.getElementById("psu").innerHTML=i,d.getElementById("psu2").innerHTML=L?"":c}function lastEnd(e){return e<1?0:(v=parseInt(d.getElementsByName("LS"+(e-1))[0].value)+parseInt(d.getElementsByName("LC"+(e-1))[0].value),isNaN(v)?0:v)}function addLEDs(e){if(e>1)return maxB=e,void(d.getElementById("+").style.display="inline");var n=d.getElementsByClassName("iST"),t=n.length;if(!(1==e&&t>=maxB||-1==e&&0==t)){var i=d.getElementById("mLC");if(1==e){var a=`<div class="iST">\n          ${t>0?'<hr style="width:260px">':""}\n          ${t+1}:\n          <select name="LT${t}" onchange="UI()">\n            <option value="22">WS281x</option>\n            <option value="30">SK6812 RGBW</option>\n            <option value="31">TM1814</option>\n            <option value="24">400kHz</option>\n            <option value="50">WS2801</option>\n            <option value="51">APA102</option>\n            <option value="52">LPD8806</option>\n            <option value="53">P9813</option>\n            <option value="41">PWM White</option>\n            <option value="42">PWM WWCW</option>\n            <option value="43">PWM RGB</option>\n            <option value="44">PWM RGBW</option>\n            <option value="45">PWM RGBWC</option>\n          </select>&nbsp;\n          Color Order:\n          <select name="CO${t}">\n            <option value="0">GRB</option>\n            <option value="1">RGB</option>\n            <option value="2">BRG</option>\n            <option value="3">RBG</option>\n            <option value="4">BGR</option>\n            <option value="5">GBR</option>\n          </select><br>\n          <span id="p0d${t}">Pin:</span> <input type="number" name="L0${t}" min="0" max="40" required style="width:35px" oninput="UI()"/>\n          <span id="p1d${t}">Clock:</span> <input type="number" name="L1${t}" min="0" max="40" style="width:35px"/>\n          <span id="p2d${t}"></span><input type="number" name="L2${t}" min="0" max="40" style="width:35px"/>\n          <span id="p3d${t}"></span><input type="number" name="L3${t}" min="0" max="40" style="width:35px"/>\n          <span id="p4d${t}"></span><input type="number" name="L4${t}" min="0" max="40" style="width:35px"/>\n          <br>\n          <span id="psd${t}">Start:</span> <input type="number" name="LS${t}" min="0" max="8191" value="${lastEnd(t)}" required />&nbsp;\n          <div id="dig${t}" style="display:inline">\n          Count: <input type="number" name="LC${t}" min="0" max="${maxPB}" value="1" required oninput="UI()" /><br></div>\n          Reverse: <input type="checkbox" name="CV${t}"><br>\n        </div>`;i.insertAdjacentHTML("beforeend",a)}-1==e&&(n[--t].remove(),--t),d.getElementById("+").style.display=t<maxB-1?"inline":"none",d.getElementById("-").style.display=t>0?"inline":"none",UI()}}function GetV() {var d=document;
%CSS%%SCSS%</head><body onload="S()"><form
 id="form_s" name="Sf" method="post" onsubmit="trySubmit(event)"><div 
class="helpB"><button type="button" onclick="H()">?</button></div><button 
type="button" onclick="B()">Home</button><button type="submit">Speichern
</button><hr><h2>LED &amp; Einstellung</h2>LED Anzahl: <input name="LC" 
type="number" min="1" max="8192" oninput="UI()" required><br><i>
Empfohlene Spannungsversorgung für hellstes Weiß:</i><br><b><span id="psu">?
</span></b><br><span id="psu2"><br></span><br>
Automatischen Helligkeitsbegrenzer einschalten: <input type="checkbox" 
name="ABen" onchange="enABL()" id="able"><br><div id="abl">
Maximaler Strom in mA: <input name="MA" type="number" min="250" max="65000" 
oninput="UI()" required> mA<br><div id="ampwarning" 
style="color:orange;display:none">&#9888; Ihr Netzgerät liefert genug Strom.<br>
</div><i>Begrenz automatisch die Helligkeit.<br>(Aktueller Verbrauch: <span 
class="pow">unbekannt</span>)</i><br><br>
LED voltage (Max. verbrauch einer einzelnen LED):<br><select name="LAsel" 
onchange="enLA()"><option value="55" selected="selected">5V Standard (55mA)
</option><option value="35">5V ECO (35mA)</option><option value="30">12V (30mA)
</option><option value="255">WS2815 (12mA)</option><option value="50">Custom
</option></select><br><span id="LAdis" style="display:none">
Benutzereinstellung max. Verbrauch pro LED: <input name="LA" type="number" 
min="0" max="255" id="la" oninput="UI()" required> mA<br></span><i>
Lass es am besten so wie vom EffectX-Team eingestellt.</i><br></div><h3>
Hardware Einstellung</h3><div id="mLC">LED Ausgänge:</div><button type="button" 
id="+" onclick="addLEDs(1)" style="display:none;border-radius:20px;height:36px">
+</button> <button type="button" id="-" onclick="addLEDs(-1)" 
style="display:none;border-radius:20px;width:36px;height:36px">-</button><br>
LED Speicherauslastung: <span id="m0">0</span> / <span id="m1">?</span> B<br>
<div id="dbar" 
style="display:inline-block;width:100px;height:10px;border-radius:20px"></div>
<br><div id="ledwarning" style="color:orange;display:none">
&#9888; Achtung du willst zu viel dies führt zu Fehlern.<br>
Verbinde weniger als <span id="wreason">Max. 800 LEDs per Ausgang</span>
 für das beste Ergebnis!<br></div>Taster pin: <input type="number" min="-1" 
max="40" name="BT" onchange="UI()"><span style="cursor:pointer" 
onclick='off("BT")'>&nbsp;&#215;</span><br>IR pin: <input type="number" 
min="-1" max="40" name="IR" onchange="UI()"><span style="cursor:pointer" 
onclick='off("IR")'>&nbsp;&#215;</span><br>Relay pin: <input type="number" 
min="-1" max="40" name="RL" onchange="UI()"><span style="cursor:pointer" 
onclick='off("RL")'>&nbsp;&#215;</span><br>Active high <input type="checkbox" 
name="RM"><h3>Defaults</h3>Schalte die LEDs an nach restart / start: <input 
type="checkbox" name="BO"><br>Standard Helligkeit: <input name="CA" 
type="number" min="0" max="255" required> (0-255)<br><br>Benutze Voreinstellung 
<input name="BP" type="number" min="0" max="250" required>
 nach dem Start (0 ist Standard)<br>- <i>or</i> -<br>
Setze aktuelle Einstellungen als Standarf für nach dem Start: <input 
type="checkbox" name="PC"><br><br>Gamma-Korrektur für Farbe verwenden: <input 
type="checkbox" name="GC"> (strongly recommended)<br>
Gamma-Korrektur für Helligkeit verwenden: <input type="checkbox" name="GB">
 (not recommended)<br><br>Helligkeitsfaktor: <input name="BF" type="number" 
min="1" max="255" required> %<h3>Übergänge</h3>Crossfade: <input 
type="checkbox" name="TF"><br>Übergangszeit: <input name="TD" maxlength="5" 
size="2"> ms<br>Aktiviere Palettenübergänge: <input type="checkbox" name="PF">
<h3>Zeitschaltung</h3>Standard Dauer: <input name="TL" type="number" min="1" 
max="255" required> min<br>Voreinstellung soll-Helligkeit: <input name="TB" 
type="number" min="0" max="255" required><br>Mode: <select name="TW"><option 
value="0">Warten und einstellen</option><option value="1">Ausblenden</option>
<option value="2">Farbe ausblenden</option><option value="3">Sonnenaufgang
</option></select><h3>Experimental</h3>Paletten Mischen: <select name="PB">
<option value="0">Linear (wrap beim bewegen)</option><option value="1">
Linear (immer wrap)</option><option value="2">Linear (niemals wrap)</option>
<option value="3">Nein (nicht empfohlen)</option></select><br>
Überspringe erste LED: <input type="checkbox" name="SL"><br><span class="wc">
Berechne automatisch den Weißkanal:<br><select name="AW"><option value="0">Aus
</option><option value="1">Heller</option><option value="2">Accurate</option>
<option value="3">Dual</option><option value="4">Legacy</option></select><br>
</span><hr><button type="button" onclick="B()">Back</button><button 
type="submit">Save</button></form></body></html>)=====";


#ifdef WLED_ENABLE_DMX

// Autogenerated from wled00/data/settings_dmx.htm, do not edit!!
const char PAGE_settings_dmx[] PROGMEM = R"=====(<!DOCTYPE html><html lang="en"><head><meta name="viewport" content="width=500">
<meta charset="utf-8"><title>DMX Settings</title><script>
function GCH(n){for(d=document,d.getElementById("dmxchannels").innerHTML+="",i=0;i<n;i++)d.getElementById("dmxchannels").innerHTML+="<span id=CH"+(i+1)+"s >Channel "+(i+1)+": <select name=CH"+(i+1)+' id="CH'+(i+1)+'"><option value=0>Set to 0</option><option value=1>Red</option><option value=2>Green</option><option value=3>Blue</option><option value=4>White</option><option value=5>Shutter (Brightness)</option><option value=6>Set to 255</option></select></span><br />\n'}function mMap(){for(d=document,numCh=document.Sf.CN.value,numGap=document.Sf.CG.value,parseInt(numCh)>parseInt(numGap)?d.getElementById("gapwarning").style.display="block":d.getElementById("gapwarning").style.display="none",i=0;i<15;i++)i>=numCh?(d.getElementById("CH"+(i+1)+"s").style.opacity="0.5",d.getElementById("CH"+(i+1)).disabled=!0):(d.getElementById("CH"+(i+1)+"s").style.opacity="1",d.getElementById("CH"+(i+1)).disabled=!1)}function S(){GCH(15),GetV(),mMap()}function H(){window.open("https://github.com/Aircoookie/WLED/wiki/DMX")}function B(){window.history.back()}function GetV() {var d=document;
%CSS%%SCSS%</head><body onload="S()"><form
 id="form_s" name="Sf" method="post"><div class="helpB"><button type="button" 
onclick="H()">?</button></div><button type="button" onclick="B()">Home</button>
<button type="submit">Speichern</button><hr><h2>
Imma firin ma lazer (if it has DMX support)</h2>Proxy Universe <input name="PU" 
type="number" min="0" max="63999" required> from E1.31 to DMX (0=disabled)<br>
<i>This will disable the LED data output to DMX configurable below</i><br><br>
<i>Number of fixtures is taken from LED config page</i><br>
Channels per fixture (15 max): <input type="number" min="1" max="15" name="CN" 
maxlength="2" onchange="mMap()"><br>Start channel: <input type="number" min="1" 
max="512" name="CS" maxlength="2"><br>Spacing between start channels: <input 
type="number" min="1" max="512" name="CG" maxlength="2" onchange="mMap()"> [ <a 
href="javascript:alert('if set to 10, first fixture will start at 10,\nsecond will start at 20 etc.\nRegardless of the channel count.\nMakes memorizing channel numbers easier.');">
info</a> ]<br><div id="gapwarning" style="color:orange;display:none">
WARNING: Channel gap is lower than channels per fixture.<br>
This will cause overlap.</div><button type="button" 
onclick='location.href="/dmxmap"'>DMX Map</button><br>DMX fixtures start LED: 
<input type="number" min="0" max="1500" name="SL"><h3>Channel functions</h3><div
 id="dmxchannels"></div><hr><button type="button" onclick="B()">Home</button>
<button type="submit">Speichern</button></form></body></html>)=====";


#else
const char PAGE_settings_dmx[] PROGMEM = R"=====()=====";
#endif

// Autogenerated from wled00/data/settings_ui.htm, do not edit!!
const char PAGE_settings_ui[] PROGMEM = R"=====(<!DOCTYPE html><html><head lang="de"><meta charset="utf-8"><meta 
name="viewport" content="width=500"><title>Benutzer Einstellung</title><script>
var initial_ds,initial_st,d=document,sett=null,l={comp:{labels:"Tastenbeschriftungen anzeigen",colors:{LABEL:"Methoden zur Farbauswahl",picker:"Farbrad",rgb:"RGB sliders",quick:"Schnellfarbwählers",hex:"HEX Code eingabe"},pcmbot:"Untere Registerkartenleiste im PC-Modus anzeigen",pid:"Voreingestellte IDs anzeigen"},theme:{alpha:{bg:"Hintergrund-Opazität",tab:"Tasten-Opazität"},bg:{url:"BG image URL",random:"Random BG image"},color:{bg:"BG HEX color"}}};function gId(e){return d.getElementById(e)}function isObject(e){return e&&"object"==typeof e&&!Array.isArray(e)}function set(e,i,t){for(var n=i,l=e.split("_"),a=l.length,d=0;d<a-1;d++){var s=l[d];n[s]||(n[s]={}),n=n[s]}n[l[a-1]]=t}function addRec(e,t="",n=null){var l="";for(i in e){var a=t+(t?"_":"")+i;if(isObject(e[i]))n&&n[i]&&n[i].LABEL&&(l+=`<h3>${n[i].LABEL}</h3>`),l+=addRec(e[i],a,n?n[i]:null);else{var d=a;if(n&&n[i]?d=n[i]:e[i+"LABEL"]&&(d=e[i+"LABEL"]),i.indexOf("LABEL")>0)continue;var s=typeof e[i];gId(a)?("boolean"===s?gId(a).checked=e[i]:gId(a).value=e[i],gId(a).previousElementSibling.matches(".l")&&(gId(a).previousElementSibling.innerHTML=d)):"boolean"===s?l+=`${d}: <input class="agi cb" type="checkbox" id=${a} ${e[i]?"checked":""}><br>`:"number"===s?l+=`${d}: <input class="agi" type="number" id=${a} value=${e[i]}><br>`:"string"===s&&(l+=`${d}:<br><input class="agi" id=${a} value=${e[i]}><br>`)}}return l}function genForm(e){var i;i=addRec(e,"",l),gId("gen").innerHTML=i}function GetLS(){(sett=localStorage.getItem("wledUiCfg"))||(gId("lserr").style.display="inline");try{sett=JSON.parse(sett)}catch(e){sett={},gId("lserr").style.display="inline",gId("lserr").innerHTML="&#9888; Settings JSON parsing failed. ("+e+")"}genForm(sett),gId("dm").checked="light"===gId("theme_base").value}function SetLS(){for(var e=d.querySelectorAll(".agi"),i=0;i<e.length;i++){var t=e[i],n=t.classList.contains("cb")?t.checked:t.value;set(t.id,sett,n),console.log(`${t.id} set to ${n}`)}try{localStorage.setItem("wledUiCfg",JSON.stringify(sett)),gId("lssuc").style.display="inline"}catch(t){gId("lssuc").style.display="none",gId("lserr").style.display="inline",gId("lserr").innerHTML="&#9888; Settings JSON saving failed. ("+t+")"}}function Save(){SetLS(),d.Sf.DS.value==initial_ds&&d.Sf.ST.checked==initial_st||d.Sf.submit()}function S(){GetV(),initial_ds=d.Sf.DS.value,initial_st=d.Sf.ST.checked,GetLS()}function H(){window.open("https://effectx-light.de/wiki")}function B(){window.open("/settings","_self")}function UI(){gId("idonthateyou").style.display=gId("dm").checked?"inline":"none";var e=gId("theme_base");e&&(e.value=gId("dm").checked?"light":"dark")}function setRandomBg(){gId("theme_bg_random").checked?gId("theme_bg_url").value="https://picsum.photos/1920/1080":gId("theme_bg_url").value=""}function checkRandomBg(){"https://picsum.photos/1920/1080"===gId("theme_bg_url").value?gId("theme_bg_random").checked=!0:gId("theme_bg_random").checked=!1}function GetV() {var d=document;
%CSS%%SCSS%</head><body onload="S()"><form
 id="form_s" name="Sf" method="post"><div 
style="position:sticky;top:0;background-color:#222"><div class="helpB"><button 
type="button" onclick="H()">?</button></div><button type="button" onclick="B()">
Home</button><button type="button" onclick="Save()">Speichern</button><br><span 
id="lssuc" style="color:green;display:none">
&#10004; Benutzereinstellungen gespeichert!</span> <span id="lserr" 
style="color:red;display:none">
&#9888; Fehler ich kann deine Benutzereinstellungen nicht laden.</span><hr>
</div><h2>Benutzer Einstellung</h2>
Name deiner Lampe für die Benutzereinstellung: <input name="DS" maxlength="32">
<br>Diese EffectX-Light empfängt und sendet: <input type="checkbox" name="ST">
<br><div id="gen">lade Benutzereinstellungen...</div><h3>Grafische Anpassungen
</h3><span class="l"></span>: <input type="checkbox" id="comp_labels" 
class="agi cb"><br><span class="l"></span>: <input type="checkbox" 
id="comp_pcmbot" class="agi cb"><br><span class="l"></span>: <input 
type="checkbox" id="comp_pid" class="agi cb"><br>Ich mag es nicht dunkel: <input
 type="checkbox" id="dm" onchange="UI()"><br><span id="idonthateyou" 
style="display:none"><i>Warum willst du ? </i>&#x1F97A;<br></span><span 
class="l"></span>: <input type="number" min="0.0" max="1.0" step="0.01" 
id="theme_alpha_tab" class="agi"><br><span class="l"></span>: <input 
type="number" min="0.0" max="1.0" step="0.01" id="theme_alpha_bg" class="agi">
<br><span class="l"></span>: <input id="theme_color_bg" maxlength="9" 
class="agi"><br><span class="l">Hintergrundbild URL</span>: <input 
id="theme_bg_url" class="agi" oninput="checkRandomBg()"><br><span class="l">
Zufall Hintergrund</span>: <input type="checkbox" id="theme_bg_random" 
class="agi cb" onchange="setRandomBg()"><br><input id="theme_base" class="agi" 
style="display:none"><hr><button type="button" onclick="B()">Home</button>
<button type="button" onclick="Save()">Speichern</button></form></body></html>)=====";


// Autogenerated from wled00/data/settings_sync.htm, do not edit!!
const char PAGE_settings_sync[] PROGMEM = R"=====(<!DOCTYPE html><html lang="en"><head><meta name="viewport" content="width=500">
<meta charset="utf-8"><title>Sync Settings</title><script>
var d=document;function H(){window.open("http://www.effectx-light.de/wiki")}function B(){window.open("/settings","_self")}function adj(){6454==d.Sf.DI.value?(1==d.Sf.DA.value&&(d.Sf.DA.value=0),1==d.Sf.EU.value&&(d.Sf.EU.value=0)):5568==d.Sf.DI.value&&(0==d.Sf.DA.value&&(d.Sf.DA.value=1),0==d.Sf.EU.value&&(d.Sf.EU.value=1))}function SP(){var e=d.Sf.DI.value;d.getElementById("xp").style.display=e>0?"none":"block",e>0&&(d.Sf.EP.value=e)}function SetVal(){switch(parseInt(d.Sf.EP.value)){case 5568:d.Sf.DI.value=5568;break;case 6454:d.Sf.DI.value=6454;break;case 4048:d.Sf.DI.value=4048}SP()}function S(){GetV(),SetVal()}function GetV() {
%CSS%%SCSS%</head><body onload="S()"><form
 id="form_s" name="Sf" method="post"><div class="helpB"><button type="button" 
onclick="H()">?</button></div><button type="button" onclick="B()">Home</button>
<button type="submit">Sspeichern</button><hr><h2>Synchronisations Einstellungen
</h2><i>Die Ports müssen bei allen EffectX-Lights gleich sein</i><h3>
WLED Broadcast</h3>UDP Port: <input name="UP" type="number" min="1" max="65535" 
class="d5" required><br>2. Port: <input name="U2" type="number" min="1" 
max="65535" class="d5" required><br>Empfange <input type="checkbox" name="RB">
Brightness, <input type="checkbox" name="RC">Color, and <input type="checkbox" 
name="RX">Effects<br>
Sende eine Benachrichtigung direkt beim Ändern an alle EffectX-Lights im Netzwerk: 
<input type="checkbox" name="SD"><br>Sende an Alexa eine Benachrichtigung:: 
<input type="checkbox" name="SA"><br>Sende Specialhue Benachrichtigung: <input 
type="checkbox" name="SH"><br>Send Voreinstellungs Benachrichtigung: <input 
type="checkbox" name="SM"><br>Sende zur Sicherheit alles zweimal :) : <input 
type="checkbox" name="S2"><br><i>
Erst mit einem Neustart werden alle Änderungen wirksam.</i><h3>Instanz Liste
</h3>Instanz aktivieren: <input type="checkbox" name="NL"><br>
Diese Instanz auffindbar machen: <input type="checkbox" name="NB"><br><h3>
Echtzeit</h3>Empfange UDP in Echtzeit: <input type="checkbox" name="RD"><br><br>
<h3>Alexa Einstellung</h3>Alexa-Gerät emulieren: <input type="checkbox" 
name="AL"><br>Alexaname für deine EffectX-Lampe bsp.: (Partylicht): <input 
name="AI" maxlength="32"><h3>Blynk</h3><b>
Blynk, MQTT und Hue sync verbinden sich alle mit externen Hosts!<br>Host: <input
 name="BH" maxlength="32"> Port: <input name="BP" type="number" min="1" 
max="65535" value="80" class="d5"><br>Device Auth token: <input name="BK" 
maxlength="33"><br><i>Löschen Sie das Token-Feld, um es zu deaktivieren. </i><a 
href="http://www.effectx-light.de/wiki" target="_blank">Setup info</a><h3>MQTT
</h3>aktiviere MQTT: <input type="checkbox" name="MQ"><br>Broker: <input 
name="MS" maxlength="32"> Port: <input name="MQPORT" type="number" min="1" 
max="65535" class="d5"><br>Username: <input name="MQUSER" maxlength="40"><br>
Password: <input type="password" name="MQPASS" maxlength="40"><br>Client ID: 
<input name="MQCID" maxlength="40"><br>Device Topic: <input name="MD" 
maxlength="32"><br>Group Topic: <input name="MG" maxlength="32"><br><i>
Erst mit einem Neustart werden alle Änderungen wirksam.</i><h3>Magichue</h3><i>
Sie finden die Bridge-IP und die Lichtnummer im Abschnitt "Über" der hue-App.
</i><br>Sende an Hue light <input name="HL" type="number" min="1" max="99">
 jede <input name="HI" type="number" min="100" max="65000"> ms: <input 
type="checkbox" name="HP"><br>anschließend empfangen<input type="checkbox" 
name="HO"> an/aus, <input type="checkbox" name="HB"> Helligkeit und <input 
type="checkbox" name="HC"> Farbe<br>Hue Bridge IP:<br><input name="H0" 
type="number" min="0" max="255"> . <input name="H1" type="number" min="0" 
max="255"> . <input name="H2" type="number" min="0" max="255"> . <input 
name="H3" type="number" min="0" max="255"><br><b>
Drücken Sie die Drucktaste auf der Brücke, danach speichern Sie diese Seite!</b>
<br>(Nur bei der ersten Verbindung)<br>Hue status: <span class="sip">
Für die Zukunft :)</span><hr><button type="button" onclick="B()">Home</button>
<button type="submit">Speichern</button></b></form></body></html>)=====";


// Autogenerated from wled00/data/settings_time.htm, do not edit!!
const char PAGE_settings_time[] PROGMEM = R"=====(<!DOCTYPE html><html lang="en"><head><meta name="viewport" content="width=500">
<meta charset="utf-8"><title>Zeit Einstellung</title><script>
var d=document;function H(){window.open("http://www.effectx-light.de/wiki")}function B(){window.open("/settings","_self")}function S(){BTa(),GetV(),Cs(),FC()}function gId(t){return d.getElementById(t)}function Cs(){gId("cac").style.display="none",gId("coc").style.display="block",gId("ccc").style.display="none",gId("ca").selected&&(gId("cac").style.display="block"),gId("cc").selected&&(gId("coc").style.display="none",gId("ccc").style.display="block"),gId("cn").selected&&(gId("coc").style.display="none")}function BTa(){var t="<tr><th>Active</th><th>Hour</th><th>Minute</th><th>Preset</th><th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th><th>S</th></tr>";for(i=0;i<8;i++)for(t+='<tr><td><input name="W'+i+'" id="W'+i+'" type="number" style="display:none"><input id="W'+i+'0" type="checkbox"></td><td><input name="H'+i+'" type="number" min="0" max="24"></td><td><input name="N'+i+'" type="number" min="0" max="59"></td><td><input name="T'+i+'" type="number" min="0" max="250"></td>',j=1;j<8;j++)t+='<td><input id="W'+i+j+'" type="checkbox"></td>';for(t+='<tr><td><input name="W8" id="W8" type="number" style="display:none"><input id="W80" type="checkbox"></td><td>Sunrise<input name="H8" value="255" type="hidden"></td><td><input name="N8" type="number" min="-59" max="59"></td><td><input name="T8" type="number" min="0" max="250"></td>',j=1;j<8;j++)t+='<td><input id="W8'+j+'" type="checkbox"></td>';for(t+='<tr><td><input name="W9" id="W9" type="number" style="display:none"><input id="W90" type="checkbox"></td><td>Sunset<input name="H9" value="255" type="hidden"></td><td><input name="N9" type="number" min="-59" max="59"><td><input name="T9" type="number" min="0" max="250"></td>',j=1;j<8;j++)t+='<td><input id="W9'+j+'" type="checkbox"></td>';gId("TMT").innerHTML=t}function FC(){for(j=0;j<8;j++)for(i=0;i<10;i++)gId("W"+i+j).checked=gId("W"+i).value>>j&1}function Wd(){for(a=[0,0,0,0,0,0,0,0,0,0],i=0;i<10;i++){for(m=1,j=0;j<8;j++)a[i]+=gId("W"+i+j).checked*m,m*=2;gId("W"+i).value=a[i]}}function GetV() {
%CSS%%SCSS%</head><body onload="S()"><form
 id="form_s" name="Sf" method="post" onsubmit="Wd()"><div class="helpB"><button 
type="button" onclick="H()">?</button></div><button type="button" onclick="B()">
Home</button><button type="submit">Speichern</button><hr><h2>Zeiteinstellung
</h2>Zeit vom NTP server: <input type="checkbox" name="NT"><br><input name="NS" 
maxlength="32"><br>24h format: <input type="checkbox" name="CF"><br>Zeitzone: 
<select name="TZ"><option value="0" selected="selected">GMT(UTC)</option><option
 value="1">GMT/BST</option><option value="2">CET/CEST</option><option value="3">
EET/EEST</option><option value="4">US-EST/EDT</option><option value="5">
US-CST/CDT</option><option value="6">US-MST/MDT</option><option value="7">US-AZ
</option><option value="8">US-PST/PDT</option><option value="9">CST(AWST)
</option><option value="10">JST(KST)</option><option value="11">AEST/AEDT
</option><option value="12">NZST/NZDT</option><option value="13">North Korea
</option><option value="14">IST (India)</option><option value="15">
CA-Saskatchewan</option><option value="16">ACST</option><option value="17">
ACST/ACDT</option><option value="18">HST (Hawaii)</option></select><br>
UTC offset: <input name="UO" type="number" min="-65500" max="65500" required>
 sekunden (max. 18 Stunden)<br>Aktuelle Zeit <span class="times">unbekannt
</span>.<br>Latitude (N): <input name="LT" type="number" min="-66.6" max="66.6" 
step="0.01"> Longitude (E): <input name="LN" type="number" min="-180" max="180" 
step="0.01"><div id="sun" class="times"></div><h3>Uhr</h3>Uhr Overlay: <select 
name="OL" onchange="Cs()"><option value="0" id="cn" selected="selected">None
</option><option value="1" id="ca">Analog Clock</option><option value="2">
Single Digit Clock</option><option value="3" id="cc">Cronixie Clock</option>
</select><br><div id="coc">Erste LED: <input name="O1" type="number" min="0" 
max="255" required> letzte LED: <input name="O2" type="number" min="0" 
max="255" required><br><div id="cac">12h LED: <input name="OM" type="number" 
min="0" max="255" required><br>Show 5min marks: <input type="checkbox" 
name="O5"><br></div>Seconds (as trail): <input type="checkbox" name="OS"><br>
</div><div id="ccc">Cronixie Display: <input name="CX" maxlength="6"><br>
Cronixie Backlight: <input type="checkbox" name="CB"><br></div>Countdown Mode: 
<input type="checkbox" name="CE"><br>Countdown Goal:<br>Year: 20 <input 
name="CY" type="number" min="0" max="99" required> Month: <input name="CI" 
type="number" min="1" max="12" required> Day: <input name="CD" type="number" 
min="1" max="31" required><br>Hour: <input name="CH" type="number" min="0" 
max="23" required> Minute: <input name="CM" type="number" min="0" max="59" 
required> Second: <input name="CS" type="number" min="0" max="59" required><br>
<h3>Macro presets</h3><b>Macros have moved!</b><br><i>
Presets now also can be used as macros to save both JSON and HTTP API commands.
<br>Just enter the preset id below!</i> <i>
Use 0 for the default action instead of a preset</i><br>Alexa On/Off Preset: 
<input name="A0" type="number" min="0" max="250" required> <input name="A1" 
type="number" min="0" max="250" required><br>Button short press Preset: <input 
name="MP" type="number" min="0" max="250" required><br>Long Press: <input 
name="ML" type="number" min="0" max="250" required> Double press: <input 
name="MD" type="number" min="0" max="250" required><br>Countdown-Over Preset: 
<input name="MC" type="number" min="0" max="250" required><br>
Timed-Light-Over Presets: <input name="MN" type="number" min="0" max="250" 
required><br><h3>Time-controlled presets</h3><div style="display:inline-block">
<table id="TMT"></table></div><hr><button type="button" onclick="B()">Back
</button><button type="submit">Save</button></form></body></html>)=====";


// Autogenerated from wled00/data/settings_sec.htm, do not edit!!
const char PAGE_settings_sec[] PROGMEM = R"=====(<!DOCTYPE html><html lang="en"><head><meta name="viewport" content="width=500">
<meta charset="utf-8"><title>Sicherheit und Update Einstellungen</title><script>
function H(){window.open("http://www.effectx-light.de/wiki")}function B(){window.open("/settings","_self")}function U(){window.open("/update","_self")}function GetV() {var d=document;
%CSS%%SCSS%</head><body onload="GetV()">
<form id="form_s" name="Sf" method="post"><div class="helpB"><button 
type="button" onclick="H()">?</button></div><button type="button" onclick="B()">
Home</button><button type="submit">Speichern & Neustart</button><hr><h2>
Sicherheit und Update Einstellungen</h2>Updatesperre: <input type="checkbox" 
name="NO"><br>Passwort: <input type="password" name="OP" maxlength="32"><br>
Um OTA zu aktivieren, müssen Sie aus Sicherheitsgründen auch das richtige Passwort eingeben!
<br><i>
Einstellungen auf dieser Seite sind nur änderbar, wenn die OTA-Sperre deaktiviert ist!
</i><br>Zugriff auf WiFi-Einstellungen verweigern, wenn gesperrt: <input 
type="checkbox" name="OW"><br><br>Werkseinstellung: <input type="checkbox" 
name="RS"><br>Alle Einstellungen und Voreinstellungen werden gelöscht.<br><br>
<h3>Software Update</h3><button type="button" onclick="U()">Manuelles Update
</button><br>Aktiviere Fernwartung: <input type="checkbox" name="AO"><br><h3>
About</h3><a href="http://www.effectx-light.de" target="_blank">EffectX-Light
</a> Version 0.2.0<br><br><a 
href="https://github.com/Aircoookie/WLED/wiki/Contributors-&-About" 
target="_blank">Besonderen Dank gillt unseren Ideengebern</a><br><i>Besonders <a
 href="https://github.com/Aircoookie/WLED/blob/master/LICENSE" target="_blank">
Aircookie</a></i><br><br><hr><button type="button" onclick="B()">Home</button>
<button type="submit">Speichern & Neustart</button></form></body></html>)=====";

