From 946c1f1b2df46d0f0cde8063dc6874b062acb6c2 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 24 Oct 2026 13:59:26 +0000 Subject: [PATCH 1/2] Keine leere Seite nach Updates: alte Assets eine Version behalten, fehlende Dateien einmal neu laden, sonst Hinweis Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01XV48YREU9ynsuFLr37cukz --- .github/scripts/deploy-website.sh | 12 +- web/src/main.ts | 62 +- web/src/ui/styles.css | 22 + .../{index-Cz9Fo9zD.js => index-CAd9-t1L.js} | 1942 ++++++++--------- ...{index-CmgDRnXe.css => index-DdxaLIVP.css} | 2 +- website/app/index.html | 4 +- 6 files changed, 1064 insertions(+), 980 deletions(-) rename website/app/assets/{index-Cz9Fo9zD.js => index-CAd9-t1L.js} (94%) rename website/app/assets/{index-CmgDRnXe.css => index-DdxaLIVP.css} (99%) diff --git a/.github/scripts/deploy-website.sh b/.github/scripts/deploy-website.sh index 0b7245b2..9528d8c8 100755 --- a/.github/scripts/deploy-website.sh +++ b/.github/scripts/deploy-website.sh @@ -108,13 +108,17 @@ if ! lftp -c "$connect; get $MANIFEST -o \"$work/old\"" 2>/dev/null; then : > "$work/old" fi +# Die Assets des vorigen Builds bleiben eine Version lang liegen: Ein Browser, der noch +# die alte Seite offen oder im Cache hat, findet so seine Skripte (sonst bleibt sie leer). +grep '^app/assets/' "$work/old" | LC_ALL=C sort -u > "$work/keep" || true + # app/assets/ wird von Vite bei jedem Build komplett neu erzeugt (Dateinamen mit # Hash). Was dort auf dem Server liegt und nicht mehr zum Build gehört, ist veraltet, # auch wenn es noch von Hand hochgeladen wurde. lftp -c "$connect; cls -1 app/assets/" 2>/dev/null | sed 's|^.*/||; s|^|app/assets/|' | grep -v '/$' >> "$work/old" || true # Dateien, die früher hochgeladen wurden und jetzt nicht mehr dazugehören -LC_ALL=C sort -u "$work/old" | LC_ALL=C comm -23 - "$work/new" > "$work/stale" +LC_ALL=C sort -u "$work/old" | LC_ALL=C comm -23 - "$work/new" | LC_ALL=C comm -23 - "$work/keep" > "$work/stale" : > "$work/rm.lftp" while IFS= read -r f; do case "$f" in @@ -154,3 +158,9 @@ put "$work/htaccess" -o .htaccess put "$work/new" -o $MANIFEST LFTP echo "Fertig." + +# Kontrolle: Schickt der Server die Cache-Regeln aus .htaccess mit? +for url in "${SITE_URL:-https://visustruct.org}/" "${SITE_URL:-https://visustruct.org}/app/index.html"; do + cc="$(curl -sI "$url" | tr -d '\r' | grep -i '^cache-control:' | cut -d' ' -f2- || true)" + echo "::notice::$url Cache-Control: ${cc:-(keiner)}" +done diff --git a/web/src/main.ts b/web/src/main.ts index 09dc6033..96d14c4a 100644 --- a/web/src/main.ts +++ b/web/src/main.ts @@ -3,10 +3,62 @@ import { App, applyCanvasStubTexts } from './ui/app' import { installTooltips } from './ui/tooltip' import { preferredLanguage, setCodeKeywords, setLanguage, storedCodeKeywords } from './ui/i18n' +// Nach einem Update kann eine noch offene oder zwischengespeicherte Seite Dateien der alten Version +// nachladen wollen, die es nicht mehr gibt. Dann einmal neu laden statt leer zu bleiben. +const reloadKey = 'visustruct.reloadedAfterError' + +function reloadOnce(): boolean { + try { + const last = Number(sessionStorage.getItem(reloadKey)) + if (last && Date.now() - last < 30_000) return false + sessionStorage.setItem(reloadKey, String(Date.now())) + } catch { + return false + } + location.reload() + return true +} + +/** Statt einer leeren Seite: kurzer Hinweis mit Knopf zum Neuladen (Texte fest, die Übersetzungen fehlen ja evtl.). */ +function showStartupError(error: unknown) { + console.error(error) + const de = (navigator.language || '').toLowerCase().startsWith('de') + const box = document.createElement('div') + box.className = 'startup-error' + const title = document.createElement('h1') + title.textContent = de ? 'VisuStruct konnte nicht starten' : 'VisuStruct could not start' + const text = document.createElement('p') + text.textContent = de + ? 'Wahrscheinlich gibt es gerade eine neue Version. Lade die Seite neu. Hilft das nicht, drücke Strg+Umschalt+R (Mac: ⌘⇧R).' + : 'There is probably a new version. Reload the page. If that does not help, press Ctrl+Shift+R (Mac: ⌘⇧R).' + const button = document.createElement('button') + button.textContent = de ? 'Neu laden' : 'Reload' + button.addEventListener('click', () => location.reload()) + const detail = document.createElement('pre') + detail.textContent = String(error instanceof Error ? error.message : error) + box.append(title, text, button, detail) + ;(document.getElementById('app') ?? document.body).replaceWith(box) +} + +window.addEventListener('vite:preloadError', (event) => { + if (reloadOnce()) event.preventDefault() +}) + // Erst die Sprache (sie übernimmt ein altes „Java (Keywords)“), dann den Schalter Code-Keywords. const language = preferredLanguage() -void Promise.all([setLanguage(language, false), setCodeKeywords(storedCodeKeywords(), false)]).then(() => { - applyCanvasStubTexts() - installTooltips() - new App(document.getElementById('app')!) -}) +Promise.all([setLanguage(language, false), setCodeKeywords(storedCodeKeywords(), false)]) + .then(() => { + applyCanvasStubTexts() + installTooltips() + new App(document.getElementById('app')!) + try { + sessionStorage.removeItem(reloadKey) + } catch { + /* egal */ + } + }) + .catch((error: unknown) => { + // Fehlende Datei nach einem Update: einmal neu laden, sonst Hinweis zeigen. + if (/dynamically imported module|Importing a module script failed|error loading dynamically/i.test(String(error)) && reloadOnce()) return + showStartupError(error) + }) diff --git a/web/src/ui/styles.css b/web/src/ui/styles.css index 673fbbfe..b685b0dc 100644 --- a/web/src/ui/styles.css +++ b/web/src/ui/styles.css @@ -3210,3 +3210,25 @@ button.danger-text:not(:disabled) { .learn-mark.gruen { background: #dcfce7; } + +/* Hinweis statt leerer Seite, wenn die App nicht starten konnte (main.ts) */ +.startup-error { + max-width: 520px; + margin: 15vh auto 0; + padding: 0 16px; + font: 16px/1.5 system-ui, -apple-system, sans-serif; + color: var(--text); +} +.startup-error h1 { + font-size: 22px; +} +.startup-error button { + font-size: 16px; + padding: 8px 16px; +} +.startup-error pre { + margin-top: 24px; + color: var(--muted); + font-size: 12px; + white-space: pre-wrap; +} diff --git a/website/app/assets/index-Cz9Fo9zD.js b/website/app/assets/index-CAd9-t1L.js similarity index 94% rename from website/app/assets/index-Cz9Fo9zD.js rename to website/app/assets/index-CAd9-t1L.js index 8509644a..f8ab0359 100644 --- a/website/app/assets/index-Cz9Fo9zD.js +++ b/website/app/assets/index-CAd9-t1L.js @@ -1,19 +1,19 @@ -var Fg=Object.defineProperty;var Jg=(i,e,t)=>e in i?Fg(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var I=(i,e,t)=>Jg(i,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))n(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const r of s.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function t(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(a){if(a.ep)return;a.ep=!0;const s=t(a);fetch(a.href,s)}})();var T=(i=>(i[i.anweisung=0]="anweisung",i[i.verzweigung=1]="verzweigung",i[i.fallauswahl=2]="fallauswahl",i[i.forSchleife=3]="forSchleife",i[i.whileSchleife=4]="whileSchleife",i[i.doUntilSchleife=5]="doUntilSchleife",i[i.endlosschleife=6]="endlosschleife",i[i.aussprung=7]="aussprung",i[i.aufruf=8]="aufruf",i[i.leerElement=9]="leerElement",i))(T||{});function Gg(i){return i===3||i===4||i===5||i===6}function Rg(i){return i===1||i===2}function pe(i,e={}){return{type:i,zoomX:0,zoomY:0,textLines:[""],...e}}function Hg(i){const e=i.textLines;if(!e.every(t=>t.trim()===""))switch(i.type){case T.forSchleife:return e.length<=1?e:[Vg(e)];case T.verzweigung:return xa("if",e);case T.whileSchleife:return xa("while",e);case T.doUntilSchleife:return xa("while",Qg(e));case T.fallauswahl:return xa("switch",e);default:return e}}function Qg(i){if(i.length===0)return i;const e=i[0].trim(),t=e.toLowerCase(),n=[...i];if(t==="until")n[0]="";else if(t.startsWith("until "))n[0]=e.slice(6).trim();else if(t.startsWith("until("))n[0]=e.slice(5);else return i;return n}function Bl(i){const e=new Set(["if","for","while","until","switch"]),t=["input:","output:","print:"],n=i.trim(),a=n.toLowerCase();for(const o of t){if(a===o)return{keyword:n,rest:""};if(a.startsWith(o+" "))return{keyword:n.slice(0,o.length),rest:n.slice(o.length).trim()}}const s=n.indexOf(" ");if(s<0)return;const r=n.slice(0,s);if(e.has(r.toLowerCase()))return{keyword:r,rest:n.slice(s+1).trim()}}function xa(i,e){if(e.length===0)return e;const t=e[0].trim(),n=t.toLowerCase();if(n===i||n.startsWith(i+" "))return e;const a=[...e];return a[0]=i+" "+t,a}function Vg(i){let e=[...i];for(;e.length<3;)e.push("");e=e.slice(0,3);const t=a=>{let s=a.trim();for(;s.endsWith(";");)s=s.slice(0,-1).trim();return s},n=e.map(t).join("; ").trim();return n===""?"for":"for "+n}const Hm={[T.anweisung]:"Anweisung",[T.verzweigung]:"Bedingung",[T.fallauswahl]:"Fallauswahl",[T.forSchleife]:"for 0 < i < anzahl",[T.whileSchleife]:"while …",[T.doUntilSchleife]:"while …",[T.endlosschleife]:"endless",[T.aussprung]:"break",[T.aufruf]:"Aufruf()",[T.leerElement]:"ø"};function qg(i){Object.assign(Hm,i)}function Oo(i){return Hg(i)??[Hm[i.type]]}class ve extends Error{}const Ut=i=>structuredClone(i);function Ct(){return pe(T.anweisung,{textLines:["ø"]})}function Ug(){return{caption:"",elements:[Ct()]}}function To(i){if(i.type===T.leerElement)return!0;if(i.type===T.anweisung){const e=i.textLines;return e.length===0||e.length===1&&e[0]==="ø"}return!1}function Vn(i,e){const t=xt(i,e);return t!==void 0&&To(t)}function ra(i,e){if(e.length===0)throw new ve("Invalid element path.");const[t,...n]=e;if(t<0||t>=i.length)throw new ve("Invalid element path.");if(n.length===0)return{list:i,index:t};const[a,...s]=n;if(s.length===0)throw new ve("Invalid element path.");return ra(Qm(i[t],a),s)}function Qm(i,e){if(Gg(i.type)){if(e!==0||!i.loopBody)throw new ve("Invalid element path.");return i.loopBody}if(Rg(i.type)){if(!i.cases||e<0||e>=i.cases.length)throw new ve("Invalid element path.");return i.cases[e].elements}throw new ve("Invalid element path.")}function Bt(i,e){const{list:t,index:n}=ra(i.elements,e);return t[n]}function xt(i,e){try{return Bt(i,e)}catch{return}}function hn(i,e,t){const n=Ut(i),{list:a,index:s}=ra(n.elements,e);return a[s]=Ut(t),n}function cs(i,e,t){const n=Ut(Bt(i,e));return n.textLines=t.length===0?[""]:t,hn(i,e,n)}function ds(i,e){return e.length===0?!1:e.length===1&&i.elements.length===1?!Vn(i,e):xt(i,e)!==void 0}function R1(i,e){const t=Ut(i),{list:n,index:a}=ra(t.elements,e);if(e.length===1&&n.length===1){if(To(n[0]))throw new ve("The last root element cannot be deleted.");return n[0]=Ct(),t}return n.splice(a,1),e.length>1&&n.length===0&&n.push(Ct()),t}function j1(i,e,t,n){const a=Ut(i);let s;if(e.length===0)s=a.elements;else{const r=e.slice(0,-1),o=e[e.length-1],{list:l,index:u}=ra(a.elements,r);s=Qm(l[u],o)}return s.splice(Math.min(Math.max(0,t),s.length),0,Ut(n)),a}function Vm(i,e,t){if(t.length===0)throw new ve("Invalid element path.");return j1(i,t.slice(0,-1),t[t.length-1],e)}function sr(i,e,t){if(t.length===0)throw new ve("Invalid element path.");return j1(i,t.slice(0,-1),t[t.length-1]+1,e)}function Ao(i,e){return i.lengthe[n]===t)}function Po(i,e){if(e.length===0)return i;const t=e[e.length-1],n=e.slice(0,-1);if(i.length<=n.length||!n.every((r,o)=>i[o]===r))return i;const a=n.length;if(i[a]<=t)return i;const s=[...i];return s[a]-=1,s}const jo=(i,e)=>i.length===e.length&&i.every((t,n)=>t===e[n]);function $g(i,e,t){if(jo(e,t))return i;if(Ao(e,t))throw new ve("Invalid element path.");const n=Bt(i,e),a=R1(i,e);return Vm(a,n,Po(t,e))}function Yg(i,e,t){if(jo(e,t))return i;if(Ao(e,t))throw new ve("Invalid element path.");const n=Bt(i,e),a=R1(i,e);return sr(a,n,Po(t,e))}function Xg(i,e,t){if(!Vn(i,t))throw new ve("Invalid element path.");if(jo(e,t))return i;if(Ao(e,t))throw new ve("Invalid element path.");const n=Bt(i,e),a=R1(i,e);return hn(a,Po(t,e),n)}function Kg(i,e){const t=Ut(Bt(i,e)),n=t.cases;if(t.type!==T.fallauswahl||!n||n.length===0)throw new ve("Invalid element path.");const a=n[n.length-1].name.toLowerCase()==="default",s=a?n.length-1:n.length,r=String(a?n.length:n.length+1);return n.splice(s,0,{name:r,elements:[Ct()]}),{doc:hn(i,e,t),path:[...e,s,0]}}function ep(i,e,t){const n=Ut(Bt(i,e)),a=n.cases;if(n.type!==T.fallauswahl||!a)throw new ve("Invalid element path.");if(a.length<=2)throw new ve("A switch needs at least two cases.");if(t<0||t>=a.length)throw new ve("Invalid element path.");a.splice(t,1);const s=Math.min(t,a.length-1);return{doc:hn(i,e,n),path:[...e,s,0]}}function tp(i,e,t,n){const a=Ut(Bt(i,e)),s=a.cases;if(a.type!==T.fallauswahl||!s)throw new ve("Invalid element path.");if(t<0||t>=s.length)throw new ve("Invalid element path.");const r=n.trim();if(r==="")throw new ve("Invalid element path.");return s[t].name=r,hn(i,e,a)}function np(i,e){var t;if(!(!i||i.length===0))for(let n=i.length;n>=1;n--){const a=i.slice(0,n);if(((t=xt(e,a))==null?void 0:t.type)===T.fallauswahl)return a}}function ap(i,e){if(!(!i||i.length<=e.length))return i[e.length]}function hs(i,e){if(e.elements.length!==0)return!i||!xt(e,i)?[0]:i}const qm=i=>i!==void 0&&/\s/.test(i);function li(i){const e=i.trim().toLowerCase();return e.startsWith("input:")?"input":e.startsWith("output:")||e.startsWith("print:")?"output":"statement"}function ip(i){const e=i.trim(),t=e.toLowerCase();return t.startsWith("input:")?e.slice(6).trim():t.startsWith("output:")?e.slice(7).trim():t.startsWith("print:")?e.slice(6).trim():i}function Wl(i,e){const t=e.trim();return t===""?`${i} `:`${i} ${t}`}function sp(i,e){const t=ip(e);switch(i){case"statement":return t;case"input":return Wl("input:",t);case"output":return Wl("output:",t)}}const Ua=i=>qm(i[0])?i.slice(1):i;function rp(i){const e=i.replace(/^\s+/,""),t=e.toLowerCase();return t.startsWith("input:")?Ua(e.slice(6)):t.startsWith("output:")?Ua(e.slice(7)):t.startsWith("print:")?Ua(e.slice(6)):i}function Ll(i,e){const t=e.replace(/^\s+/,"");if(!t.toLowerCase().startsWith(i.toLowerCase()))return e;const n=t.slice(i.length);if(!(n===""||qm(n[0])||n[0]==="("))return e;const a=Ua(n);return a.startsWith("(")&&a.endsWith(")")&&a.length>=2?a.slice(1,-1):a}function El(i,e){if(i==="input:"||i==="output:")return rp(e);const t=Ll(i,e);if(i==="while"&&t===e){const n=Ll("until",e);if(n!==e)return n}return t}function op(i,e){return e===""?`${i} `:`${i} ${e}`}function Um(i){return i.replace(/[“”„«»]/g,'"').replace(/[’‘‚´]/g,"'")}function Nl(i){const e=i.length===0?[""]:i.slice(0,3);for(;e.length<3;)e.push("");return e}function lp(i){let e=Um(i);for(;;){const t=e.trim();if(!t.endsWith(";"))return e;e=t.slice(0,-1).trim()}}const Ri='system-ui, -apple-system, "Segoe UI", Roboto, sans-serif';function up(i,e){return`${e==="bold"?700:500} ${i}px ${Ri}`}const $m=(i,e,t)=>[...i].length*e*(t==="bold"?.68:.62);function mp(){if(typeof document>"u"||!document.body)return;const i="http://www.w3.org/2000/svg",e=document.createElementNS(i,"svg");e.setAttribute("aria-hidden","true"),e.setAttribute("width","0"),e.setAttribute("height","0"),e.style.cssText="position:absolute;left:-9999px;top:0;visibility:hidden;overflow:hidden";const t=document.createElementNS(i,"text");if(t.setAttribute("font-family",Ri),t.style.whiteSpace="pre",e.append(t),document.body.append(e),typeof t.getComputedTextLength!="function"||typeof t.getBBox!="function"){e.remove();return}if(t.textContent="Mg",t.setAttribute("font-size","20"),!(t.getComputedTextLength()>0)){e.remove();return}return t}let gs;function Ym(){return gs===void 0&&(gs=mp()??null),gs??void 0}function Xm(i,e,t){i.setAttribute("font-size",String(e)),i.setAttribute("font-weight",t==="bold"?"700":"500")}function Fl(i,e){const t=`${i}|${e}`;let n=Jl.get(t);if(!n){const a=Ym();if(n={ascent:i*.95,descent:i*.24},a){Xm(a,i,e),a.setAttribute("y","0"),a.textContent="Mg";const s=a.getBBox();s.height>0&&(n={ascent:-s.y,descent:s.height+s.y})}Jl.set(t,n)}return n}const Jl=new Map;function cp(){const i=Ym();if(i){const n=new Map;return(a,s,r)=>{const o=`${s}|${r}|${a}`;let l=n.get(o);return l===void 0&&(Xm(i,s,r),i.textContent=a,l=a===""?0:i.getComputedTextLength(),n.size>2e3&&n.clear(),n.set(o,l)),l}}const e=typeof document<"u"?document.createElement("canvas").getContext("2d"):null;if(!e)return $m;const t=new Map;return(n,a,s)=>{const r=`${a}|${s}|${n}`;let o=t.get(r);return o===void 0&&(e.font=up(a,s),o=e.measureText(n).width,t.size>2e3&&t.clear(),t.set(r,o)),o}}const Km={fontSize:15,lineHeight:20,charWidth:7,baseHeaderExtra:20,minSidePadding:42,cellTextInsetY:15,doUntilDoLabelTopInset:2,doUntilFooterTopInset:6,doUntilFooterBottomInset:8};function dp(i){return{...Km,fontSize:14,lineHeight:21,charWidth:5.5*(14/12),baseHeaderExtra:21,minSidePadding:40}}const ba=i=>i===T.forSchleife||i===T.whileSchleife||i===T.doUntilSchleife||i===T.endlosschleife,ya=i=>i===T.fallauswahl||i===T.verzweigung;function va(i,e,t,n=0){return{idPath:i,element:e,frame:t,headerBandHeight:n,topBandHeight:0,loopBodyLeadingInset:0,caseColumnFrames:[],children:[]}}function De(i){return{...i,frame:{...i.frame}}}class ec{constructor(e=Km,t=$m){this.metrics=e,this.measure=t}layout(e,t={left:28,top:28}){const a=this.layoutList(e.elements,t.left,t.top,[]).map(l=>this.stretchLoopBodiesVertically(l));let s=0,r=0;const o=l=>{s=Math.max(s,l.frame.x+l.frame.width),r=Math.max(r,l.frame.y+l.frame.height),l.children.forEach(o)};return a.forEach(o),{canvasSize:{width:s+t.left,height:r+t.top},elements:a}}lineWidth(e){return Math.ceil(this.measure(e,this.metrics.fontSize,"medium"))}lineWidthBold(e){return Math.ceil(this.measure(e,this.metrics.fontSize,"bold"))}layoutList(e,t,n,a){let s=[],r=n;e.forEach((l,u)=>{const m=this.layoutElement(l,t,r,[...a,u]);s.push(m),r+=m.frame.height});const o=Math.max(0,...s.map(l=>l.frame.width));return o>0&&(s=s.map(l=>this.stretchNodeTreeToWidth(l,o))),s}stretchMultiwayNodeToWidth(e,t){const n=De(e),a=n.frame.width;if(!(a>0)||n.caseColumnFrames.length===0)return n;const s=t/a;n.frame.width=t;let r=n.frame.x;const o=n.caseColumnFrames.map(l=>{const u=l.width*s,m={x:r,y:l.y,width:u,height:l.height};return r+=u,m});return n.caseColumnFrames=o,n.dividerX=o.length>0?o[o.length-1].x:n.frame.x+t,n.columns&&n.columns.length===o.length&&(n.columns=n.columns.map((l,u)=>{const m=o[u];return l.map(c=>{const d=De(c);return d.frame.x=m.x,d.frame.width=m.width,this.stretchDescendantsWidths(d,m.width)})}),n.children=n.columns.flat()),n}stretchLoopChildren(e,t){const n=this.effectiveLoopBodyLeading(e),a=Math.max(0,t-n);e.children=e.children.map(s=>{const r=De(s);return r.frame.x=e.frame.x+n,r.frame.width=a,this.stretchDescendantsWidths(r,a)})}stretchNodeTreeToWidth(e,t){const n=De(e);return n.frame.width>0?ya(n.element.type)&&n.caseColumnFrames.length>0?this.stretchMultiwayNodeToWidth(n,t):(n.frame.width=t,ba(n.element.type)?this.stretchLoopChildren(n,t):n.children=n.children.map(s=>this.stretchDescendantsWidths(s,t)),n):n}stretchDescendantsWidths(e,t){let n=De(e);return ya(n.element.type)?n=this.stretchNodeTreeToWidth(n,t):ba(n.element.type)?(n.frame.width=t,this.stretchLoopChildren(n,t)):(n.frame.width=t,n.children=n.children.map(a=>this.stretchDescendantsWidths(a,t))),n}stretchLoopBodiesVertically(e){const t=De(e);if(t.columns&&t.columns.length>0)return t.columns=t.columns.map(s=>s.map(r=>this.stretchLoopBodiesVertically(r))),t.children=t.columns.flat(),t;t.children=t.children.map(s=>this.stretchLoopBodiesVertically(s));const n=s=>s===T.anweisung||s===T.leerElement||s===T.aufruf||s===T.aussprung||ba(s);let a;switch(t.element.type){case T.forSchleife:case T.whileSchleife:case T.endlosschleife:{const s=t.element.type===T.endlosschleife?40:0;a=t.frame.y+t.frame.height-s;break}case T.doUntilSchleife:a=t.frame.y+t.frame.height-t.headerBandHeight;break}if(a!==void 0&&t.children.length>0){const s=t.children.length-1;let r=De(t.children[s]);const o=a-(r.frame.y+r.frame.height);o>.5&&n(r.element.type)&&(r.frame.height+=o,r=this.stretchLoopBodiesVertically(r),t.children=[...t.children.slice(0,s),r])}return t}headerHeight(e){const t=this.metrics,n=Math.max(1,e.textLines.length);if(e.type===T.doUntilSchleife)return t.doUntilFooterTopInset+n*t.lineHeight+t.doUntilFooterBottomInset+e.zoomY;let a;switch(e.type){case T.fallauswahl:a=40;break;case T.verzweigung:a=20;break;case T.forSchleife:case T.whileSchleife:case T.endlosschleife:a=t.baseHeaderExtra+4;break;default:a=14}return a+n*t.lineHeight+e.zoomY}doUntilBodyLeadingInset(){return Math.max(20,this.lineWidthBold("do")+12)}effectiveLoopBodyLeading(e){return e.element.type===T.doUntilSchleife?e.loopBodyLeadingInset>0?e.loopBodyLeadingInset:this.doUntilBodyLeadingInset():20}horizontalPaddingInsideCell(e){return ya(e)?Math.max(100,this.metrics.minSidePadding*2.45):this.metrics.minSidePadding}minWidth(e){const t=e.textLines.length===0?0:Math.max(...e.textLines.map(s=>this.lineWidth(s)));let n=t+e.zoomX+this.horizontalPaddingInsideCell(e.type);if(e.type===T.aufruf){const s=Math.max(68,this.metrics.minSidePadding*1.7),r=Math.max(8,this.metrics.minSidePadding*.2);n=Math.max(n,t+e.zoomX+s+r)}const a=e.type===T.leerElement?76:e.type===T.aufruf?104:72;return Math.max(a,n)}layoutElement(e,t,n,a){if(ya(e.type))return this.layoutMultiway(e,t,n,a);if(ba(e.type))return this.layoutLoop(e,t,n,a);const s=this.headerHeight(e);return va(a,e,{x:t,y:n,width:this.minWidth(e),height:s},s)}layoutLoop(e,t,n,a){const s=x=>x.reduce((b,y)=>b+y.frame.height,0),r=x=>Math.max(0,...x.map(b=>b.frame.width)),o=e.loopBody??[];if(e.type===T.doUntilSchleife){const x=this.doUntilBodyLeadingInset(),b=e.zoomY,y=this.headerHeight(e),w=this.layoutList(o,t+x,n+b,[...a,0]),v=Math.max(this.minWidth(e),r(w)+x),z=s(w)+y+b,k=Math.max(0,v-x),S=va(a,e,{x:t,y:n,width:v,height:z},y);return S.topBandHeight=b,S.loopBodyLeadingInset=x,S.children=w.map(O=>{const _=De(O);return _.frame.x=t+x,_.frame.width=k,this.stretchDescendantsWidths(_,k)}),S}const l=20,u=this.headerHeight(e),m=e.type===T.endlosschleife?40:0,c=this.layoutList(o,t+l,n+u,[...a,0]),d=Math.max(this.minWidth(e),r(c)+l),h=u+m+s(c),g=Math.max(0,d-l),p=va(a,e,{x:t,y:n,width:d,height:h},u);return p.children=c.map(x=>{const b=De(x);return b.frame.x=t+l,b.frame.width=g,this.stretchDescendantsWidths(b,g)}),p}layoutMultiway(e,t,n,a){const s=this.headerHeight(e),r=e.cases??[],o=Math.max(1,r.length),l=Math.max(this.minWidth(e)/o,132);let u=[],m=[],c=0,d=0;if(r.forEach((x,b)=>{const y=t+c,w=this.layoutList(x.elements,y,n+s,[...a,b]),v=Math.max(0,...w.map(S=>S.frame.width));let z;e.type===T.verzweigung&&o===2?z=Math.max(v,(b===0?"true":"false").length*this.metrics.charWidth+24):z=Math.max(l,v);const k=w.reduce((S,O)=>S+O.frame.height,0);d=Math.max(d,k),u.push({x:y,y:n+s,width:z,height:k}),m.push(w.map(S=>{const O=De(S);return O.frame.x=y,O.frame.width=z,this.stretchDescendantsWidths(O,z)})),c+=z}),e.type===T.verzweigung&&o===2&&u.length===2){const x=Math.max(u[0].width,u[1].width),b=t,y=t+x,w=y-u[1].x;u[0]={...u[0],x:b,width:x},u[1]={...u[1],x:y,width:x},c=x*2,m[0]=m[0].map(v=>{const z=De(v);return z.frame.x=b,z.frame.width=x,this.stretchDescendantsWidths(z,x)}),m[1]=m[1].map(v=>{const z=rr(v,w);return z.frame.width=x,this.stretchDescendantsWidths(z,x)})}if(m.length>0){const x=hp(m,n+s);m=x.columns.map(b=>b.map(y=>this.stretchLoopBodiesVertically(y)));for(let b=0;b0?Math.max(...x.columnHeights):d}let h=Math.max(c,this.minWidth(e));if(c>.5&&h>c+.5){const x=h/c;let b=t;const y=[],w=[];u.forEach((v,z)=>{const k=v.width*x;w.push(m[z].map(S=>{const O=De(S);return O.frame.x=b,O.frame.width=k,this.stretchDescendantsWidths(O,k)})),y.push({x:b,y:v.y,width:k,height:v.height}),b+=k}),u=y,m=w,c=b-t,h=c}const g=u.length>0?u[u.length-1].width:c/o,p=va(a,e,{x:t,y:n,width:h,height:s+d},s);return p.caseColumnFrames=u,p.dividerX=u.length>0?u[u.length-1].x:t+c-g,p.dividerYInset=e.type===T.fallauswahl?-20:0,p.columns=m,p.children=m.flat(),p}}function tc(i,e){if(Math.abs(e)<=1e-4)return i;const t=De(i),n=a=>{const s=De(a);return s.frame.y+=e,tc(s,e)};return t.columns?(t.columns=t.columns.map(a=>a.map(n)),t.children=t.columns.flat()):t.children=t.children.map(n),t}function rr(i,e){if(Math.abs(e)<=1e-4)return i;const t=De(i);return t.frame.x+=e,t.columns?(t.columns=t.columns.map(n=>n.map(a=>rr(a,e))),t.children=t.columns.flat()):t.children=t.children.map(n=>rr(n,e)),t}function hp(i,e){if(i.length<2)return{columns:i,columnHeights:i.map(u=>u.reduce((m,c)=>m+c.frame.height,0))};const t=.5,n=[e];for(const u of i)for(const m of u)n.push(m.frame.y+m.frame.height);const a=Math.max(...n);n.push(a),n.sort((u,m)=>u-m);let s=[];for(const u of n)s.length>0&&Math.abs(u-s[s.length-1])<=t||s.push(u);(s.length===0||Math.abs(s[0]-e)>t)&&s.unshift(e),s.length===0?s=[e,a]:s[s.length-1]{let c=Math.max(0,m);for(;c{let g=De(d);const p=s[c],x=d.frame.y+d.frame.height,b=h===u.length-1?s.length-1:r(x,c+1),y=s[b],w=p-g.frame.y;g.frame.y=p,g.frame.height=Math.max(0,y-p),g=tc(g,w),m.push(g),c=b}),o.push(m),l.push(s[s.length-1]-e)}return{columns:o,columnHeights:l}}const Gl=[{item:"anweisung",label:"Anweisung"},{item:"verzweigung",label:"Verzweigung"},{item:"fallauswahl",label:"Fallauswahl"},{item:"forZaehlSchleife",label:"For-Schleife"},{item:"whileSchleife",label:"While-Schleife"},{item:"doUntilSchleife",label:"Do-while-Schleife"},{item:"endlosschleife",label:"Endlosschleife"},{item:"aufruf",label:"Aufruf"},{item:"aussprung",label:"Aussprung"}];function wa(i){const e=Ct;switch(i){case"anweisung":return pe(T.anweisung);case"verzweigung":return pe(T.verzweigung,{cases:[{name:"true",elements:[e()]},{name:"false",elements:[e()]}]});case"fallauswahl":return pe(T.fallauswahl,{cases:[{name:"1",elements:[e()]},{name:"2",elements:[e()]},{name:"default",elements:[e()]}]});case"forZaehlSchleife":return pe(T.forSchleife,{textLines:["","",""],loopBody:[e()]});case"whileSchleife":return pe(T.whileSchleife,{loopBody:[e()]});case"doUntilSchleife":return pe(T.doUntilSchleife,{loopBody:[e()]});case"endlosschleife":return pe(T.endlosschleife,{loopBody:[e()]});case"aussprung":return pe(T.aussprung);case"aufruf":return pe(T.aufruf)}}function ui(i){if(i==="")return"-1;";let e="";for(const t of i)e+=t.codePointAt(0)+";";return e}function or(i){const e=i.split(";").filter(n=>n!=="");if(e.length===1&&e[0]==="-1")return"";let t="";for(const n of e){if(!/^[+-]?\d+$/.test(n))continue;const a=Number(n);a!==-1&&(a<0||a>1114111||a>=55296&&a<=57343||(t+=String.fromCodePoint(a)))}return t}class Rl extends Error{}function Co(i){const e=new DOMParser().parseFromString(i,"application/xml");if(e.getElementsByTagName("parsererror").length>0)throw new Rl("Could not read XML.");const t=e.documentElement;if(!t||t.tagName!=="struktogramm")throw new Rl("Invalid XML: root element is not .");const n={caption:Ql(t,"caption")??"",elements:ur(t)},a=Ql(t,"fontfamily");a!==void 0&&(n.fontFamily=a);const s=C1(t,"fontsize");s!==void 0&&(n.fontSize=s);const r=C1(t,"fontstyle");return r!==void 0&&(n.fontStyle=r),t.getAttribute("pseudocode")==="true"&&(n.pseudocode=!0),n}function Jn(i){const e=(n,a)=>a===void 0?"":` ${n}="${nc(a)}"`;let t=` +var Gg=Object.defineProperty;var Rg=(i,e,t)=>e in i?Gg(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var I=(i,e,t)=>Rg(i,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))n(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const r of s.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function t(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(a){if(a.ep)return;a.ep=!0;const s=t(a);fetch(a.href,s)}})();var T=(i=>(i[i.anweisung=0]="anweisung",i[i.verzweigung=1]="verzweigung",i[i.fallauswahl=2]="fallauswahl",i[i.forSchleife=3]="forSchleife",i[i.whileSchleife=4]="whileSchleife",i[i.doUntilSchleife=5]="doUntilSchleife",i[i.endlosschleife=6]="endlosschleife",i[i.aussprung=7]="aussprung",i[i.aufruf=8]="aufruf",i[i.leerElement=9]="leerElement",i))(T||{});function Hg(i){return i===3||i===4||i===5||i===6}function Qg(i){return i===1||i===2}function pe(i,e={}){return{type:i,zoomX:0,zoomY:0,textLines:[""],...e}}function Vg(i){const e=i.textLines;if(!e.every(t=>t.trim()===""))switch(i.type){case T.forSchleife:return e.length<=1?e:[Ug(e)];case T.verzweigung:return xa("if",e);case T.whileSchleife:return xa("while",e);case T.doUntilSchleife:return xa("while",qg(e));case T.fallauswahl:return xa("switch",e);default:return e}}function qg(i){if(i.length===0)return i;const e=i[0].trim(),t=e.toLowerCase(),n=[...i];if(t==="until")n[0]="";else if(t.startsWith("until "))n[0]=e.slice(6).trim();else if(t.startsWith("until("))n[0]=e.slice(5);else return i;return n}function Wl(i){const e=new Set(["if","for","while","until","switch"]),t=["input:","output:","print:"],n=i.trim(),a=n.toLowerCase();for(const o of t){if(a===o)return{keyword:n,rest:""};if(a.startsWith(o+" "))return{keyword:n.slice(0,o.length),rest:n.slice(o.length).trim()}}const s=n.indexOf(" ");if(s<0)return;const r=n.slice(0,s);if(e.has(r.toLowerCase()))return{keyword:r,rest:n.slice(s+1).trim()}}function xa(i,e){if(e.length===0)return e;const t=e[0].trim(),n=t.toLowerCase();if(n===i||n.startsWith(i+" "))return e;const a=[...e];return a[0]=i+" "+t,a}function Ug(i){let e=[...i];for(;e.length<3;)e.push("");e=e.slice(0,3);const t=a=>{let s=a.trim();for(;s.endsWith(";");)s=s.slice(0,-1).trim();return s},n=e.map(t).join("; ").trim();return n===""?"for":"for "+n}const Qm={[T.anweisung]:"Anweisung",[T.verzweigung]:"Bedingung",[T.fallauswahl]:"Fallauswahl",[T.forSchleife]:"for 0 < i < anzahl",[T.whileSchleife]:"while …",[T.doUntilSchleife]:"while …",[T.endlosschleife]:"endless",[T.aussprung]:"break",[T.aufruf]:"Aufruf()",[T.leerElement]:"ø"};function $g(i){Object.assign(Qm,i)}function To(i){return Vg(i)??[Qm[i.type]]}class ve extends Error{}const Ut=i=>structuredClone(i);function Ct(){return pe(T.anweisung,{textLines:["ø"]})}function Yg(){return{caption:"",elements:[Ct()]}}function Ao(i){if(i.type===T.leerElement)return!0;if(i.type===T.anweisung){const e=i.textLines;return e.length===0||e.length===1&&e[0]==="ø"}return!1}function Vn(i,e){const t=xt(i,e);return t!==void 0&&Ao(t)}function ra(i,e){if(e.length===0)throw new ve("Invalid element path.");const[t,...n]=e;if(t<0||t>=i.length)throw new ve("Invalid element path.");if(n.length===0)return{list:i,index:t};const[a,...s]=n;if(s.length===0)throw new ve("Invalid element path.");return ra(Vm(i[t],a),s)}function Vm(i,e){if(Hg(i.type)){if(e!==0||!i.loopBody)throw new ve("Invalid element path.");return i.loopBody}if(Qg(i.type)){if(!i.cases||e<0||e>=i.cases.length)throw new ve("Invalid element path.");return i.cases[e].elements}throw new ve("Invalid element path.")}function Bt(i,e){const{list:t,index:n}=ra(i.elements,e);return t[n]}function xt(i,e){try{return Bt(i,e)}catch{return}}function hn(i,e,t){const n=Ut(i),{list:a,index:s}=ra(n.elements,e);return a[s]=Ut(t),n}function cs(i,e,t){const n=Ut(Bt(i,e));return n.textLines=t.length===0?[""]:t,hn(i,e,n)}function ds(i,e){return e.length===0?!1:e.length===1&&i.elements.length===1?!Vn(i,e):xt(i,e)!==void 0}function R1(i,e){const t=Ut(i),{list:n,index:a}=ra(t.elements,e);if(e.length===1&&n.length===1){if(Ao(n[0]))throw new ve("The last root element cannot be deleted.");return n[0]=Ct(),t}return n.splice(a,1),e.length>1&&n.length===0&&n.push(Ct()),t}function j1(i,e,t,n){const a=Ut(i);let s;if(e.length===0)s=a.elements;else{const r=e.slice(0,-1),o=e[e.length-1],{list:l,index:u}=ra(a.elements,r);s=Vm(l[u],o)}return s.splice(Math.min(Math.max(0,t),s.length),0,Ut(n)),a}function qm(i,e,t){if(t.length===0)throw new ve("Invalid element path.");return j1(i,t.slice(0,-1),t[t.length-1],e)}function sr(i,e,t){if(t.length===0)throw new ve("Invalid element path.");return j1(i,t.slice(0,-1),t[t.length-1]+1,e)}function Po(i,e){return i.lengthe[n]===t)}function jo(i,e){if(e.length===0)return i;const t=e[e.length-1],n=e.slice(0,-1);if(i.length<=n.length||!n.every((r,o)=>i[o]===r))return i;const a=n.length;if(i[a]<=t)return i;const s=[...i];return s[a]-=1,s}const Co=(i,e)=>i.length===e.length&&i.every((t,n)=>t===e[n]);function Xg(i,e,t){if(Co(e,t))return i;if(Po(e,t))throw new ve("Invalid element path.");const n=Bt(i,e),a=R1(i,e);return qm(a,n,jo(t,e))}function Kg(i,e,t){if(Co(e,t))return i;if(Po(e,t))throw new ve("Invalid element path.");const n=Bt(i,e),a=R1(i,e);return sr(a,n,jo(t,e))}function ep(i,e,t){if(!Vn(i,t))throw new ve("Invalid element path.");if(Co(e,t))return i;if(Po(e,t))throw new ve("Invalid element path.");const n=Bt(i,e),a=R1(i,e);return hn(a,jo(t,e),n)}function tp(i,e){const t=Ut(Bt(i,e)),n=t.cases;if(t.type!==T.fallauswahl||!n||n.length===0)throw new ve("Invalid element path.");const a=n[n.length-1].name.toLowerCase()==="default",s=a?n.length-1:n.length,r=String(a?n.length:n.length+1);return n.splice(s,0,{name:r,elements:[Ct()]}),{doc:hn(i,e,t),path:[...e,s,0]}}function np(i,e,t){const n=Ut(Bt(i,e)),a=n.cases;if(n.type!==T.fallauswahl||!a)throw new ve("Invalid element path.");if(a.length<=2)throw new ve("A switch needs at least two cases.");if(t<0||t>=a.length)throw new ve("Invalid element path.");a.splice(t,1);const s=Math.min(t,a.length-1);return{doc:hn(i,e,n),path:[...e,s,0]}}function ap(i,e,t,n){const a=Ut(Bt(i,e)),s=a.cases;if(a.type!==T.fallauswahl||!s)throw new ve("Invalid element path.");if(t<0||t>=s.length)throw new ve("Invalid element path.");const r=n.trim();if(r==="")throw new ve("Invalid element path.");return s[t].name=r,hn(i,e,a)}function ip(i,e){var t;if(!(!i||i.length===0))for(let n=i.length;n>=1;n--){const a=i.slice(0,n);if(((t=xt(e,a))==null?void 0:t.type)===T.fallauswahl)return a}}function sp(i,e){if(!(!i||i.length<=e.length))return i[e.length]}function hs(i,e){if(e.elements.length!==0)return!i||!xt(e,i)?[0]:i}const Um=i=>i!==void 0&&/\s/.test(i);function li(i){const e=i.trim().toLowerCase();return e.startsWith("input:")?"input":e.startsWith("output:")||e.startsWith("print:")?"output":"statement"}function rp(i){const e=i.trim(),t=e.toLowerCase();return t.startsWith("input:")?e.slice(6).trim():t.startsWith("output:")?e.slice(7).trim():t.startsWith("print:")?e.slice(6).trim():i}function Ll(i,e){const t=e.trim();return t===""?`${i} `:`${i} ${t}`}function op(i,e){const t=rp(e);switch(i){case"statement":return t;case"input":return Ll("input:",t);case"output":return Ll("output:",t)}}const Ua=i=>Um(i[0])?i.slice(1):i;function lp(i){const e=i.replace(/^\s+/,""),t=e.toLowerCase();return t.startsWith("input:")?Ua(e.slice(6)):t.startsWith("output:")?Ua(e.slice(7)):t.startsWith("print:")?Ua(e.slice(6)):i}function El(i,e){const t=e.replace(/^\s+/,"");if(!t.toLowerCase().startsWith(i.toLowerCase()))return e;const n=t.slice(i.length);if(!(n===""||Um(n[0])||n[0]==="("))return e;const a=Ua(n);return a.startsWith("(")&&a.endsWith(")")&&a.length>=2?a.slice(1,-1):a}function Nl(i,e){if(i==="input:"||i==="output:")return lp(e);const t=El(i,e);if(i==="while"&&t===e){const n=El("until",e);if(n!==e)return n}return t}function up(i,e){return e===""?`${i} `:`${i} ${e}`}function $m(i){return i.replace(/[“”„«»]/g,'"').replace(/[’‘‚´]/g,"'")}function Fl(i){const e=i.length===0?[""]:i.slice(0,3);for(;e.length<3;)e.push("");return e}function mp(i){let e=$m(i);for(;;){const t=e.trim();if(!t.endsWith(";"))return e;e=t.slice(0,-1).trim()}}const Ri='system-ui, -apple-system, "Segoe UI", Roboto, sans-serif';function cp(i,e){return`${e==="bold"?700:500} ${i}px ${Ri}`}const Ym=(i,e,t)=>[...i].length*e*(t==="bold"?.68:.62);function dp(){if(typeof document>"u"||!document.body)return;const i="http://www.w3.org/2000/svg",e=document.createElementNS(i,"svg");e.setAttribute("aria-hidden","true"),e.setAttribute("width","0"),e.setAttribute("height","0"),e.style.cssText="position:absolute;left:-9999px;top:0;visibility:hidden;overflow:hidden";const t=document.createElementNS(i,"text");if(t.setAttribute("font-family",Ri),t.style.whiteSpace="pre",e.append(t),document.body.append(e),typeof t.getComputedTextLength!="function"||typeof t.getBBox!="function"){e.remove();return}if(t.textContent="Mg",t.setAttribute("font-size","20"),!(t.getComputedTextLength()>0)){e.remove();return}return t}let gs;function Xm(){return gs===void 0&&(gs=dp()??null),gs??void 0}function Km(i,e,t){i.setAttribute("font-size",String(e)),i.setAttribute("font-weight",t==="bold"?"700":"500")}function Jl(i,e){const t=`${i}|${e}`;let n=Gl.get(t);if(!n){const a=Xm();if(n={ascent:i*.95,descent:i*.24},a){Km(a,i,e),a.setAttribute("y","0"),a.textContent="Mg";const s=a.getBBox();s.height>0&&(n={ascent:-s.y,descent:s.height+s.y})}Gl.set(t,n)}return n}const Gl=new Map;function hp(){const i=Xm();if(i){const n=new Map;return(a,s,r)=>{const o=`${s}|${r}|${a}`;let l=n.get(o);return l===void 0&&(Km(i,s,r),i.textContent=a,l=a===""?0:i.getComputedTextLength(),n.size>2e3&&n.clear(),n.set(o,l)),l}}const e=typeof document<"u"?document.createElement("canvas").getContext("2d"):null;if(!e)return Ym;const t=new Map;return(n,a,s)=>{const r=`${a}|${s}|${n}`;let o=t.get(r);return o===void 0&&(e.font=cp(a,s),o=e.measureText(n).width,t.size>2e3&&t.clear(),t.set(r,o)),o}}const ec={fontSize:15,lineHeight:20,charWidth:7,baseHeaderExtra:20,minSidePadding:42,cellTextInsetY:15,doUntilDoLabelTopInset:2,doUntilFooterTopInset:6,doUntilFooterBottomInset:8};function gp(i){return{...ec,fontSize:14,lineHeight:21,charWidth:5.5*(14/12),baseHeaderExtra:21,minSidePadding:40}}const ba=i=>i===T.forSchleife||i===T.whileSchleife||i===T.doUntilSchleife||i===T.endlosschleife,ya=i=>i===T.fallauswahl||i===T.verzweigung;function va(i,e,t,n=0){return{idPath:i,element:e,frame:t,headerBandHeight:n,topBandHeight:0,loopBodyLeadingInset:0,caseColumnFrames:[],children:[]}}function De(i){return{...i,frame:{...i.frame}}}class tc{constructor(e=ec,t=Ym){this.metrics=e,this.measure=t}layout(e,t={left:28,top:28}){const a=this.layoutList(e.elements,t.left,t.top,[]).map(l=>this.stretchLoopBodiesVertically(l));let s=0,r=0;const o=l=>{s=Math.max(s,l.frame.x+l.frame.width),r=Math.max(r,l.frame.y+l.frame.height),l.children.forEach(o)};return a.forEach(o),{canvasSize:{width:s+t.left,height:r+t.top},elements:a}}lineWidth(e){return Math.ceil(this.measure(e,this.metrics.fontSize,"medium"))}lineWidthBold(e){return Math.ceil(this.measure(e,this.metrics.fontSize,"bold"))}layoutList(e,t,n,a){let s=[],r=n;e.forEach((l,u)=>{const m=this.layoutElement(l,t,r,[...a,u]);s.push(m),r+=m.frame.height});const o=Math.max(0,...s.map(l=>l.frame.width));return o>0&&(s=s.map(l=>this.stretchNodeTreeToWidth(l,o))),s}stretchMultiwayNodeToWidth(e,t){const n=De(e),a=n.frame.width;if(!(a>0)||n.caseColumnFrames.length===0)return n;const s=t/a;n.frame.width=t;let r=n.frame.x;const o=n.caseColumnFrames.map(l=>{const u=l.width*s,m={x:r,y:l.y,width:u,height:l.height};return r+=u,m});return n.caseColumnFrames=o,n.dividerX=o.length>0?o[o.length-1].x:n.frame.x+t,n.columns&&n.columns.length===o.length&&(n.columns=n.columns.map((l,u)=>{const m=o[u];return l.map(c=>{const d=De(c);return d.frame.x=m.x,d.frame.width=m.width,this.stretchDescendantsWidths(d,m.width)})}),n.children=n.columns.flat()),n}stretchLoopChildren(e,t){const n=this.effectiveLoopBodyLeading(e),a=Math.max(0,t-n);e.children=e.children.map(s=>{const r=De(s);return r.frame.x=e.frame.x+n,r.frame.width=a,this.stretchDescendantsWidths(r,a)})}stretchNodeTreeToWidth(e,t){const n=De(e);return n.frame.width>0?ya(n.element.type)&&n.caseColumnFrames.length>0?this.stretchMultiwayNodeToWidth(n,t):(n.frame.width=t,ba(n.element.type)?this.stretchLoopChildren(n,t):n.children=n.children.map(s=>this.stretchDescendantsWidths(s,t)),n):n}stretchDescendantsWidths(e,t){let n=De(e);return ya(n.element.type)?n=this.stretchNodeTreeToWidth(n,t):ba(n.element.type)?(n.frame.width=t,this.stretchLoopChildren(n,t)):(n.frame.width=t,n.children=n.children.map(a=>this.stretchDescendantsWidths(a,t))),n}stretchLoopBodiesVertically(e){const t=De(e);if(t.columns&&t.columns.length>0)return t.columns=t.columns.map(s=>s.map(r=>this.stretchLoopBodiesVertically(r))),t.children=t.columns.flat(),t;t.children=t.children.map(s=>this.stretchLoopBodiesVertically(s));const n=s=>s===T.anweisung||s===T.leerElement||s===T.aufruf||s===T.aussprung||ba(s);let a;switch(t.element.type){case T.forSchleife:case T.whileSchleife:case T.endlosschleife:{const s=t.element.type===T.endlosschleife?40:0;a=t.frame.y+t.frame.height-s;break}case T.doUntilSchleife:a=t.frame.y+t.frame.height-t.headerBandHeight;break}if(a!==void 0&&t.children.length>0){const s=t.children.length-1;let r=De(t.children[s]);const o=a-(r.frame.y+r.frame.height);o>.5&&n(r.element.type)&&(r.frame.height+=o,r=this.stretchLoopBodiesVertically(r),t.children=[...t.children.slice(0,s),r])}return t}headerHeight(e){const t=this.metrics,n=Math.max(1,e.textLines.length);if(e.type===T.doUntilSchleife)return t.doUntilFooterTopInset+n*t.lineHeight+t.doUntilFooterBottomInset+e.zoomY;let a;switch(e.type){case T.fallauswahl:a=40;break;case T.verzweigung:a=20;break;case T.forSchleife:case T.whileSchleife:case T.endlosschleife:a=t.baseHeaderExtra+4;break;default:a=14}return a+n*t.lineHeight+e.zoomY}doUntilBodyLeadingInset(){return Math.max(20,this.lineWidthBold("do")+12)}effectiveLoopBodyLeading(e){return e.element.type===T.doUntilSchleife?e.loopBodyLeadingInset>0?e.loopBodyLeadingInset:this.doUntilBodyLeadingInset():20}horizontalPaddingInsideCell(e){return ya(e)?Math.max(100,this.metrics.minSidePadding*2.45):this.metrics.minSidePadding}minWidth(e){const t=e.textLines.length===0?0:Math.max(...e.textLines.map(s=>this.lineWidth(s)));let n=t+e.zoomX+this.horizontalPaddingInsideCell(e.type);if(e.type===T.aufruf){const s=Math.max(68,this.metrics.minSidePadding*1.7),r=Math.max(8,this.metrics.minSidePadding*.2);n=Math.max(n,t+e.zoomX+s+r)}const a=e.type===T.leerElement?76:e.type===T.aufruf?104:72;return Math.max(a,n)}layoutElement(e,t,n,a){if(ya(e.type))return this.layoutMultiway(e,t,n,a);if(ba(e.type))return this.layoutLoop(e,t,n,a);const s=this.headerHeight(e);return va(a,e,{x:t,y:n,width:this.minWidth(e),height:s},s)}layoutLoop(e,t,n,a){const s=x=>x.reduce((b,y)=>b+y.frame.height,0),r=x=>Math.max(0,...x.map(b=>b.frame.width)),o=e.loopBody??[];if(e.type===T.doUntilSchleife){const x=this.doUntilBodyLeadingInset(),b=e.zoomY,y=this.headerHeight(e),w=this.layoutList(o,t+x,n+b,[...a,0]),v=Math.max(this.minWidth(e),r(w)+x),z=s(w)+y+b,k=Math.max(0,v-x),S=va(a,e,{x:t,y:n,width:v,height:z},y);return S.topBandHeight=b,S.loopBodyLeadingInset=x,S.children=w.map(O=>{const _=De(O);return _.frame.x=t+x,_.frame.width=k,this.stretchDescendantsWidths(_,k)}),S}const l=20,u=this.headerHeight(e),m=e.type===T.endlosschleife?40:0,c=this.layoutList(o,t+l,n+u,[...a,0]),d=Math.max(this.minWidth(e),r(c)+l),h=u+m+s(c),g=Math.max(0,d-l),p=va(a,e,{x:t,y:n,width:d,height:h},u);return p.children=c.map(x=>{const b=De(x);return b.frame.x=t+l,b.frame.width=g,this.stretchDescendantsWidths(b,g)}),p}layoutMultiway(e,t,n,a){const s=this.headerHeight(e),r=e.cases??[],o=Math.max(1,r.length),l=Math.max(this.minWidth(e)/o,132);let u=[],m=[],c=0,d=0;if(r.forEach((x,b)=>{const y=t+c,w=this.layoutList(x.elements,y,n+s,[...a,b]),v=Math.max(0,...w.map(S=>S.frame.width));let z;e.type===T.verzweigung&&o===2?z=Math.max(v,(b===0?"true":"false").length*this.metrics.charWidth+24):z=Math.max(l,v);const k=w.reduce((S,O)=>S+O.frame.height,0);d=Math.max(d,k),u.push({x:y,y:n+s,width:z,height:k}),m.push(w.map(S=>{const O=De(S);return O.frame.x=y,O.frame.width=z,this.stretchDescendantsWidths(O,z)})),c+=z}),e.type===T.verzweigung&&o===2&&u.length===2){const x=Math.max(u[0].width,u[1].width),b=t,y=t+x,w=y-u[1].x;u[0]={...u[0],x:b,width:x},u[1]={...u[1],x:y,width:x},c=x*2,m[0]=m[0].map(v=>{const z=De(v);return z.frame.x=b,z.frame.width=x,this.stretchDescendantsWidths(z,x)}),m[1]=m[1].map(v=>{const z=rr(v,w);return z.frame.width=x,this.stretchDescendantsWidths(z,x)})}if(m.length>0){const x=pp(m,n+s);m=x.columns.map(b=>b.map(y=>this.stretchLoopBodiesVertically(y)));for(let b=0;b0?Math.max(...x.columnHeights):d}let h=Math.max(c,this.minWidth(e));if(c>.5&&h>c+.5){const x=h/c;let b=t;const y=[],w=[];u.forEach((v,z)=>{const k=v.width*x;w.push(m[z].map(S=>{const O=De(S);return O.frame.x=b,O.frame.width=k,this.stretchDescendantsWidths(O,k)})),y.push({x:b,y:v.y,width:k,height:v.height}),b+=k}),u=y,m=w,c=b-t,h=c}const g=u.length>0?u[u.length-1].width:c/o,p=va(a,e,{x:t,y:n,width:h,height:s+d},s);return p.caseColumnFrames=u,p.dividerX=u.length>0?u[u.length-1].x:t+c-g,p.dividerYInset=e.type===T.fallauswahl?-20:0,p.columns=m,p.children=m.flat(),p}}function nc(i,e){if(Math.abs(e)<=1e-4)return i;const t=De(i),n=a=>{const s=De(a);return s.frame.y+=e,nc(s,e)};return t.columns?(t.columns=t.columns.map(a=>a.map(n)),t.children=t.columns.flat()):t.children=t.children.map(n),t}function rr(i,e){if(Math.abs(e)<=1e-4)return i;const t=De(i);return t.frame.x+=e,t.columns?(t.columns=t.columns.map(n=>n.map(a=>rr(a,e))),t.children=t.columns.flat()):t.children=t.children.map(n=>rr(n,e)),t}function pp(i,e){if(i.length<2)return{columns:i,columnHeights:i.map(u=>u.reduce((m,c)=>m+c.frame.height,0))};const t=.5,n=[e];for(const u of i)for(const m of u)n.push(m.frame.y+m.frame.height);const a=Math.max(...n);n.push(a),n.sort((u,m)=>u-m);let s=[];for(const u of n)s.length>0&&Math.abs(u-s[s.length-1])<=t||s.push(u);(s.length===0||Math.abs(s[0]-e)>t)&&s.unshift(e),s.length===0?s=[e,a]:s[s.length-1]{let c=Math.max(0,m);for(;c{let g=De(d);const p=s[c],x=d.frame.y+d.frame.height,b=h===u.length-1?s.length-1:r(x,c+1),y=s[b],w=p-g.frame.y;g.frame.y=p,g.frame.height=Math.max(0,y-p),g=nc(g,w),m.push(g),c=b}),o.push(m),l.push(s[s.length-1]-e)}return{columns:o,columnHeights:l}}const Rl=[{item:"anweisung",label:"Anweisung"},{item:"verzweigung",label:"Verzweigung"},{item:"fallauswahl",label:"Fallauswahl"},{item:"forZaehlSchleife",label:"For-Schleife"},{item:"whileSchleife",label:"While-Schleife"},{item:"doUntilSchleife",label:"Do-while-Schleife"},{item:"endlosschleife",label:"Endlosschleife"},{item:"aufruf",label:"Aufruf"},{item:"aussprung",label:"Aussprung"}];function wa(i){const e=Ct;switch(i){case"anweisung":return pe(T.anweisung);case"verzweigung":return pe(T.verzweigung,{cases:[{name:"true",elements:[e()]},{name:"false",elements:[e()]}]});case"fallauswahl":return pe(T.fallauswahl,{cases:[{name:"1",elements:[e()]},{name:"2",elements:[e()]},{name:"default",elements:[e()]}]});case"forZaehlSchleife":return pe(T.forSchleife,{textLines:["","",""],loopBody:[e()]});case"whileSchleife":return pe(T.whileSchleife,{loopBody:[e()]});case"doUntilSchleife":return pe(T.doUntilSchleife,{loopBody:[e()]});case"endlosschleife":return pe(T.endlosschleife,{loopBody:[e()]});case"aussprung":return pe(T.aussprung);case"aufruf":return pe(T.aufruf)}}function ui(i){if(i==="")return"-1;";let e="";for(const t of i)e+=t.codePointAt(0)+";";return e}function or(i){const e=i.split(";").filter(n=>n!=="");if(e.length===1&&e[0]==="-1")return"";let t="";for(const n of e){if(!/^[+-]?\d+$/.test(n))continue;const a=Number(n);a!==-1&&(a<0||a>1114111||a>=55296&&a<=57343||(t+=String.fromCodePoint(a)))}return t}class Hl extends Error{}function _o(i){const e=new DOMParser().parseFromString(i,"application/xml");if(e.getElementsByTagName("parsererror").length>0)throw new Hl("Could not read XML.");const t=e.documentElement;if(!t||t.tagName!=="struktogramm")throw new Hl("Invalid XML: root element is not .");const n={caption:Vl(t,"caption")??"",elements:ur(t)},a=Vl(t,"fontfamily");a!==void 0&&(n.fontFamily=a);const s=C1(t,"fontsize");s!==void 0&&(n.fontSize=s);const r=C1(t,"fontstyle");return r!==void 0&&(n.fontStyle=r),t.getAttribute("pseudocode")==="true"&&(n.pseudocode=!0),n}function Jn(i){const e=(n,a)=>a===void 0?"":` ${n}="${ac(a)}"`;let t=` `;t+=" `;for(const n of i.elements)t+=lr(n," ");return t+=` -`,t}function lr(i,e){let t=`${e} -`;for(const n of i.textLines)t+=`${e} ${gp(ui(n))} +`,t}function lr(i,e){let t=`${e} +`;for(const n of i.textLines)t+=`${e} ${fp(ui(n))} `;if(i.loopBody){t+=`${e} `;for(const n of i.loopBody)t+=lr(n,e+" ");t+=`${e} -`}if(i.cases)for(const n of i.cases){t+=`${e} +`}if(i.cases)for(const n of i.cases){t+=`${e} `;for(const a of n.elements)t+=lr(a,e+" ");t+=`${e} `}return t+=`${e} -`,t}function nc(i){return i.replace(/&/g,"&").replace(/"/g,""").replace(//g,">")}function gp(i){return i.replace(/&/g,"&").replace(//g,">")}function Hl(i){return String(i.a<<24|i.r<<16|i.g<<8|i.b|0)}function $a(i,e){return Array.from(i.children).filter(t=>t.tagName===e)}function ur(i){const e=[];for(const t of $a(i,"strelem")){const n=pp(t);n&&e.push(n)}return e}function pp(i){const e=C1(i,"typ");if(e===void 0||T[e]===void 0)return;const t={type:e,zoomX:C1(i,"zx")??0,zoomY:C1(i,"zy")??0,textLines:$a(i,"text").map(o=>or((o.textContent??"").trim()))},n=Vl(i.getAttribute("textcolor"));n&&(t.textColor=n);const a=Vl(i.getAttribute("bgcolor"));a&&(t.backgroundColor=a),t.textLines.length===0&&(t.textLines=[""]);const s=$a(i,"schleifeninhalt")[0];if(s){const o=ur(s);o.length>0&&(t.loopBody=o)}const r=$a(i,"fall").map(o=>({name:or(o.getAttribute("fallname")??""),elements:ur(o)}));return r.length>0&&(t.cases=r),t}function Ql(i,e){const t=i.getAttribute(e);return t===null?void 0:or(t)}function C1(i,e){const t=i.getAttribute(e);if(!(t===null||!/^[+-]?\d+$/.test(t)))return Number(t)}function Vl(i){if(i===null||!/^[+-]?\d+$/.test(i))return;const e=Number(i);if(e<-2147483648||e>2147483647)return;const t=e>>>0;return{a:t>>>24&255,r:t>>>16&255,g:t>>>8&255,b:t&255}}const fp="http://www.w3.org/2000/svg",we={diagramLineWidth:2,outerFrameLineWidth:2,selectionLineWidth:3.5,canvasOuterMargin:16,cellTextInsetX:18,cellTextInsetY:15,multiHeaderFirstLineY:14,branchLabelInsetX:10,fallauswahlCaseLabelBand:26,callSideBarInset:14,callTextInsetFromSideBar:20,loopBodyLeadingInset:20};function le(i,e={}){const t=document.createElementNS(fp,i);for(const[n,a]of Object.entries(e))t.setAttribute(n,String(a));return t}class ac{constructor(e,t){I(this,"usesSimulationHighlight",!1);I(this,"fillsSelection",!1);this.metrics=e,this.measure=t}get lineHeight(){return this.metrics.lineHeight}get fontSize(){return this.metrics.fontSize}render(e,t,n,a=we.canvasOuterMargin){const s=le("svg",{width:t.width,height:t.height,viewBox:`0 0 ${t.width} ${t.height}`,"font-family":Ri,"font-size":this.fontSize,class:"diagram"});s.append(le("rect",{x:0,y:0,width:t.width,height:t.height,fill:"#fafafa"}));const r=a;s.append(le("rect",{x:r,y:r,width:e.canvasSize.width-2*r-1,height:e.canvasSize.height-2*r-1,fill:"none",stroke:"black","stroke-width":we.outerFrameLineWidth}));const o=le("g");for(const l of e.elements)this.drawNode(l,o,n,{},void 0);return s.append(o),s}line(e,t){e.append(le("polyline",{points:t.map(n=>n.join(",")).join(" "),fill:"none",stroke:"black","stroke-width":we.diagramLineWidth,"stroke-linejoin":"miter"}))}strokeCellBorder(e,t,n){const a=t.x,s=t.y,r=t.x+t.width,o=t.y+t.height;if(!n.top&&!n.left&&!n.bottom&&!n.right){e.append(le("rect",{x:a,y:s,width:t.width,height:t.height,fill:"none",stroke:"black","stroke-width":we.diagramLineWidth}));return}n.top||this.line(e,[[a,s],[r,s]]),n.right||this.line(e,[[r,s],[r,o]]),n.bottom||this.line(e,[[r,o],[a,o]]),n.left||this.line(e,[[a,o],[a,s]])}textWidth(e){const t=Bl(e);return t?this.measure(t.keyword,this.fontSize,"bold")+(t.rest===""?0:this.measure(" "+t.rest,this.fontSize,"medium")):this.measure(e,this.fontSize,"medium")}drawKeywordLine(e,t,n,a){const s=le("text",{x:n,y:a+Fl(this.fontSize,"medium").ascent,"font-weight":500});s.style.whiteSpace="pre";const r=Bl(t);if(r){const o=le("tspan",{"font-weight":700});if(o.textContent=r.keyword,s.append(o),r.rest!==""){const l=le("tspan",{});l.textContent=" "+r.rest,s.append(l)}}else s.textContent=t;e.append(s)}drawLabel(e,t,n,a,s,r){const o=Fl(this.fontSize,s?"bold":"medium"),l=le("text",{x:n,y:r==="top"?a+o.ascent:a-o.descent,"font-weight":s?700:500});l.style.whiteSpace="pre",l.textContent=t,e.append(l)}roofMetrics(e,t,n,a){const s=t.y+n,r=e.dividerYInset??0,o=12,l=Math.max(e.element.textLines.length,1)*this.lineHeight,u=t.y+we.multiHeaderFirstLineY;if(e.element.type===T.fallauswahl){const c=Math.max(we.fallauswahlCaseLabelBand,this.lineHeight+10),d=s-c,h=Math.min(s+r,d-8),g=Math.max(h,u+l+6);return{apex:{x:a,y:g},maxTextBottom:d-o,roofBottom:s}}const m={x:a,y:s+r};return{apex:m,maxTextBottom:m.y-o,roofBottom:s}}drawNode(e,t,n,a,s){var z;const r=e.frame,o=e.element,l=r.x+r.width,u=r.y+r.height,m=o.type===T.verzweigung||o.type===T.fallauswahl,c=m?e.headerBandHeight:0,d=n!==void 0&&mr(e.idPath,n),h=Oo(o),g=le("g",{"data-path":e.idPath.join(",")});t.append(g);const p=this.usesSimulationHighlight,x=o.backgroundColor,b=x&&x.a>0?`rgba(${x.r}, ${x.g}, ${x.b}, ${x.a/255})`:"white",y=d&&(p||this.fillsSelection)?"rgba(199, 230, 255, 0.55)":b;g.append(le("rect",{x:r.x,y:r.y,width:r.width,height:r.height,fill:y})),this.strokeCellBorder(g,r,a);const w=we.callSideBarInset;if(o.type===T.aufruf?(this.line(g,[[r.x+w,r.y],[r.x+w,u]]),this.line(g,[[l-w,r.y],[l-w,u]])):o.type===T.aussprung&&this.line(g,[[r.x+w,r.y],[r.x,r.y+r.height/2],[r.x+w,u]]),m&&e.dividerX!==void 0){const k=e.dividerX,S=this.roofMetrics(e,r,c,k),O=Math.max(h.length,1)*this.lineHeight,_=r.y+we.multiHeaderFirstLineY;this.line(g,[[r.x,r.y],[S.apex.x,S.apex.y],[l,r.y]]),o.type===T.fallauswahl&&this.line(g,[[r.x,S.roofBottom],[l,S.roofBottom]]);let Z;_+O<=S.maxTextBottom?Z=_:Z=Math.max(r.y+2,S.maxTextBottom-(Math.max(h.length,1)-1)*this.lineHeight-this.lineHeight),h.forEach((j,A)=>{const L=this.textWidth(j);let R;if(o.type===T.verzweigung){const X=r.x+we.cellTextInsetX,he=l-L-we.cellTextInsetX;R=Math.min(Math.max(k-L/2,X),he)}else R=r.x+r.width/2-L/2;this.drawKeywordLine(g,j,R,Z+A*this.lineHeight)})}else if(o.type!==T.doUntilSchleife)if(o.type===T.anweisung||o.type===T.aufruf||o.type===T.aussprung){const k=we.cellTextInsetX;let S=r.x+k,O=l-k;o.type===T.aufruf?(S=r.x+w+we.callTextInsetFromSideBar,O=l-w-we.callTextInsetFromSideBar):o.type===T.aussprung&&(S=r.x+w+k);const _=Math.max(0,O-S);let Z=r.y+r.height/2-Math.max(1,h.length)*this.lineHeight/2;for(const j of h)this.drawKeywordLine(g,j,S+(_-this.textWidth(j))/2,Z),Z+=this.lineHeight}else{const k=Math.max(1,h.length)*this.lineHeight;let S=s===T.doUntilSchleife?r.y+r.height/2-k/2:r.y+we.cellTextInsetY;for(const O of h)this.drawKeywordLine(g,O,r.x+we.cellTextInsetX,S),S+=this.lineHeight}e.children.forEach((k,S)=>{const O=o.type===T.doUntilSchleife&&S===0?{top:!0,left:!0}:{};this.drawNode(k,t,n,O,o.type)});const v=le("g");if(t.append(v),o.type===T.doUntilSchleife){const k=((z=e.children[0])==null?void 0:z.frame.x)??r.x+(e.loopBodyLeadingInset>0?e.loopBodyLeadingInset:we.loopBodyLeadingInset);this.drawLabel(v,"do",r.x+4,r.y+this.metrics.doUntilDoLabelTopInset,!0,"top");const S=u-e.headerBandHeight;this.line(v,[[k,S],[l,S]]),this.line(v,[[k,r.y],[k,S]]);let O=S+this.metrics.doUntilFooterTopInset;for(const _ of h)this.drawKeywordLine(v,_,r.x+we.cellTextInsetX,O),O+=this.lineHeight}if(m&&e.dividerX!==void 0&&e.caseColumnFrames.length>1){const k=this.roofMetrics(e,r,c,e.dividerX),S=k.apex;e.caseColumnFrames.forEach((_,Z)=>{if(Z>=e.caseColumnFrames.length-1)return;const j=_.x+_.width,A=xp(j,r,S),L=Number.isFinite(A)?Math.min(Math.max(A,r.y),u):r.y;this.line(v,[[j,u],[j,L]])});const O=o.cases;if(O&&O.length===e.caseColumnFrames.length){const _=o.type===T.fallauswahl?k.roofBottom-6:r.y+c-8,Z=we.branchLabelInsetX;if(o.type===T.verzweigung&&O.length===2){this.drawLabel(v,"true",r.x+Z,_,!0,"bottom");const j=e.caseColumnFrames[1],A=this.measure("false",this.fontSize,"bold");this.drawLabel(v,"false",j.x+j.width-Z-A,_,!0,"bottom")}else O.forEach((j,A)=>{const L=e.caseColumnFrames[A],R=["default","true","false"].includes(j.name.toLowerCase()),X=this.measure(j.name,this.fontSize,R?"bold":"medium");this.drawLabel(v,j.name,L.x+L.width/2-X/2,_,R,"bottom")})}}d&&v.append(le("rect",{x:r.x,y:r.y,width:r.width,height:r.height,fill:"none",stroke:p?"rgba(66, 140, 242, 0.78)":"rgba(0, 122, 255, 0.9)","stroke-width":we.selectionLineWidth}))}}function xp(i,e,t){const n=e.y;if(i<=t.x){const s=t.x-e.x;return Math.abs(s)<.5?t.y:n+(t.y-n)/s*(i-e.x)}const a=e.x+e.width-t.x;return Math.abs(a)<.5?t.y:t.y+(n-t.y)/a*(i-t.x)}function mr(i,e){return i.length===e.length&&i.every((t,n)=>t===e[n])}function bp(i){const e=[],t=n=>{e.push(n),n.children.forEach(t)};return i.forEach(t),e}function mi(i){var e,t;return{...i,textLines:Oo(i),loopBody:(e=i.loopBody)==null?void 0:e.map(mi),cases:(t=i.cases)==null?void 0:t.map(n=>({name:n.name,elements:n.elements.map(mi)}))}}const yp="modulepreload",vp=function(i,e){return new URL(i,e).href},ql={},Q=function(e,t,n){let a=Promise.resolve();if(t&&t.length>0){let r=function(m){return Promise.all(m.map(c=>Promise.resolve(c).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};const o=document.getElementsByTagName("link"),l=document.querySelector("meta[property=csp-nonce]"),u=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));a=r(t.map(m=>{if(m=vp(m,n),m in ql)return;ql[m]=!0;const c=m.endsWith(".css"),d=c?'[rel="stylesheet"]':"";if(!!n)for(let p=o.length-1;p>=0;p--){const x=o[p];if(x.href===m&&(!c||x.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${m}"]${d}`))return;const g=document.createElement("link");if(g.rel=c?"stylesheet":yp,c||(g.as="script"),g.crossOrigin="",g.href=m,u&&g.setAttribute("nonce",u),document.head.appendChild(g),c)return new Promise((p,x)=>{g.addEventListener("load",p),g.addEventListener("error",()=>x(new Error(`Unable to preload CSS for ${m}`)))})}))}function s(r){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=r,window.dispatchEvent(o),!o.defaultPrevented)throw r}return a.then(r=>{for(const o of r||[])o.status==="rejected"&&s(o.reason);return e().catch(s)})},wp=[{code:"de",name:"Deutsch"},{code:"en",name:"English"},{code:"es",name:"Español"},{code:"fr",name:"Français"},{code:"it",name:"Italiano"},{code:"pl",name:"Polski"},{code:"tr",name:"Türkçe"},{code:"ko",name:"한국어"},{code:"ja",name:"日本語"},{code:"el",name:"Ελληνικά"},{code:"uk",name:"Українська"},{code:"ar",name:"العربية"},{code:"ru",name:"Русский"},{code:"he",name:"עברית"},{code:"nl",name:"Nederlands"},{code:"sv",name:"Svenska"},{code:"da",name:"Dansk"},{code:"nb",name:"Norsk bokmål"},{code:"zh-Hans",name:"中文(简体)"},{code:"zh-Hant",name:"中文(繁體)"},{code:"pt-PT",name:"Português"},{code:"java",name:"Java (Keywords)"}],ic=["de","en","pt-PT"],sc=wp.filter(i=>ic.includes(i.code)),Ul=i=>ic.includes(i),zp=Object.assign({"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ar.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-CxCno28C.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/da.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-BAutdlBb.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/de.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-Dk8F86qS.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/el.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-rqA-20hM.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/en.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-DBLIUcBd.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/es.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-LSTVB2Q5.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/fr.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-ByPZS4RL.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/he.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-R-16GCrk.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/it.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-DXAPah1g.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ja.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-CkJEmEEP.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ko.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-BudCXCER.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/nb.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-DSvkBkp-.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/nl.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-BJ55WGVD.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/pl.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-BYJK0mdR.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/pt-PT.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-CHv0OL9S.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ru.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-1QZ0wfvJ.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/sv.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-M33nNbEe.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/tr.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-BM86Igqt.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/uk.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-UGog_aku.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/zh-Hans.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-CaVEL1es.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/zh-Hant.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-DqIDp_hh.js"),[],import.meta.url).then(i=>i.default)}),rc=Object.assign({"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/Java.strings":()=>Q(()=>import("./Java-Bpx1Vwvg.js"),[],import.meta.url).then(i=>i.default)}),Ip=Object.assign({"../i18n/ar.strings":()=>Q(()=>import("./ar-PBaSnx_C.js"),[],import.meta.url).then(i=>i.default),"../i18n/da.strings":()=>Q(()=>import("./da-RtcqXVki.js"),[],import.meta.url).then(i=>i.default),"../i18n/de.strings":()=>Q(()=>import("./de-CRGJybTl.js"),[],import.meta.url).then(i=>i.default),"../i18n/el.strings":()=>Q(()=>import("./el-BbGAZ-Gl.js"),[],import.meta.url).then(i=>i.default),"../i18n/en.strings":()=>Q(()=>import("./en-DFABmP98.js"),[],import.meta.url).then(i=>i.default),"../i18n/es.strings":()=>Q(()=>import("./es-ansh_rKM.js"),[],import.meta.url).then(i=>i.default),"../i18n/fr.strings":()=>Q(()=>import("./fr-Dvgj0hbi.js"),[],import.meta.url).then(i=>i.default),"../i18n/he.strings":()=>Q(()=>import("./he-Dk2sM7-c.js"),[],import.meta.url).then(i=>i.default),"../i18n/it.strings":()=>Q(()=>import("./it-DY7DFdGK.js"),[],import.meta.url).then(i=>i.default),"../i18n/ja.strings":()=>Q(()=>import("./ja-CwCcoKda.js"),[],import.meta.url).then(i=>i.default),"../i18n/ko.strings":()=>Q(()=>import("./ko-TajOBubd.js"),[],import.meta.url).then(i=>i.default),"../i18n/nb.strings":()=>Q(()=>import("./nb-CyZqPtEV.js"),[],import.meta.url).then(i=>i.default),"../i18n/nl.strings":()=>Q(()=>import("./nl-DmU1Uwm_.js"),[],import.meta.url).then(i=>i.default),"../i18n/pl.strings":()=>Q(()=>import("./pl-CzxKsemh.js"),[],import.meta.url).then(i=>i.default),"../i18n/pt-PT.strings":()=>Q(()=>import("./pt-PT-BNUtIo1v.js"),[],import.meta.url).then(i=>i.default),"../i18n/ru.strings":()=>Q(()=>import("./ru-CtcWOBjR.js"),[],import.meta.url).then(i=>i.default),"../i18n/sv.strings":()=>Q(()=>import("./sv-DieuHpt5.js"),[],import.meta.url).then(i=>i.default),"../i18n/tr.strings":()=>Q(()=>import("./tr-0mqLgBY2.js"),[],import.meta.url).then(i=>i.default),"../i18n/uk.strings":()=>Q(()=>import("./uk-DIgQuU31.js"),[],import.meta.url).then(i=>i.default),"../i18n/zh-Hans.strings":()=>Q(()=>import("./zh-Hans-txOHg2Ch.js"),[],import.meta.url).then(i=>i.default),"../i18n/zh-Hant.strings":()=>Q(()=>import("./zh-Hant-C6IIwyi_.js"),[],import.meta.url).then(i=>i.default)});function Ya(i,e){var t;return(t=Object.entries(i).find(([n])=>n.endsWith(e)))==null?void 0:t[1]}function oc(i){const e=new Map,t=i.replace(/\/\*[\s\S]*?\*\//g,"").replace(/^\s*\/\/.*$/gm,""),n=/"((?:[^"\\]|\\.)*)"\s*=\s*"((?:[^"\\]|\\.)*)"\s*;/g,a=s=>s.replace(/\\(u[0-9a-fA-F]{4}|.)/g,(r,o)=>o==="n"?` -`:o==="t"?" ":o.startsWith("u")&&o.length===5?String.fromCharCode(parseInt(o.slice(1),16)):o);for(const s of t.matchAll(n))e.set(a(s[1]),a(s[2]));return e}async function cr(i){const e=i==="java"?Ya(rc,"/Java.strings"):Ya(zp,`/${i}.lproj/Localizable.strings`),t=Ya(Ip,`/${i}.strings`),n=new Map;for(const a of[e,t])if(a)for(const[s,r]of oc(await a()))n.set(s,r);return n}let lc="en",uc=new Map,Cn=new Map;const ci="appLanguageCode",_o="visustruct.keywords";let dr=new Map,Zo=!1;const kp=i=>i.startsWith("element_")||i.startsWith("canvas_stub_");function Sp(){try{const i=new URLSearchParams(location.search).get("lang")==="java"||localStorage.getItem(ci)==="java";return i&&(localStorage.setItem(ci,"en"),localStorage.setItem(_o,"1")),i}catch{return!1}}function Op(){try{return localStorage.getItem(_o)==="1"}catch{return!1}}async function mc(i,e=!0){if(i&&dr.size===0){Cn.size===0&&(Cn=await cr("en"));const t=Ya(rc,"/Java.strings");if(t)for(const[n,a]of oc(await t()))kp(n)&&a!==Cn.get(n)&&dr.set(n,a)}if(Zo=i,e)try{localStorage.setItem(_o,i?"1":"0")}catch{}}function Tp(){return Zo}function Ap(){if(Sp())return"en";const i=new URLSearchParams(location.search).get("lang");if(i&&Ul(i))return i;try{const e=localStorage.getItem(ci);if(e&&Ul(e))return e}catch{}for(const e of navigator.languages??[navigator.language]){const t=e.toLowerCase();if(t.startsWith("pt"))return"pt-PT";const n=sc.find(a=>a.code===t.split("-")[0]);if(n)return n.code}return"en"}async function cc(i,e=!0){if(Cn.size===0&&(Cn=await cr("en")),uc=i==="en"?Cn:await cr(i),lc=i,e)try{localStorage.setItem(ci,i)}catch{}const t=document.documentElement;t.lang=i==="java"?"en":i,t.dir=i==="ar"||i==="he"?"rtl":"ltr"}function Bn(){return lc}function f(i,...e){const t=(Zo?dr.get(i):void 0)??uc.get(i)??Cn.get(i)??i;if(e.length===0)return t;let n=0;return t.replace(/%(?:(\d+)\$)?[@d]/g,(a,s)=>String(e[s?Number(s)-1:n++]??""))}const Pp=100;function dc(i){switch(i.kind){case"finished":return"Simulation finished.";case"infiniteLoopWithoutBody":return"Infinite loop has no body.";case"unsupportedStatement":return`Unsupported statement: ${i.text}`;case"invalidExpression":return`Invalid expression: ${i.text}`;case"unknownVariable":return`Unknown variable: ${i.text}`;case"divisionByZero":return"Division by zero.";case"wholeNumberExpected":return"Please enter a whole number.";case"numberExpected":return"Please enter a number.";case"booleanExpected":return"Please enter true or false.";case"subprogramNotFound":return`No open diagram is called ${i.text}. The call was skipped.`;case"callTooDeep":return"Too many nested calls. Does a subprogram call itself?";case"callArguments":return`The call does not match the header of ${i.text}. Check the values in the parentheses.`;case"missingReturn":return`${i.text} ended without returning a value with return.`;case"fileNotFound":return`There is no file called ${i.text}.`;case"endOfFile":return`The file ${i.text} has no more lines.`;case"nullValue":return`${i.text} is null.`;case"other":return i.text}}class ke extends Error{constructor(e){super(dc(e)),this.notice=e}}const Ze=i=>new ke({kind:"unsupportedStatement",text:i}),N=i=>new ke({kind:"invalidExpression",text:i}),S1=i=>new ke({kind:"unknownVariable",text:i}),jp=()=>new ke({kind:"divisionByZero"}),di=new Map;function Cp(i,e){di.set(i,e)}const hc=()=>[...di];function $l(i){return i instanceof ke?i.notice:{kind:"other",text:i instanceof Error?i.message:String(i)}}function _p(i){if(i===0)return"0";if(!Number.isFinite(i))return Number.isNaN(i)?"nan":i>0?"inf":"-inf";const e=Math.floor(Math.log10(Math.abs(Number(i.toPrecision(12)))));if(e<-4||e>=12){const[n,a]=i.toExponential(11).split("e"),s=n.includes(".")?n.replace(/0+$/,"").replace(/\.$/,""):n,r=Number(a);return`${s}e${r<0?"-":"+"}${String(Math.abs(r)).padStart(2,"0")}`}const t=i.toFixed(Math.max(0,11-e));return t.includes(".")?t.replace(/0+$/,"").replace(/\.$/,""):t}function Yl(i){return Number.isFinite(i)&&Math.round(i)===i?i.toFixed(1):_p(i)}function ge(i){switch(i.kind){case"int":return String(i.value);case"double":return Yl(i.value);case"string":return i.value;case"boolean":return String(i.value);case"intArray":return"["+i.value.map(String).join(", ")+"]";case"doubleArray":return"["+i.value.map(Yl).join(", ")+"]";case"stringArray":return"["+i.value.join(", ")+"]";case"booleanArray":return"["+i.value.map(String).join(", ")+"]";case"grid":return"["+Zp(i).join(", ")+"]";case"reader":return`${i.className}(${i.file})`;case"writer":return`PrintWriter(${i.file})`;case"null":return"null"}}function Zp(i){return i.value.map(e=>"["+e.map(t=>ge(gc(i.elementType,t))).join(", ")+"]")}function gc(i,e){switch(i){case"int":return{kind:"int",value:e};case"double":return{kind:"double",value:e};case"string":return{kind:"string",value:e};case"boolean":return{kind:"boolean",value:e}}}function Mp(i){return i==="string"?"":i==="boolean"?!1:0}function hr(i){return i.kind==="intArray"||i.kind==="doubleArray"||i.kind==="stringArray"||i.kind==="booleanArray"||i.kind==="grid"}function Dp(i){return i.kind==="int"||i.kind==="double"?i.value:NaN}const nt=i=>({kind:"int",value:i}),at=i=>({kind:"double",value:i}),Mo=i=>i!==void 0&&/\s/u.test(i),hi=i=>new RegExp("\\p{L}","u").test(i),O1=i=>new RegExp("\\p{N}","u").test(i);function _1(i){const e=Array.from(i);return e.length===0||!(hi(e[0])||e[0]==="_")?!1:e.every(t=>hi(t)||O1(t)||t==="_")}function Ft(i){switch(i.toLowerCase()){case"int":return"int";case"double":return"double";case"string":return"string";case"char":return"string";case"boolean":case"bool":return"boolean";default:return}}function Xl(i){return i.kind==="int"?"int":i.kind==="double"?"double":i.kind==="boolean"?"boolean":"string"}function Re(i){const e=Array.from(i);if(e.length===3&&e[0]==="'"&&e[2]==="'")return e[1];if(e.length<2||e[0]!=='"'||e[e.length-1]!=='"')return;const t=e.slice(1,-1).join("");if(/^(?:[^"\\]|\\.)*$/u.test(t))return t.replaceAll('\\"','"').replaceAll("\\n",` -`)}function Kl(i){return i.replaceAll("(int)","").replaceAll("(double)","").trim()}function Do(i){const e=new Array(i.length).fill(!1);let t=0,n=!1,a=!1;return i.forEach((s,r)=>{if(n){a?a=!1:s==="\\"?a=!0:s==='"'&&(n=!1);return}switch(s){case'"':n=!0;break;case"(":case"[":t+=1;break;case")":case"]":t-=1;break;default:e[r]=t===0}}),e}function gi(i,e){const t=Array.from(i),n=Array.from(e),a=Do(t),s=[];let r=[],o=0;for(;ot[o+m]===u)&&a.slice(o,l).every(Boolean)){s.push(r.join("").trim()),r=[],o=l;continue}r.push(t[o]),o+=1}return s.push(r.join("").trim()),s}function Bp(i){const e=Array.from(i),t=Do(e);for(let n=0;n=","<=","==","!="].includes(o)&&(a=o)}if(a===void 0&&(e[n]==="<"||e[n]===">")&&(a=e[n]),a===void 0)continue;const s=e.slice(0,n).join("").trim(),r=e.slice(n+a.length).join("").trim();return{lhs:s,op:a,rhs:r}}}function Hi(i,e){let t=0,n=!1,a=!1;for(let s=e;se.length||!t.every((r,o)=>e[a+o]===r))continue;const s=a+t.length-1;if(Hi(e,s)===e.length-1)return{lhs:e.slice(0,a).join("").trim(),rhs:e.slice(s+1,-1).join("").trim()}}}function za(i){const e=i.trim();for(const t of["if","while","until","switch"]){if(!e.startsWith(t))continue;const n=e.slice(t.length);if(!(n===""||Mo(n[0])||n[0]==="("))continue;let a=n.trim();const s=pc(a);return s!==void 0&&(a=s),a===""?"true":a}return e===""?"true":e}function Gn(i){const e=i.trim(),t=e.indexOf("[");if(!e.endsWith("]")||t<0)return;const n=e.slice(0,t).trim();if(!_1(n))return;const a=[];let s=t;for(;s2))return{arrayName:n,indexExpressions:a}}function Lp(i){const e=i.trim();if(!e.endsWith(")"))return;const t=/^([A-Za-z_]\w*(?:\s*\[[^\[\]]*\])*|"(?:[^"\\]|\\.)*")\s*\.\s*([A-Za-z_]\w*)\s*\(/u.exec(e);if(!t)return;const n=Array.from(e),a=Array.from(t[0]).length-1;if(Hi(n,a)!==n.length-1)return;const s=n.slice(a+1,-1).join("").trim();return{target:t[1],method:t[2],args:s===""?[]:gi(s,",")}}function e0(i){return _1(i)||Gn(i)!==void 0}function t0(i){const e=[];let t="",n=!1,a=!1,s=0;for(const r of i){if(a){t+=r,a=!1;continue}if(r==="\\"){t+=r,a=!0;continue}if(r==='"'){n=!n,t+=r;continue}if(!n&&r==="("&&(s+=1),!n&&r===")"&&(s-=1),r==="+"&&!n&&s===0){e.push(t),t="";continue}t+=r}if(n)throw N(i);return e.push(t),e}function Ep(i){const e=[];let t=0,n="";for(const a of i){if(a==="{"&&(t+=1),a==="}"&&(t-=1),a===","&&t===0){e.push(n),n="";continue}n+=a}return n.trim()!==""&&e.push(n),e}function n0(i){const e=Array.from(i),t=[];let n=0;for(;n1)throw N(i)}else if(!O1(e[n]))break;n+=1}const o=e.slice(s,n).join("");if(o==="."||!/^[0-9]*\.?[0-9]*$/.test(o))throw N(i);t.push({t:"number",literal:o,value:Number(o)});continue}if(hi(a)||a==="_"){const s=n;for(;n=0&&s=0&&o=0&&so1(t).trim());return e.length===1&&e[0].includes(";")?a0(e[0].split(";").map(t=>t.trim())):a0(e)}const Ge=i=>i.frame?{frame:i.frame,callPath:i.callPath}:{};function Ot(i,e=[],t={}){const n=[],a=s=>n.push(t.frame?{...s,...t}:s);return i.forEach((s,r)=>{const o=[...e,r],l=s.textLines.join(" ").trim();switch(s.type){case T.anweisung:l!==""&&l!=="ø"&&a({path:o,text:l,kind:"statement"});break;case T.verzweigung:a({path:o,text:l||"true",kind:"branch",cases:s.cases});break;case T.fallauswahl:a({path:o,text:l||"0",kind:"switchSelection",cases:s.cases});break;case T.forSchleife:a({path:o,text:l,kind:"forLoopStart",loopBody:s.loopBody,forParts:pr(s.textLines)});break;case T.whileSchleife:a({path:o,text:l||"true",kind:"whileLoop",loopBody:s.loopBody});break;case T.doUntilSchleife:a({path:o,text:l||"true",kind:"doUntilLoop",loopBody:s.loopBody});break;case T.endlosschleife:a({path:o,text:l||"true",kind:"infiniteLoop",loopBody:s.loopBody});break;case T.aussprung:a({path:o,text:l,kind:"jump"});break;case T.aufruf:l!==""&&l!=="ø"&&a({path:o,text:l,kind:"call"});break}}),n}function Fp(i,e){const t=i.trim().replaceAll(",",".");switch(e){case"int":if(!/^[+-]?[0-9]+$/.test(t))throw new ke({kind:"wholeNumberExpected"});return nt(Number(t));case"double":if(!/^[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?$/.test(t))throw new ke({kind:"numberExpected"});return at(Number(t));case"string":return{kind:"string",value:i};case"boolean":switch(t.toLowerCase()){case"true":case"wahr":return{kind:"boolean",value:!0};case"false":case"falsch":return{kind:"boolean",value:!1};default:throw new ke({kind:"booleanExpected"})}}}function i0(){return{stepIndex:0,variables:new Map,outputLines:[],isHalted:!1,files:new Map}}function Jp(i,e){for(let t=0;tt===e.path[n])}function dt(i){const e=/^(void|int|double|String|boolean)\s+([A-Za-z_]\w*)\s*\((.*)\)$/u.exec(o1(i));if(!e)return;const t=[];if(e[3].trim()!=="")for(const n of e[3].split(",")){const a=/^(int|double|String|boolean|char)\s*((?:\[\s*\]){0,2})\s+([A-Za-z_]\w*)$/u.exec(n.trim());if(!a)return;const s=(a[2].match(/\[/gu)??[]).length;t.push({type:Ft(a[1]),name:a[3],...s>0?{dims:s}:{}})}return{returnType:Ft(e[1]),name:e[2],params:t}}function fc(i){const e=/^(?:(?:(int|double|String|boolean)\s+)?([A-Za-z_]\w*)\s*=\s*)?([A-Za-z_]\w*)\s*\((.*)\)$/u.exec(o1(i));if(e)return{targetType:e[1]?Ft(e[1]):void 0,target:e[2],name:e[3],args:e[4].trim()===""?[]:gi(e[4],",")}}function pi(i){var t,n;const e=o1(i);return((t=dt(e))==null?void 0:t.name)??((n=fc(e))==null?void 0:n.name)??e.replace(/\(\s*\)$/u,"").trim()}class fi{constructor(e,t=()=>{}){I(this,"steps");I(this,"state",i0());I(this,"nextFrame",1);I(this,"callDepth",0);I(this,"frames",new Map);I(this,"peeking",!1);this.resolveSubprogram=t,this.steps=Ot(e.elements)}get currentStepPath(){const e=this.steps[this.state.stepIndex];return(e==null?void 0:e.callPath)??(e==null?void 0:e.path)}get canStep(){return!this.state.isHalted&&!this.state.inputRequest&&this.state.stepIndex ${ge(n)}`}catch(n){this.state.inputErrorNotice=$l(n);return}this.state.inputRequest=void 0,this.state.inputErrorNotice=void 0,this.state.stepIndex+=1,this.state.notice=this.finishedIfAtEnd()}}finishedIfAtEnd(){return this.state.stepIndex>=this.steps.length?{kind:"finished"}:void 0}splice(e){this.steps.splice(this.state.stepIndex,1,...e)}noticeAfterEntering(e){return e.length>0?void 0:this.finishedIfAtEnd()}executeBranch(e){const t=e.cases;if(!t||t.length<2)throw Ze(e.text);const n=za(e.text),a=this.evaluateBool(n),s=a?0:1,r=Ot(t[s].elements,[...e.path,s],Ge(e));this.splice(r),this.state.lastTrace=`${n} -> ${a}`,this.state.notice=this.noticeAfterEntering(r)}executeSwitchSelection(e){const t=e.cases;if(!t||t.length===0)throw Ze(e.text);const n=za(e.text),a=this.evaluateSwitchSelector(n),s=Jp(a,t)??t.length-1,r=Ot(t[s].elements,[...e.path,s],Ge(e));this.splice(r),this.state.lastTrace=`${n} -> ${t[s].name}`,this.state.notice=this.noticeAfterEntering(r)}executeForLoopStart(e){const t=pr(e.forParts??[e.text]);t[0]!==""&&this.executeStatement(t[0]),this.splice([{...Ge(e),path:e.path,text:t[1],kind:"forLoopCondition",loopBody:e.loopBody,forParts:t}])}executeForLoopCondition(e){const t=pr(e.forParts??[e.text]),n=t[1]===""?"true":t[1],a=this.evaluateBool(n);if(this.state.lastTrace=`${n} -> ${a}`,a){const s=Ot(e.loopBody??[],[...e.path,0],Ge(e));this.splice([...s,{...Ge(e),path:e.path,text:t[2],kind:"forLoopIncrement",loopBody:e.loopBody,forParts:t},{...Ge(e),path:e.path,text:t[1],kind:"forLoopCondition",loopBody:e.loopBody,forParts:t}])}else this.splice([]),this.state.notice=this.finishedIfAtEnd()}executeForLoopIncrement(e){const t=e.text.trim();t!==""&&this.executeIncrement(t),this.splice([])}executeWhileLoop(e){const t=za(e.text),n=this.evaluateBool(t);if(this.state.lastTrace=`${t} -> ${n}`,n){const a=Ot(e.loopBody??[],[...e.path,0],Ge(e));this.splice([...a,{...Ge(e),path:e.path,text:e.text,kind:"whileLoop",loopBody:e.loopBody}]),this.state.notice=this.noticeAfterEntering(a)}else this.splice([]),this.state.notice=this.finishedIfAtEnd()}enterDoUntilLoop(e){const t=Ot(e.loopBody??[],[...e.path,0],Ge(e));this.splice([...t,{...Ge(e),path:e.path,text:e.text,kind:"doUntilCondition",loopBody:e.loopBody}]),this.state.notice=this.noticeAfterEntering(t)}executeDoUntilCondition(e){const t=za(e.text),n=this.evaluateBool(t);if(this.state.lastTrace=`${t} -> ${n}`,n){const a=Ot(e.loopBody??[],[...e.path,0],Ge(e));this.splice([...a,{...Ge(e),path:e.path,text:e.text,kind:"doUntilCondition",loopBody:e.loopBody}])}else this.splice([]),this.state.notice=this.finishedIfAtEnd()}enterInfiniteLoop(e){const t=Ot(e.loopBody??[],[...e.path,0],Ge(e));this.splice([...t,{...Ge(e),path:e.path,text:e.text,kind:"infiniteLoop",loopBody:e.loopBody}]),this.state.lastTrace="true -> true",this.state.notice=t.length>0?void 0:{kind:"infiniteLoopWithoutBody"}}executeJump(e){const t=e.frame??0,n=o=>o.lengthl===e.path[u]);let a=this.steps.length,s="end";for(let o=this.state.stepIndex+1;o ${s}`,s==="return"&&this.finishFrame(r),this.state.notice=this.finishedIfAtEnd()}executeCall(e){const t=e.text,n=this.resolveSubprogram(pi(t));if(!n){this.splice([]),this.state.lastTrace=`${t} -> ?`,this.state.notice={kind:"subprogramNotFound",text:t},this.state.stepIndex>=this.steps.length&&(this.state.notice={kind:"finished"});return}const a=fc(t),s=dt(n.caption);if(s?((a==null?void 0:a.args.length)??0)!==s.params.length||(a==null?void 0:a.target)!==void 0&&!s.returnType:a!==void 0&&(a.args.length>0||a.target!==void 0))throw new ke({kind:"callArguments",text:(s==null?void 0:s.name)??pi(t)});if(this.callDepth>=Pp)throw new ke({kind:"callTooDeep"});const o=new Map,l=[];s==null||s.params.forEach((d,h)=>{const g=a.args[h].trim();if(!d.dims){o.set(d.name,this.evaluateExpression(g,d.type));return}const p=this.state.variables.get(g);if(!p)throw/^[A-Za-z_]\w*$/u.test(g)?new ke({kind:"unknownVariable",text:g}):N(g);if(!(d.dims===1?p.kind===`${d.type}Array`:p.kind==="grid"&&p.elementType===d.type))throw N(g);o.set(d.name,p),l.push({param:d.name,callerName:g})}),this.callDepth+=1;const u={frame:this.nextFrame++,callPath:e.callPath??e.path};s&&(this.frames.set(u.frame,{saved:this.state.variables,header:s,call:a,references:l}),this.state.variables=o);const m=Ot(n.elements,[],u);this.splice([...m,{...u,path:e.path,text:t,kind:"callEnd"}]);const c=s==null?void 0:s.params.map((d,h)=>`${d.name} = ${d.dims?a.args[h].trim():ge(o.get(d.name))}`).join(", ");this.state.lastTrace=c?`${t} -> ${c}`:`${t} -> call`}executeCallEnd(e){this.callDepth-=1,this.splice([]),this.state.lastTrace=`${e.text} -> return`,this.finishFrame(e),this.state.notice=this.finishedIfAtEnd()}executeReturn(e){const t=e.frame??0,n=o1(e.text).slice(6).trim(),a=this.frames.get(t);if(a&&n!==""){if(!a.header.returnType)throw N(e.text);a.returnValue=this.evaluateExpression(n,a.header.returnType)}const s=a!=null&&a.returnValue?`${e.text} -> ${ge(a.returnValue)}`:`${e.text} -> return`;if(t===0){this.steps.splice(this.state.stepIndex),this.state.lastTrace=s,this.state.notice={kind:"finished"};return}let r=this.state.stepIndex+1;for(;r0?new Map(t.saved):t.saved;for(const m of t.references){const c=this.state.variables.get(m.param);c&&n.set(m.callerName,c)}this.state.variables=n;const a=t.returnValue;if(t.header.returnType&&!a)throw new ke({kind:"missingReturn",text:t.header.name});const s=(l=t.call)==null?void 0:l.target;if(!s||!a)return;let r=(u=t.call)==null?void 0:u.targetType;if(!r)try{r=this.inferTargetValueType(s)}catch{r=t.header.returnType}const o=r==="double"&&a.kind==="int"?at(a.value):r==="string"?{kind:"string",value:ge(a)}:a;if(Xl(o)!==r)throw N(e.text);this.assignValue(o,s),this.state.lastTrace=`${s} = ${e.text.slice(e.text.indexOf("=")+1).trim()} -> ${ge(o)}`}executeStatement(e){const t=this.state,n=e.trim(),a=n.toLowerCase();if(a.startsWith("input:")){t.inputRequest=this.parseInputRequest(n),t.inputErrorNotice=void 0;return}if(a.startsWith("output:")||a.startsWith("print:")){const h=n.slice(a.startsWith("output:")?7:6),g=this.peek(()=>this.renderOutputExpression(h)),p=this.evaluateOutputExpression(h);t.outputLines.push(p),t.lastTrace=`${g} -> ${p}`;return}if(this.executeFileStatement(n))return;if(n.endsWith("++")||n.endsWith("--")||n.includes("+=")||n.includes("-=")){this.executeIncrement(n);return}const s=n.indexOf("=");if(s<0)throw Ze(n);const r=n.slice(0,s).trim(),o=n.slice(s+1),l=this.parseArrayDeclaration(r,o);if(l){t.variables.set(l.name,l.value),t.lastTrace=`${l.name} = new ${l.typeName}[${l.count}]`;return}const u=this.parseAssignmentTarget(r);let m;try{m=this.peek(()=>this.renderNumericExpression(o))}catch{m=o.trim()}let c=u.valueType;if(!c)try{c=this.inferTargetValueType(u.variableName)}catch{c="int"}const d=this.evaluateExpression(o,c);this.assignValue(d,u.variableName),t.lastTrace=`${u.variableName} = ${m} -> ${ge(d)}`}executeFileStatement(e){const t=this.state,n=o1(e).trim(),a=/^(?:(Scanner|BufferedReader|PrintWriter)\s+)?([A-Za-z_]\w*)\s*=\s*new\s+(Scanner|BufferedReader|PrintWriter)\s*\(([\s\S]*)\)$/u.exec(n);if(a){const[,m,c,d,h]=a;if(m&&m!==d)throw N(n);const g=d==="Scanner"?/^new\s+File\s*\(([\s\S]+)\)$/u.exec(h.trim()):d==="BufferedReader"?/^new\s+FileReader\s*\(([\s\S]+)\)$/u.exec(h.trim()):/^(?:new\s+(?:File|FileWriter)\s*\(([\s\S]+)\)|([\s\S]+))$/u.exec(h.trim());if(!g)throw Ze(n);const p=this.fileNameValue(g[1]??g[2]);if(d==="PrintWriter")t.variables.set(c,{kind:"writer",file:p,text:""});else{const b=this.fileContent(p).split(/\r?\n/u);b[b.length-1]===""&&b.pop(),t.variables.set(c,{kind:"reader",className:d,file:p,lines:b,next:0})}return t.lastTrace=`${c} = new ${d}(${p})`,!0}const s=/^Files\s*\.\s*writeString\s*\(\s*(?:Path\s*\.\s*of|Paths\s*\.\s*get)\s*\(([^()]+)\)\s*,([\s\S]+)\)$/u.exec(n);if(s){const m=this.fileNameValue(s[1]),c=this.evaluateOutputExpression(s[2]);return t.files.set(m,c),t.lastTrace=`${m} ← ${JSON.stringify(c)}`,!0}const r=/^([A-Za-z_]\w*)\s*\.\s*(println|print|close)\s*\(([\s\S]*)\)$/u.exec(n),o=r&&t.variables.get(r[1]);if(!r||!o)return!1;if(o.kind==="null")throw new ke({kind:"nullValue",text:r[1]});if(o.kind==="reader"&&r[2]==="close")return t.lastTrace=`${r[1]}.close()`,!0;if(o.kind!=="writer")return!1;if(r[2]==="close")return t.files.set(o.file,o.text),t.lastTrace=`${o.file} ← ${JSON.stringify(o.text)}`,!0;const l=r[3].trim()===""?"":this.evaluateOutputExpression(r[3]),u=r[2]==="println"?l+` -`:l;return t.variables.set(r[1],{...o,text:o.text+u}),t.lastTrace=`${r[1]}.${r[2]}(${JSON.stringify(l)})`,!0}fileNameValue(e){const t=e.trim(),n=Re(t);if(n!==void 0)return n;const a=this.evaluateReference(t);if((a==null?void 0:a.kind)==="string")return a.value;throw N(t)}fileContent(e){const t=this.state.files.get(e)??di.get(e);if(t===void 0)throw new ke({kind:"fileNotFound",text:e});return t}readerMethod(e,t,n,a){if(n.args.length)throw N(a);const s=t.next0?"+":"-";if(r.kind==="int"){t.set(s,nt(r.value+a)),this.state.lastTrace=`${s} = ${r.value} ${o} 1 -> ${r.value+a}`;return}if(r.kind==="double"){const l=r.value+a;t.set(s,at(l)),this.state.lastTrace=`${s} = ${ge(r)} ${o} 1 -> ${ge(at(l))}`;return}throw Ze(e)}for(const[n,a]of[["+=",1],["-=",-1]]){const s=e.indexOf(n);if(s<0)continue;const r=e.slice(0,s).trim(),o=e.slice(s+2),l=t.get(r);if(!_1(r)||!l)throw Ze(e);const u=a>0?"+":"-";if(l.kind==="int"){const m=this.evaluateInt(o),c=l.value+a*m;t.set(r,nt(c)),this.state.lastTrace=`${r} = ${l.value} ${u} ${m} -> ${c}`;return}if(l.kind==="double"){const m=this.evaluateDouble(o),c=l.value+a*m;t.set(r,at(c)),this.state.lastTrace=`${r} = ${ge(l)} ${u} ${ge(at(m))} -> ${ge(at(c))}`;return}throw Ze(e)}this.executeStatement(e)}parseAssignmentTarget(e){if(Gn(e))return{variableName:e.trim()};const t=e.split(/\s+/u).filter(Boolean);let n,a;if(t.length===1)n=t[0];else if(t.length===2&&Ft(t[0]))n=t[1],a=Ft(t[0]);else if(t.length===3&&t[0]==="const"&&Ft(t[1]))n=t[2],a=Ft(t[1]);else throw Ze(e);if(!e0(n))throw Ze(e);return{variableName:n,valueType:a}}parseInputRequest(e){const t=e.slice(6).trim(),n=/^(\S+)(?:\s+(\S+))?(?:\s+([\s\S]*))?$/u.exec(t);if(!n)throw Ze(e);const a=[n[1],n[2],n[3]].filter(m=>m!==void 0);let s,r,o;const l=Ft(a[0]);if(a.length>=2&&l?(s=a[1],r=l,o=(a[2]??"").trim()):(s=a[0],r=this.inferTargetValueType(s),o=(a[1]??"").trim()),!e0(s))throw Ze(e);const u=Re(o)??o;return{variableName:s,valueType:r,prompt:u===""?`${s}:`:u}}parseArrayDeclaration(e,t){const n=e.split(/\s+/u).filter(Boolean);if(n.length!==2||!n[0].endsWith("[]"))return;const a=n[0].endsWith("[][]"),s=n[0].slice(0,a?-4:-2),r=Ft(s),o=n[1];if(!r||!_1(o))throw Ze(e);if(a)return this.parseGridDeclaration(o,s,r,t);const l=t.trim();if(l.startsWith("{")&&l.endsWith("}")){const h=l.slice(1,-1).split(",").map(p=>p.trim());let g;switch(r){case"int":g={kind:"intArray",value:h.map(p=>this.evaluateInt(p))};break;case"double":g={kind:"doubleArray",value:h.map(p=>this.evaluateDouble(p))};break;case"string":g={kind:"stringArray",value:h.map(p=>Re(p)??this.evaluateOutputExpression(p))};break;case"boolean":g={kind:"booleanArray",value:h.map(p=>this.evaluateBool(p))};break}return{name:o,typeName:s,count:h.length,value:g}}const u=`new ${s}[`;if(!l.startsWith(u)){const h=this.evaluateStringMethod(l);if((h==null?void 0:h.kind)==="stringArray"&&r==="string")return{name:o,typeName:s,count:h.value.length,value:h}}if(!l.startsWith(u)||!l.endsWith("]"))throw Ze(t);const m=l.slice(u.length,-1),c=this.evaluateInt(m);if(c<0)throw N(m);const d=r==="int"?{kind:"intArray",value:new Array(c).fill(0)}:r==="double"?{kind:"doubleArray",value:new Array(c).fill(0)}:r==="boolean"?{kind:"booleanArray",value:new Array(c).fill(!1)}:{kind:"stringArray",value:new Array(c).fill("")};return{name:o,typeName:s,count:c,value:d}}parseGridDeclaration(e,t,n,a){var c;const s=a.trim(),r=d=>{switch(n){case"int":return this.evaluateInt(d);case"double":return this.evaluateDouble(d);case"boolean":return this.evaluateBool(d);case"string":return Re(d.trim())??this.evaluateOutputExpression(d)}};if(s.startsWith("{")&&s.endsWith("}")){const d=Ep(s.slice(1,-1)).map(h=>{const g=h.trim();if(!g.startsWith("{")||!g.endsWith("}"))throw N(g);return g.slice(1,-1).trim()===""?[]:g.slice(1,-1).split(",").map(p=>r(p.trim()))});return{name:e,typeName:t,count:`${d.length}][${((c=d[0])==null?void 0:c.length)??0}`,value:{kind:"grid",elementType:n,value:d}}}const o=new RegExp(String.raw`^new\s+${t}\s*\[(.+)\]\s*\[(.+)\]$`,"u").exec(s);if(!o)throw Ze(a);const l=this.evaluateInt(o[1]),u=this.evaluateInt(o[2]);if(l<0)throw N(o[1]);if(u<0)throw N(o[2]);const m={kind:"grid",elementType:n,value:Array.from({length:l},()=>new Array(u).fill(Mp(n)))};return{name:e,typeName:t,count:`${l}][${u}`,value:m}}arrayIndex(e){const t=this.evaluateInt(e);if(t<0)throw N(e);return t}evaluateReference(e){const t=e.trim(),n=this.state.variables.get(t);if(n)return n;const a=this.evaluateStringMethod(t);if(a)return a;const s=/^\(\s*char\s*\)\s*(.+)$/su.exec(t);if(s){const o=this.evaluateInt(s[1]);if(!(o>=0&&o<=1114111))throw N(t);return{kind:"string",value:String.fromCodePoint(o)}}const r=Gn(t);if(r)return this.valueInArray(r.arrayName,r.indexExpressions.map(o=>this.arrayIndex(o)))}evaluateStringMethod(e){const t=Lp(e);if(!t)return;const n=this.evaluateStaticCall(e,t);if(n)return n;const a=this.state.variables.get(t.target.trim());if((a==null?void 0:a.kind)==="reader")return this.readerMethod(t.target.trim(),a,t,e);if((a==null?void 0:a.kind)==="null")throw new ke({kind:"nullValue",text:t.target.trim()});const s=Re(t.target)??this.stringValueOf(t.target);if(s===void 0)return;const r=t.args,o=d=>{const h=r[d];if(h===void 0)throw N(e);const g=Re(h.trim());if(g!==void 0)return g;const p=this.evaluateReference(h);if((p==null?void 0:p.kind)==="string")return p.value;throw N(h)},l=d=>{if(r[d]===void 0)throw N(e);return this.evaluateInt(r[d])},u=d=>{if(r.length!==d)throw N(e)},m=Array.from(s),c=(d,h)=>{if(d<0||d>h)throw N(e);return d};switch(t.method){case"length":return u(0),nt(m.length);case"charAt":return u(1),{kind:"string",value:m[c(l(0),m.length-1)]};case"substring":{if(r.length!==1&&r.length!==2)throw N(e);const d=c(l(0),m.length),h=r.length===2?c(l(1),m.length):m.length;if(h0&&h[h.length-1]==="";)h.pop();return{kind:"stringArray",value:h}}default:return}}evaluateStaticCall(e,t){const n=()=>{if(t.args.length!==1)throw N(e);return t.args[0]},a=s=>{const r=Re(s.trim());if(r!==void 0)return r;const o=this.evaluateReference(s);if((o==null?void 0:o.kind)==="string")return o.value;throw N(s)};switch(`${t.target}.${t.method}`){case"Integer.parseInt":{const s=a(n()).trim();if(!/^[+-]?\d+$/u.test(s))throw new ke({kind:"wholeNumberExpected"});return nt(Number(s))}case"Double.parseDouble":{const s=Number(a(n()).trim());if(!Number.isFinite(s))throw new ke({kind:"numberExpected"});return at(s)}case"String.valueOf":return{kind:"string",value:this.evaluateOutputExpression(n())};case"Files.readString":{const s=/^(?:Path\s*\.\s*of|Paths\s*\.\s*get)\s*\(\s*("(?:[^"\\]|\\.)*")\s*\)$/u.exec(n().trim());if(!s)throw N(e);const r=Re(s[1]),o=di.get(r);if(o===void 0)throw new ke({kind:"fileNotFound",text:r});return{kind:"string",value:o}}default:return}}stringValueOf(e){const t=e.trim(),n=this.state.variables.get(t);if(n)return n.kind==="string"?n.value:void 0;const a=Gn(t);if(!a)return;const s=this.valueInArray(a.arrayName,a.indexExpressions.map(r=>this.arrayIndex(r)));return s.kind==="string"?s.value:void 0}substituteStringCalls(e){if(!e.includes("("))return e;let t="",n=e;const a=/([A-Za-z_]\w*(?:\[[^\[\]]*\])*|"(?:[^"\\]|\\.)*")\s*\.\s*(length|indexOf|lastIndexOf|compareTo|charAt|parseInt|parseDouble)\s*\(/u;for(let s=a.exec(n);s;s=a.exec(n)){const r=s.index+s[0].length-1,o=Hi(Array.from(n),Array.from(n.slice(0,r)).length);if(o===void 0)break;const l=Array.from(n),u=l.slice(Array.from(n.slice(0,s.index)).length,o+1).join(""),m=this.evaluateStringMethod(u),c=l.slice(0,Array.from(n.slice(0,s.index)).length).join(""),d=(m==null?void 0:m.kind)==="string"?gr(m.value):void 0;(m==null?void 0:m.kind)==="int"?t+=c+String(m.value):(m==null?void 0:m.kind)==="double"?t+=c+(Number.isInteger(m.value)?m.value.toFixed(1):String(m.value)):d!==void 0?t+=c+String(d):t+=c+u,n=l.slice(o+1).join("")}return t+n}valueInArray(e,t){const n=this.state.variables.get(e);if(!n)throw S1(e);const a=`${e}[${t.join("][")}]`;if(n.kind==="grid"){if(t.length!==2)throw N(a);const r=n.value[t[0]];if(!r||t[1]>=r.length)throw N(a);return gc(n.elementType,r[t[1]])}if(t.length!==1)throw N(a);const s=t[0];if(!hr(n))throw N(e);if(s>=n.value.length)throw N(a);switch(n.kind){case"intArray":return nt(n.value[s]);case"doubleArray":return at(n.value[s]);case"stringArray":return{kind:"string",value:n.value[s]};case"booleanArray":return{kind:"boolean",value:n.value[s]};default:throw N(e)}}inferTargetValueType(e){const t=e.trim(),n=this.state.variables.get(t);if(n)return Xl(n);const a=Gn(t);if(a){const s=this.state.variables.get(a.arrayName);if(!s)throw S1(a.arrayName);if(s.kind==="intArray")return"int";if(s.kind==="doubleArray")return"double";if(s.kind==="stringArray")return"string";if(s.kind==="booleanArray")return"boolean";if(s.kind==="grid")return s.elementType;throw N(a.arrayName)}throw Ze(e)}assignValue(e,t){const n=t.trim(),a=Gn(n);if(!a){this.state.variables.set(n,e);return}const s=a.indexExpressions.map(u=>this.arrayIndex(u)),r=this.state.variables.get(a.arrayName);if(!r)throw S1(a.arrayName);if(r.kind==="grid"){if(s.length!==2||s[0]>=r.value.length||s[1]>=r.value[s[0]].length)throw N(n);const u=r.elementType==="double"&&e.kind==="int"||e.kind===r.elementType?e.value:void 0;if(u===void 0||hr(e))throw N(n);const m=r.value.map(c=>[...c]);m[s[0]][s[1]]=u,this.state.variables.set(a.arrayName,{...r,value:m});return}if(s.length!==1)throw N(n);const o=s[0];let l;if(r.kind==="intArray"&&e.kind==="int")l={kind:"intArray",value:[...r.value]};else if(r.kind==="doubleArray"&&(e.kind==="double"||e.kind==="int"))l={kind:"doubleArray",value:[...r.value]};else if(r.kind==="stringArray"&&e.kind==="string")l={kind:"stringArray",value:[...r.value]};else if(r.kind==="booleanArray"&&e.kind==="boolean")l={kind:"booleanArray",value:[...r.value]};else throw N(n);if(o>=l.value.length)throw N(n);l.value[o]=e.value,this.state.variables.set(a.arrayName,l)}evaluateOutputExpression(e){let t,n;for(const a of t0(e)){const s=a.trim(),r=Re(s),o=r!==void 0?{kind:"string",value:r}:this.evaluateReference(s)??this.evaluateNumeric(s),l=o.kind==="int"||o.kind==="double";if(n===void 0&&l){t?t=t.kind==="int"&&o.kind==="int"?nt(t.value+o.value):at(t.value+o.value):t=o;continue}n=(n??(t?ge(t):""))+ge(o),t=void 0}return n??(t?ge(t):"")}renderOutputExpression(e){return t0(e).map(t=>{const n=t.trim();if(Re(n)!==void 0)return n;const a=this.evaluateReference(n);if(a)return ge(a);try{return this.renderNumericExpression(n)}catch{return n}}).join(" + ")}evaluateExpression(e,t){switch(t){case"int":return nt(this.evaluateInt(e));case"double":return at(this.evaluateDouble(e));case"string":{const n=e.trim(),a=Re(n);if(a!==void 0)return{kind:"string",value:a};if(n==="null")return{kind:"null"};const s=this.evaluateReference(n);return(s==null?void 0:s.kind)==="null"?s:s?{kind:"string",value:ge(s)}:{kind:"string",value:this.evaluateOutputExpression(e)}}case"boolean":return{kind:"boolean",value:this.evaluateBool(e)}}}evaluateNumeric(e){const{v:t,int:n}=this.parser(e).parseNumber();return n||Number.isFinite(t)&&Math.round(t)===t?nt(t):at(t)}parser(e){return new Np(n0(Kl(this.substituteStringCalls(e))),this.state.variables)}evaluateInt(e){return this.parser(e).parseInt()}evaluateDouble(e){return this.parser(e).parseDouble()}evaluateBool(e){const t=e.trim();if(t==="true")return!0;if(t==="false")return!1;const n=this.evaluateReference(t);if((n==null?void 0:n.kind)==="boolean")return n.value;const a=gi(t,"||");if(a.length>1)return a.some(u=>this.evaluateBool(u));const s=gi(t,"&&");if(s.length>1)return s.every(u=>this.evaluateBool(u));if(t.startsWith("!")&&!t.startsWith("!="))return!this.evaluateBool(t.slice(1));const r=pc(t);if(r!==void 0)return this.evaluateBool(r);const o=Wp(t);if(o)return this.evaluateComparison(o.lhs,"==",o.rhs);const l=Bp(t);if(l)return this.evaluateComparison(l.lhs,l.op,l.rhs);if(this.stringOperand(t)!==void 0)throw N(t);return this.evaluateDouble(t)!==0}evaluateComparison(e,t,n){if((e.trim()==="null"||n.trim()==="null")&&(t==="=="||t==="!=")){const m=d=>{var h;return d.trim()==="null"||((h=this.evaluateReference(d))==null?void 0:h.kind)==="null"},c=m(e)===m(n);return t==="=="?c:!c}const a=this.booleanOperand(e),s=this.booleanOperand(n);if((a!==void 0||s!==void 0)&&(t==="=="||t==="!=")){const m=a??this.evaluateBool(e),c=s??this.evaluateBool(n);return t==="=="?m===c:m!==c}const r=this.stringOperand(e),o=this.stringOperand(n);let l,u;if(r!==void 0||o!==void 0){if(r===void 0||o===void 0)throw N(`${e} ${t} ${n}`);l=r,u=o}else l=this.evaluateDouble(e),u=this.evaluateDouble(n);switch(t){case"==":return l===u;case"!=":return l!==u;case"<":return l":return l>u;case">=":return l>=u;default:throw N(`${e} ${t} ${n}`)}}booleanOperand(e){const t=e.trim();if(t==="true")return!0;if(t==="false")return!1;const n=this.evaluateReference(t);return(n==null?void 0:n.kind)==="boolean"?n.value:void 0}stringOperand(e){const t=e.trim(),n=Re(t);if(n!==void 0)return n;const a=this.evaluateReference(t);return(a==null?void 0:a.kind)==="string"?a.value:void 0}evaluateSwitchSelector(e){const t=e.trim(),n=Re(t);if(n!==void 0)return{kind:"text",value:n};const a=this.state.variables.get(t);if(a)switch(a.kind){case"int":return{kind:"int",value:a.value};case"double":return{kind:"int",value:Math.trunc(a.value)};case"string":return{kind:"text",value:a.value};default:throw N(t)}return/^[+-]?[0-9]+$/.test(t)?{kind:"int",value:Number(t)}:{kind:"int",value:this.evaluateInt(t)}}renderNumericExpression(e){return n0(Kl(e)).map(t=>{if(t.t==="number")return t.literal;if(t.t==="identifier"){const n=this.state.variables.get(t.name);if(!n)throw S1(t.name);return ge(n)}return t.t}).join(" ").replaceAll("( ","(").replaceAll(" )",")").replaceAll(" . ",".").replaceAll("[ ","[").replaceAll(" ]","]")}}const xc={baseIndent:0,indentPerLevel:4,includeDiagramTextAsComments:!1,includeEmptyElseBranch:!0,pseudocodeNote:"Pseudocode – not a runnable program"};function bc(i,e,t={},n=[]){const a=Bo(i,e,t);let s="";e==="javascript"&&(s+=`"use strict"; +`,t}function ac(i){return i.replace(/&/g,"&").replace(/"/g,""").replace(//g,">")}function fp(i){return i.replace(/&/g,"&").replace(//g,">")}function Ql(i){return String(i.a<<24|i.r<<16|i.g<<8|i.b|0)}function $a(i,e){return Array.from(i.children).filter(t=>t.tagName===e)}function ur(i){const e=[];for(const t of $a(i,"strelem")){const n=xp(t);n&&e.push(n)}return e}function xp(i){const e=C1(i,"typ");if(e===void 0||T[e]===void 0)return;const t={type:e,zoomX:C1(i,"zx")??0,zoomY:C1(i,"zy")??0,textLines:$a(i,"text").map(o=>or((o.textContent??"").trim()))},n=ql(i.getAttribute("textcolor"));n&&(t.textColor=n);const a=ql(i.getAttribute("bgcolor"));a&&(t.backgroundColor=a),t.textLines.length===0&&(t.textLines=[""]);const s=$a(i,"schleifeninhalt")[0];if(s){const o=ur(s);o.length>0&&(t.loopBody=o)}const r=$a(i,"fall").map(o=>({name:or(o.getAttribute("fallname")??""),elements:ur(o)}));return r.length>0&&(t.cases=r),t}function Vl(i,e){const t=i.getAttribute(e);return t===null?void 0:or(t)}function C1(i,e){const t=i.getAttribute(e);if(!(t===null||!/^[+-]?\d+$/.test(t)))return Number(t)}function ql(i){if(i===null||!/^[+-]?\d+$/.test(i))return;const e=Number(i);if(e<-2147483648||e>2147483647)return;const t=e>>>0;return{a:t>>>24&255,r:t>>>16&255,g:t>>>8&255,b:t&255}}const bp="http://www.w3.org/2000/svg",we={diagramLineWidth:2,outerFrameLineWidth:2,selectionLineWidth:3.5,canvasOuterMargin:16,cellTextInsetX:18,cellTextInsetY:15,multiHeaderFirstLineY:14,branchLabelInsetX:10,fallauswahlCaseLabelBand:26,callSideBarInset:14,callTextInsetFromSideBar:20,loopBodyLeadingInset:20};function le(i,e={}){const t=document.createElementNS(bp,i);for(const[n,a]of Object.entries(e))t.setAttribute(n,String(a));return t}class ic{constructor(e,t){I(this,"usesSimulationHighlight",!1);I(this,"fillsSelection",!1);this.metrics=e,this.measure=t}get lineHeight(){return this.metrics.lineHeight}get fontSize(){return this.metrics.fontSize}render(e,t,n,a=we.canvasOuterMargin){const s=le("svg",{width:t.width,height:t.height,viewBox:`0 0 ${t.width} ${t.height}`,"font-family":Ri,"font-size":this.fontSize,class:"diagram"});s.append(le("rect",{x:0,y:0,width:t.width,height:t.height,fill:"#fafafa"}));const r=a;s.append(le("rect",{x:r,y:r,width:e.canvasSize.width-2*r-1,height:e.canvasSize.height-2*r-1,fill:"none",stroke:"black","stroke-width":we.outerFrameLineWidth}));const o=le("g");for(const l of e.elements)this.drawNode(l,o,n,{},void 0);return s.append(o),s}line(e,t){e.append(le("polyline",{points:t.map(n=>n.join(",")).join(" "),fill:"none",stroke:"black","stroke-width":we.diagramLineWidth,"stroke-linejoin":"miter"}))}strokeCellBorder(e,t,n){const a=t.x,s=t.y,r=t.x+t.width,o=t.y+t.height;if(!n.top&&!n.left&&!n.bottom&&!n.right){e.append(le("rect",{x:a,y:s,width:t.width,height:t.height,fill:"none",stroke:"black","stroke-width":we.diagramLineWidth}));return}n.top||this.line(e,[[a,s],[r,s]]),n.right||this.line(e,[[r,s],[r,o]]),n.bottom||this.line(e,[[r,o],[a,o]]),n.left||this.line(e,[[a,o],[a,s]])}textWidth(e){const t=Wl(e);return t?this.measure(t.keyword,this.fontSize,"bold")+(t.rest===""?0:this.measure(" "+t.rest,this.fontSize,"medium")):this.measure(e,this.fontSize,"medium")}drawKeywordLine(e,t,n,a){const s=le("text",{x:n,y:a+Jl(this.fontSize,"medium").ascent,"font-weight":500});s.style.whiteSpace="pre";const r=Wl(t);if(r){const o=le("tspan",{"font-weight":700});if(o.textContent=r.keyword,s.append(o),r.rest!==""){const l=le("tspan",{});l.textContent=" "+r.rest,s.append(l)}}else s.textContent=t;e.append(s)}drawLabel(e,t,n,a,s,r){const o=Jl(this.fontSize,s?"bold":"medium"),l=le("text",{x:n,y:r==="top"?a+o.ascent:a-o.descent,"font-weight":s?700:500});l.style.whiteSpace="pre",l.textContent=t,e.append(l)}roofMetrics(e,t,n,a){const s=t.y+n,r=e.dividerYInset??0,o=12,l=Math.max(e.element.textLines.length,1)*this.lineHeight,u=t.y+we.multiHeaderFirstLineY;if(e.element.type===T.fallauswahl){const c=Math.max(we.fallauswahlCaseLabelBand,this.lineHeight+10),d=s-c,h=Math.min(s+r,d-8),g=Math.max(h,u+l+6);return{apex:{x:a,y:g},maxTextBottom:d-o,roofBottom:s}}const m={x:a,y:s+r};return{apex:m,maxTextBottom:m.y-o,roofBottom:s}}drawNode(e,t,n,a,s){var z;const r=e.frame,o=e.element,l=r.x+r.width,u=r.y+r.height,m=o.type===T.verzweigung||o.type===T.fallauswahl,c=m?e.headerBandHeight:0,d=n!==void 0&&mr(e.idPath,n),h=To(o),g=le("g",{"data-path":e.idPath.join(",")});t.append(g);const p=this.usesSimulationHighlight,x=o.backgroundColor,b=x&&x.a>0?`rgba(${x.r}, ${x.g}, ${x.b}, ${x.a/255})`:"white",y=d&&(p||this.fillsSelection)?"rgba(199, 230, 255, 0.55)":b;g.append(le("rect",{x:r.x,y:r.y,width:r.width,height:r.height,fill:y})),this.strokeCellBorder(g,r,a);const w=we.callSideBarInset;if(o.type===T.aufruf?(this.line(g,[[r.x+w,r.y],[r.x+w,u]]),this.line(g,[[l-w,r.y],[l-w,u]])):o.type===T.aussprung&&this.line(g,[[r.x+w,r.y],[r.x,r.y+r.height/2],[r.x+w,u]]),m&&e.dividerX!==void 0){const k=e.dividerX,S=this.roofMetrics(e,r,c,k),O=Math.max(h.length,1)*this.lineHeight,_=r.y+we.multiHeaderFirstLineY;this.line(g,[[r.x,r.y],[S.apex.x,S.apex.y],[l,r.y]]),o.type===T.fallauswahl&&this.line(g,[[r.x,S.roofBottom],[l,S.roofBottom]]);let Z;_+O<=S.maxTextBottom?Z=_:Z=Math.max(r.y+2,S.maxTextBottom-(Math.max(h.length,1)-1)*this.lineHeight-this.lineHeight),h.forEach((j,A)=>{const L=this.textWidth(j);let R;if(o.type===T.verzweigung){const X=r.x+we.cellTextInsetX,he=l-L-we.cellTextInsetX;R=Math.min(Math.max(k-L/2,X),he)}else R=r.x+r.width/2-L/2;this.drawKeywordLine(g,j,R,Z+A*this.lineHeight)})}else if(o.type!==T.doUntilSchleife)if(o.type===T.anweisung||o.type===T.aufruf||o.type===T.aussprung){const k=we.cellTextInsetX;let S=r.x+k,O=l-k;o.type===T.aufruf?(S=r.x+w+we.callTextInsetFromSideBar,O=l-w-we.callTextInsetFromSideBar):o.type===T.aussprung&&(S=r.x+w+k);const _=Math.max(0,O-S);let Z=r.y+r.height/2-Math.max(1,h.length)*this.lineHeight/2;for(const j of h)this.drawKeywordLine(g,j,S+(_-this.textWidth(j))/2,Z),Z+=this.lineHeight}else{const k=Math.max(1,h.length)*this.lineHeight;let S=s===T.doUntilSchleife?r.y+r.height/2-k/2:r.y+we.cellTextInsetY;for(const O of h)this.drawKeywordLine(g,O,r.x+we.cellTextInsetX,S),S+=this.lineHeight}e.children.forEach((k,S)=>{const O=o.type===T.doUntilSchleife&&S===0?{top:!0,left:!0}:{};this.drawNode(k,t,n,O,o.type)});const v=le("g");if(t.append(v),o.type===T.doUntilSchleife){const k=((z=e.children[0])==null?void 0:z.frame.x)??r.x+(e.loopBodyLeadingInset>0?e.loopBodyLeadingInset:we.loopBodyLeadingInset);this.drawLabel(v,"do",r.x+4,r.y+this.metrics.doUntilDoLabelTopInset,!0,"top");const S=u-e.headerBandHeight;this.line(v,[[k,S],[l,S]]),this.line(v,[[k,r.y],[k,S]]);let O=S+this.metrics.doUntilFooterTopInset;for(const _ of h)this.drawKeywordLine(v,_,r.x+we.cellTextInsetX,O),O+=this.lineHeight}if(m&&e.dividerX!==void 0&&e.caseColumnFrames.length>1){const k=this.roofMetrics(e,r,c,e.dividerX),S=k.apex;e.caseColumnFrames.forEach((_,Z)=>{if(Z>=e.caseColumnFrames.length-1)return;const j=_.x+_.width,A=yp(j,r,S),L=Number.isFinite(A)?Math.min(Math.max(A,r.y),u):r.y;this.line(v,[[j,u],[j,L]])});const O=o.cases;if(O&&O.length===e.caseColumnFrames.length){const _=o.type===T.fallauswahl?k.roofBottom-6:r.y+c-8,Z=we.branchLabelInsetX;if(o.type===T.verzweigung&&O.length===2){this.drawLabel(v,"true",r.x+Z,_,!0,"bottom");const j=e.caseColumnFrames[1],A=this.measure("false",this.fontSize,"bold");this.drawLabel(v,"false",j.x+j.width-Z-A,_,!0,"bottom")}else O.forEach((j,A)=>{const L=e.caseColumnFrames[A],R=["default","true","false"].includes(j.name.toLowerCase()),X=this.measure(j.name,this.fontSize,R?"bold":"medium");this.drawLabel(v,j.name,L.x+L.width/2-X/2,_,R,"bottom")})}}d&&v.append(le("rect",{x:r.x,y:r.y,width:r.width,height:r.height,fill:"none",stroke:p?"rgba(66, 140, 242, 0.78)":"rgba(0, 122, 255, 0.9)","stroke-width":we.selectionLineWidth}))}}function yp(i,e,t){const n=e.y;if(i<=t.x){const s=t.x-e.x;return Math.abs(s)<.5?t.y:n+(t.y-n)/s*(i-e.x)}const a=e.x+e.width-t.x;return Math.abs(a)<.5?t.y:t.y+(n-t.y)/a*(i-t.x)}function mr(i,e){return i.length===e.length&&i.every((t,n)=>t===e[n])}function vp(i){const e=[],t=n=>{e.push(n),n.children.forEach(t)};return i.forEach(t),e}function mi(i){var e,t;return{...i,textLines:To(i),loopBody:(e=i.loopBody)==null?void 0:e.map(mi),cases:(t=i.cases)==null?void 0:t.map(n=>({name:n.name,elements:n.elements.map(mi)}))}}const wp="modulepreload",zp=function(i,e){return new URL(i,e).href},Ul={},Q=function(e,t,n){let a=Promise.resolve();if(t&&t.length>0){let r=function(m){return Promise.all(m.map(c=>Promise.resolve(c).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};const o=document.getElementsByTagName("link"),l=document.querySelector("meta[property=csp-nonce]"),u=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));a=r(t.map(m=>{if(m=zp(m,n),m in Ul)return;Ul[m]=!0;const c=m.endsWith(".css"),d=c?'[rel="stylesheet"]':"";if(!!n)for(let p=o.length-1;p>=0;p--){const x=o[p];if(x.href===m&&(!c||x.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${m}"]${d}`))return;const g=document.createElement("link");if(g.rel=c?"stylesheet":wp,c||(g.as="script"),g.crossOrigin="",g.href=m,u&&g.setAttribute("nonce",u),document.head.appendChild(g),c)return new Promise((p,x)=>{g.addEventListener("load",p),g.addEventListener("error",()=>x(new Error(`Unable to preload CSS for ${m}`)))})}))}function s(r){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=r,window.dispatchEvent(o),!o.defaultPrevented)throw r}return a.then(r=>{for(const o of r||[])o.status==="rejected"&&s(o.reason);return e().catch(s)})},Ip=[{code:"de",name:"Deutsch"},{code:"en",name:"English"},{code:"es",name:"Español"},{code:"fr",name:"Français"},{code:"it",name:"Italiano"},{code:"pl",name:"Polski"},{code:"tr",name:"Türkçe"},{code:"ko",name:"한국어"},{code:"ja",name:"日本語"},{code:"el",name:"Ελληνικά"},{code:"uk",name:"Українська"},{code:"ar",name:"العربية"},{code:"ru",name:"Русский"},{code:"he",name:"עברית"},{code:"nl",name:"Nederlands"},{code:"sv",name:"Svenska"},{code:"da",name:"Dansk"},{code:"nb",name:"Norsk bokmål"},{code:"zh-Hans",name:"中文(简体)"},{code:"zh-Hant",name:"中文(繁體)"},{code:"pt-PT",name:"Português"},{code:"java",name:"Java (Keywords)"}],sc=["de","en","pt-PT"],rc=Ip.filter(i=>sc.includes(i.code)),$l=i=>sc.includes(i),kp=Object.assign({"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ar.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-CxCno28C.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/da.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-BAutdlBb.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/de.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-Dk8F86qS.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/el.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-rqA-20hM.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/en.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-DBLIUcBd.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/es.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-LSTVB2Q5.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/fr.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-ByPZS4RL.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/he.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-R-16GCrk.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/it.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-DXAPah1g.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ja.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-CkJEmEEP.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ko.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-BudCXCER.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/nb.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-DSvkBkp-.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/nl.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-BJ55WGVD.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/pl.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-BYJK0mdR.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/pt-PT.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-CHv0OL9S.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ru.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-1QZ0wfvJ.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/sv.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-M33nNbEe.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/tr.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-BM86Igqt.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/uk.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-UGog_aku.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/zh-Hans.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-CaVEL1es.js"),[],import.meta.url).then(i=>i.default),"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/zh-Hant.lproj/Localizable.strings":()=>Q(()=>import("./Localizable-DqIDp_hh.js"),[],import.meta.url).then(i=>i.default)}),oc=Object.assign({"../../../VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/Java.strings":()=>Q(()=>import("./Java-Bpx1Vwvg.js"),[],import.meta.url).then(i=>i.default)}),Sp=Object.assign({"../i18n/ar.strings":()=>Q(()=>import("./ar-PBaSnx_C.js"),[],import.meta.url).then(i=>i.default),"../i18n/da.strings":()=>Q(()=>import("./da-RtcqXVki.js"),[],import.meta.url).then(i=>i.default),"../i18n/de.strings":()=>Q(()=>import("./de-CRGJybTl.js"),[],import.meta.url).then(i=>i.default),"../i18n/el.strings":()=>Q(()=>import("./el-BbGAZ-Gl.js"),[],import.meta.url).then(i=>i.default),"../i18n/en.strings":()=>Q(()=>import("./en-DFABmP98.js"),[],import.meta.url).then(i=>i.default),"../i18n/es.strings":()=>Q(()=>import("./es-ansh_rKM.js"),[],import.meta.url).then(i=>i.default),"../i18n/fr.strings":()=>Q(()=>import("./fr-Dvgj0hbi.js"),[],import.meta.url).then(i=>i.default),"../i18n/he.strings":()=>Q(()=>import("./he-Dk2sM7-c.js"),[],import.meta.url).then(i=>i.default),"../i18n/it.strings":()=>Q(()=>import("./it-DY7DFdGK.js"),[],import.meta.url).then(i=>i.default),"../i18n/ja.strings":()=>Q(()=>import("./ja-CwCcoKda.js"),[],import.meta.url).then(i=>i.default),"../i18n/ko.strings":()=>Q(()=>import("./ko-TajOBubd.js"),[],import.meta.url).then(i=>i.default),"../i18n/nb.strings":()=>Q(()=>import("./nb-CyZqPtEV.js"),[],import.meta.url).then(i=>i.default),"../i18n/nl.strings":()=>Q(()=>import("./nl-DmU1Uwm_.js"),[],import.meta.url).then(i=>i.default),"../i18n/pl.strings":()=>Q(()=>import("./pl-CzxKsemh.js"),[],import.meta.url).then(i=>i.default),"../i18n/pt-PT.strings":()=>Q(()=>import("./pt-PT-BNUtIo1v.js"),[],import.meta.url).then(i=>i.default),"../i18n/ru.strings":()=>Q(()=>import("./ru-CtcWOBjR.js"),[],import.meta.url).then(i=>i.default),"../i18n/sv.strings":()=>Q(()=>import("./sv-DieuHpt5.js"),[],import.meta.url).then(i=>i.default),"../i18n/tr.strings":()=>Q(()=>import("./tr-0mqLgBY2.js"),[],import.meta.url).then(i=>i.default),"../i18n/uk.strings":()=>Q(()=>import("./uk-DIgQuU31.js"),[],import.meta.url).then(i=>i.default),"../i18n/zh-Hans.strings":()=>Q(()=>import("./zh-Hans-txOHg2Ch.js"),[],import.meta.url).then(i=>i.default),"../i18n/zh-Hant.strings":()=>Q(()=>import("./zh-Hant-C6IIwyi_.js"),[],import.meta.url).then(i=>i.default)});function Ya(i,e){var t;return(t=Object.entries(i).find(([n])=>n.endsWith(e)))==null?void 0:t[1]}function lc(i){const e=new Map,t=i.replace(/\/\*[\s\S]*?\*\//g,"").replace(/^\s*\/\/.*$/gm,""),n=/"((?:[^"\\]|\\.)*)"\s*=\s*"((?:[^"\\]|\\.)*)"\s*;/g,a=s=>s.replace(/\\(u[0-9a-fA-F]{4}|.)/g,(r,o)=>o==="n"?` +`:o==="t"?" ":o.startsWith("u")&&o.length===5?String.fromCharCode(parseInt(o.slice(1),16)):o);for(const s of t.matchAll(n))e.set(a(s[1]),a(s[2]));return e}async function cr(i){const e=i==="java"?Ya(oc,"/Java.strings"):Ya(kp,`/${i}.lproj/Localizable.strings`),t=Ya(Sp,`/${i}.strings`),n=new Map;for(const a of[e,t])if(a)for(const[s,r]of lc(await a()))n.set(s,r);return n}let uc="en",mc=new Map,Cn=new Map;const ci="appLanguageCode",Zo="visustruct.keywords";let dr=new Map,Mo=!1;const Op=i=>i.startsWith("element_")||i.startsWith("canvas_stub_");function Tp(){try{const i=new URLSearchParams(location.search).get("lang")==="java"||localStorage.getItem(ci)==="java";return i&&(localStorage.setItem(ci,"en"),localStorage.setItem(Zo,"1")),i}catch{return!1}}function Ap(){try{return localStorage.getItem(Zo)==="1"}catch{return!1}}async function cc(i,e=!0){if(i&&dr.size===0){Cn.size===0&&(Cn=await cr("en"));const t=Ya(oc,"/Java.strings");if(t)for(const[n,a]of lc(await t()))Op(n)&&a!==Cn.get(n)&&dr.set(n,a)}if(Mo=i,e)try{localStorage.setItem(Zo,i?"1":"0")}catch{}}function Pp(){return Mo}function jp(){if(Tp())return"en";const i=new URLSearchParams(location.search).get("lang");if(i&&$l(i))return i;try{const e=localStorage.getItem(ci);if(e&&$l(e))return e}catch{}for(const e of navigator.languages??[navigator.language]){const t=e.toLowerCase();if(t.startsWith("pt"))return"pt-PT";const n=rc.find(a=>a.code===t.split("-")[0]);if(n)return n.code}return"en"}async function dc(i,e=!0){if(Cn.size===0&&(Cn=await cr("en")),mc=i==="en"?Cn:await cr(i),uc=i,e)try{localStorage.setItem(ci,i)}catch{}const t=document.documentElement;t.lang=i==="java"?"en":i,t.dir=i==="ar"||i==="he"?"rtl":"ltr"}function Bn(){return uc}function f(i,...e){const t=(Mo?dr.get(i):void 0)??mc.get(i)??Cn.get(i)??i;if(e.length===0)return t;let n=0;return t.replace(/%(?:(\d+)\$)?[@d]/g,(a,s)=>String(e[s?Number(s)-1:n++]??""))}const Cp=100;function hc(i){switch(i.kind){case"finished":return"Simulation finished.";case"infiniteLoopWithoutBody":return"Infinite loop has no body.";case"unsupportedStatement":return`Unsupported statement: ${i.text}`;case"invalidExpression":return`Invalid expression: ${i.text}`;case"unknownVariable":return`Unknown variable: ${i.text}`;case"divisionByZero":return"Division by zero.";case"wholeNumberExpected":return"Please enter a whole number.";case"numberExpected":return"Please enter a number.";case"booleanExpected":return"Please enter true or false.";case"subprogramNotFound":return`No open diagram is called ${i.text}. The call was skipped.`;case"callTooDeep":return"Too many nested calls. Does a subprogram call itself?";case"callArguments":return`The call does not match the header of ${i.text}. Check the values in the parentheses.`;case"missingReturn":return`${i.text} ended without returning a value with return.`;case"fileNotFound":return`There is no file called ${i.text}.`;case"endOfFile":return`The file ${i.text} has no more lines.`;case"nullValue":return`${i.text} is null.`;case"other":return i.text}}class ke extends Error{constructor(e){super(hc(e)),this.notice=e}}const Ze=i=>new ke({kind:"unsupportedStatement",text:i}),N=i=>new ke({kind:"invalidExpression",text:i}),S1=i=>new ke({kind:"unknownVariable",text:i}),_p=()=>new ke({kind:"divisionByZero"}),di=new Map;function Zp(i,e){di.set(i,e)}const gc=()=>[...di];function Yl(i){return i instanceof ke?i.notice:{kind:"other",text:i instanceof Error?i.message:String(i)}}function Mp(i){if(i===0)return"0";if(!Number.isFinite(i))return Number.isNaN(i)?"nan":i>0?"inf":"-inf";const e=Math.floor(Math.log10(Math.abs(Number(i.toPrecision(12)))));if(e<-4||e>=12){const[n,a]=i.toExponential(11).split("e"),s=n.includes(".")?n.replace(/0+$/,"").replace(/\.$/,""):n,r=Number(a);return`${s}e${r<0?"-":"+"}${String(Math.abs(r)).padStart(2,"0")}`}const t=i.toFixed(Math.max(0,11-e));return t.includes(".")?t.replace(/0+$/,"").replace(/\.$/,""):t}function Xl(i){return Number.isFinite(i)&&Math.round(i)===i?i.toFixed(1):Mp(i)}function ge(i){switch(i.kind){case"int":return String(i.value);case"double":return Xl(i.value);case"string":return i.value;case"boolean":return String(i.value);case"intArray":return"["+i.value.map(String).join(", ")+"]";case"doubleArray":return"["+i.value.map(Xl).join(", ")+"]";case"stringArray":return"["+i.value.join(", ")+"]";case"booleanArray":return"["+i.value.map(String).join(", ")+"]";case"grid":return"["+Dp(i).join(", ")+"]";case"reader":return`${i.className}(${i.file})`;case"writer":return`PrintWriter(${i.file})`;case"null":return"null"}}function Dp(i){return i.value.map(e=>"["+e.map(t=>ge(pc(i.elementType,t))).join(", ")+"]")}function pc(i,e){switch(i){case"int":return{kind:"int",value:e};case"double":return{kind:"double",value:e};case"string":return{kind:"string",value:e};case"boolean":return{kind:"boolean",value:e}}}function Bp(i){return i==="string"?"":i==="boolean"?!1:0}function hr(i){return i.kind==="intArray"||i.kind==="doubleArray"||i.kind==="stringArray"||i.kind==="booleanArray"||i.kind==="grid"}function Wp(i){return i.kind==="int"||i.kind==="double"?i.value:NaN}const nt=i=>({kind:"int",value:i}),at=i=>({kind:"double",value:i}),Do=i=>i!==void 0&&/\s/u.test(i),hi=i=>new RegExp("\\p{L}","u").test(i),O1=i=>new RegExp("\\p{N}","u").test(i);function _1(i){const e=Array.from(i);return e.length===0||!(hi(e[0])||e[0]==="_")?!1:e.every(t=>hi(t)||O1(t)||t==="_")}function Ft(i){switch(i.toLowerCase()){case"int":return"int";case"double":return"double";case"string":return"string";case"char":return"string";case"boolean":case"bool":return"boolean";default:return}}function Kl(i){return i.kind==="int"?"int":i.kind==="double"?"double":i.kind==="boolean"?"boolean":"string"}function Re(i){const e=Array.from(i);if(e.length===3&&e[0]==="'"&&e[2]==="'")return e[1];if(e.length<2||e[0]!=='"'||e[e.length-1]!=='"')return;const t=e.slice(1,-1).join("");if(/^(?:[^"\\]|\\.)*$/u.test(t))return t.replaceAll('\\"','"').replaceAll("\\n",` +`)}function e0(i){return i.replaceAll("(int)","").replaceAll("(double)","").trim()}function Bo(i){const e=new Array(i.length).fill(!1);let t=0,n=!1,a=!1;return i.forEach((s,r)=>{if(n){a?a=!1:s==="\\"?a=!0:s==='"'&&(n=!1);return}switch(s){case'"':n=!0;break;case"(":case"[":t+=1;break;case")":case"]":t-=1;break;default:e[r]=t===0}}),e}function gi(i,e){const t=Array.from(i),n=Array.from(e),a=Bo(t),s=[];let r=[],o=0;for(;ot[o+m]===u)&&a.slice(o,l).every(Boolean)){s.push(r.join("").trim()),r=[],o=l;continue}r.push(t[o]),o+=1}return s.push(r.join("").trim()),s}function Lp(i){const e=Array.from(i),t=Bo(e);for(let n=0;n=","<=","==","!="].includes(o)&&(a=o)}if(a===void 0&&(e[n]==="<"||e[n]===">")&&(a=e[n]),a===void 0)continue;const s=e.slice(0,n).join("").trim(),r=e.slice(n+a.length).join("").trim();return{lhs:s,op:a,rhs:r}}}function Hi(i,e){let t=0,n=!1,a=!1;for(let s=e;se.length||!t.every((r,o)=>e[a+o]===r))continue;const s=a+t.length-1;if(Hi(e,s)===e.length-1)return{lhs:e.slice(0,a).join("").trim(),rhs:e.slice(s+1,-1).join("").trim()}}}function za(i){const e=i.trim();for(const t of["if","while","until","switch"]){if(!e.startsWith(t))continue;const n=e.slice(t.length);if(!(n===""||Do(n[0])||n[0]==="("))continue;let a=n.trim();const s=fc(a);return s!==void 0&&(a=s),a===""?"true":a}return e===""?"true":e}function Gn(i){const e=i.trim(),t=e.indexOf("[");if(!e.endsWith("]")||t<0)return;const n=e.slice(0,t).trim();if(!_1(n))return;const a=[];let s=t;for(;s2))return{arrayName:n,indexExpressions:a}}function Np(i){const e=i.trim();if(!e.endsWith(")"))return;const t=/^([A-Za-z_]\w*(?:\s*\[[^\[\]]*\])*|"(?:[^"\\]|\\.)*")\s*\.\s*([A-Za-z_]\w*)\s*\(/u.exec(e);if(!t)return;const n=Array.from(e),a=Array.from(t[0]).length-1;if(Hi(n,a)!==n.length-1)return;const s=n.slice(a+1,-1).join("").trim();return{target:t[1],method:t[2],args:s===""?[]:gi(s,",")}}function t0(i){return _1(i)||Gn(i)!==void 0}function n0(i){const e=[];let t="",n=!1,a=!1,s=0;for(const r of i){if(a){t+=r,a=!1;continue}if(r==="\\"){t+=r,a=!0;continue}if(r==='"'){n=!n,t+=r;continue}if(!n&&r==="("&&(s+=1),!n&&r===")"&&(s-=1),r==="+"&&!n&&s===0){e.push(t),t="";continue}t+=r}if(n)throw N(i);return e.push(t),e}function Fp(i){const e=[];let t=0,n="";for(const a of i){if(a==="{"&&(t+=1),a==="}"&&(t-=1),a===","&&t===0){e.push(n),n="";continue}n+=a}return n.trim()!==""&&e.push(n),e}function a0(i){const e=Array.from(i),t=[];let n=0;for(;n1)throw N(i)}else if(!O1(e[n]))break;n+=1}const o=e.slice(s,n).join("");if(o==="."||!/^[0-9]*\.?[0-9]*$/.test(o))throw N(i);t.push({t:"number",literal:o,value:Number(o)});continue}if(hi(a)||a==="_"){const s=n;for(;n=0&&s=0&&o=0&&so1(t).trim());return e.length===1&&e[0].includes(";")?i0(e[0].split(";").map(t=>t.trim())):i0(e)}const Ge=i=>i.frame?{frame:i.frame,callPath:i.callPath}:{};function Ot(i,e=[],t={}){const n=[],a=s=>n.push(t.frame?{...s,...t}:s);return i.forEach((s,r)=>{const o=[...e,r],l=s.textLines.join(" ").trim();switch(s.type){case T.anweisung:l!==""&&l!=="ø"&&a({path:o,text:l,kind:"statement"});break;case T.verzweigung:a({path:o,text:l||"true",kind:"branch",cases:s.cases});break;case T.fallauswahl:a({path:o,text:l||"0",kind:"switchSelection",cases:s.cases});break;case T.forSchleife:a({path:o,text:l,kind:"forLoopStart",loopBody:s.loopBody,forParts:pr(s.textLines)});break;case T.whileSchleife:a({path:o,text:l||"true",kind:"whileLoop",loopBody:s.loopBody});break;case T.doUntilSchleife:a({path:o,text:l||"true",kind:"doUntilLoop",loopBody:s.loopBody});break;case T.endlosschleife:a({path:o,text:l||"true",kind:"infiniteLoop",loopBody:s.loopBody});break;case T.aussprung:a({path:o,text:l,kind:"jump"});break;case T.aufruf:l!==""&&l!=="ø"&&a({path:o,text:l,kind:"call"});break}}),n}function Gp(i,e){const t=i.trim().replaceAll(",",".");switch(e){case"int":if(!/^[+-]?[0-9]+$/.test(t))throw new ke({kind:"wholeNumberExpected"});return nt(Number(t));case"double":if(!/^[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?$/.test(t))throw new ke({kind:"numberExpected"});return at(Number(t));case"string":return{kind:"string",value:i};case"boolean":switch(t.toLowerCase()){case"true":case"wahr":return{kind:"boolean",value:!0};case"false":case"falsch":return{kind:"boolean",value:!1};default:throw new ke({kind:"booleanExpected"})}}}function s0(){return{stepIndex:0,variables:new Map,outputLines:[],isHalted:!1,files:new Map}}function Rp(i,e){for(let t=0;tt===e.path[n])}function dt(i){const e=/^(void|int|double|String|boolean)\s+([A-Za-z_]\w*)\s*\((.*)\)$/u.exec(o1(i));if(!e)return;const t=[];if(e[3].trim()!=="")for(const n of e[3].split(",")){const a=/^(int|double|String|boolean|char)\s*((?:\[\s*\]){0,2})\s+([A-Za-z_]\w*)$/u.exec(n.trim());if(!a)return;const s=(a[2].match(/\[/gu)??[]).length;t.push({type:Ft(a[1]),name:a[3],...s>0?{dims:s}:{}})}return{returnType:Ft(e[1]),name:e[2],params:t}}function xc(i){const e=/^(?:(?:(int|double|String|boolean)\s+)?([A-Za-z_]\w*)\s*=\s*)?([A-Za-z_]\w*)\s*\((.*)\)$/u.exec(o1(i));if(e)return{targetType:e[1]?Ft(e[1]):void 0,target:e[2],name:e[3],args:e[4].trim()===""?[]:gi(e[4],",")}}function pi(i){var t,n;const e=o1(i);return((t=dt(e))==null?void 0:t.name)??((n=xc(e))==null?void 0:n.name)??e.replace(/\(\s*\)$/u,"").trim()}class fi{constructor(e,t=()=>{}){I(this,"steps");I(this,"state",s0());I(this,"nextFrame",1);I(this,"callDepth",0);I(this,"frames",new Map);I(this,"peeking",!1);this.resolveSubprogram=t,this.steps=Ot(e.elements)}get currentStepPath(){const e=this.steps[this.state.stepIndex];return(e==null?void 0:e.callPath)??(e==null?void 0:e.path)}get canStep(){return!this.state.isHalted&&!this.state.inputRequest&&this.state.stepIndex ${ge(n)}`}catch(n){this.state.inputErrorNotice=Yl(n);return}this.state.inputRequest=void 0,this.state.inputErrorNotice=void 0,this.state.stepIndex+=1,this.state.notice=this.finishedIfAtEnd()}}finishedIfAtEnd(){return this.state.stepIndex>=this.steps.length?{kind:"finished"}:void 0}splice(e){this.steps.splice(this.state.stepIndex,1,...e)}noticeAfterEntering(e){return e.length>0?void 0:this.finishedIfAtEnd()}executeBranch(e){const t=e.cases;if(!t||t.length<2)throw Ze(e.text);const n=za(e.text),a=this.evaluateBool(n),s=a?0:1,r=Ot(t[s].elements,[...e.path,s],Ge(e));this.splice(r),this.state.lastTrace=`${n} -> ${a}`,this.state.notice=this.noticeAfterEntering(r)}executeSwitchSelection(e){const t=e.cases;if(!t||t.length===0)throw Ze(e.text);const n=za(e.text),a=this.evaluateSwitchSelector(n),s=Rp(a,t)??t.length-1,r=Ot(t[s].elements,[...e.path,s],Ge(e));this.splice(r),this.state.lastTrace=`${n} -> ${t[s].name}`,this.state.notice=this.noticeAfterEntering(r)}executeForLoopStart(e){const t=pr(e.forParts??[e.text]);t[0]!==""&&this.executeStatement(t[0]),this.splice([{...Ge(e),path:e.path,text:t[1],kind:"forLoopCondition",loopBody:e.loopBody,forParts:t}])}executeForLoopCondition(e){const t=pr(e.forParts??[e.text]),n=t[1]===""?"true":t[1],a=this.evaluateBool(n);if(this.state.lastTrace=`${n} -> ${a}`,a){const s=Ot(e.loopBody??[],[...e.path,0],Ge(e));this.splice([...s,{...Ge(e),path:e.path,text:t[2],kind:"forLoopIncrement",loopBody:e.loopBody,forParts:t},{...Ge(e),path:e.path,text:t[1],kind:"forLoopCondition",loopBody:e.loopBody,forParts:t}])}else this.splice([]),this.state.notice=this.finishedIfAtEnd()}executeForLoopIncrement(e){const t=e.text.trim();t!==""&&this.executeIncrement(t),this.splice([])}executeWhileLoop(e){const t=za(e.text),n=this.evaluateBool(t);if(this.state.lastTrace=`${t} -> ${n}`,n){const a=Ot(e.loopBody??[],[...e.path,0],Ge(e));this.splice([...a,{...Ge(e),path:e.path,text:e.text,kind:"whileLoop",loopBody:e.loopBody}]),this.state.notice=this.noticeAfterEntering(a)}else this.splice([]),this.state.notice=this.finishedIfAtEnd()}enterDoUntilLoop(e){const t=Ot(e.loopBody??[],[...e.path,0],Ge(e));this.splice([...t,{...Ge(e),path:e.path,text:e.text,kind:"doUntilCondition",loopBody:e.loopBody}]),this.state.notice=this.noticeAfterEntering(t)}executeDoUntilCondition(e){const t=za(e.text),n=this.evaluateBool(t);if(this.state.lastTrace=`${t} -> ${n}`,n){const a=Ot(e.loopBody??[],[...e.path,0],Ge(e));this.splice([...a,{...Ge(e),path:e.path,text:e.text,kind:"doUntilCondition",loopBody:e.loopBody}])}else this.splice([]),this.state.notice=this.finishedIfAtEnd()}enterInfiniteLoop(e){const t=Ot(e.loopBody??[],[...e.path,0],Ge(e));this.splice([...t,{...Ge(e),path:e.path,text:e.text,kind:"infiniteLoop",loopBody:e.loopBody}]),this.state.lastTrace="true -> true",this.state.notice=t.length>0?void 0:{kind:"infiniteLoopWithoutBody"}}executeJump(e){const t=e.frame??0,n=o=>o.lengthl===e.path[u]);let a=this.steps.length,s="end";for(let o=this.state.stepIndex+1;o ${s}`,s==="return"&&this.finishFrame(r),this.state.notice=this.finishedIfAtEnd()}executeCall(e){const t=e.text,n=this.resolveSubprogram(pi(t));if(!n){this.splice([]),this.state.lastTrace=`${t} -> ?`,this.state.notice={kind:"subprogramNotFound",text:t},this.state.stepIndex>=this.steps.length&&(this.state.notice={kind:"finished"});return}const a=xc(t),s=dt(n.caption);if(s?((a==null?void 0:a.args.length)??0)!==s.params.length||(a==null?void 0:a.target)!==void 0&&!s.returnType:a!==void 0&&(a.args.length>0||a.target!==void 0))throw new ke({kind:"callArguments",text:(s==null?void 0:s.name)??pi(t)});if(this.callDepth>=Cp)throw new ke({kind:"callTooDeep"});const o=new Map,l=[];s==null||s.params.forEach((d,h)=>{const g=a.args[h].trim();if(!d.dims){o.set(d.name,this.evaluateExpression(g,d.type));return}const p=this.state.variables.get(g);if(!p)throw/^[A-Za-z_]\w*$/u.test(g)?new ke({kind:"unknownVariable",text:g}):N(g);if(!(d.dims===1?p.kind===`${d.type}Array`:p.kind==="grid"&&p.elementType===d.type))throw N(g);o.set(d.name,p),l.push({param:d.name,callerName:g})}),this.callDepth+=1;const u={frame:this.nextFrame++,callPath:e.callPath??e.path};s&&(this.frames.set(u.frame,{saved:this.state.variables,header:s,call:a,references:l}),this.state.variables=o);const m=Ot(n.elements,[],u);this.splice([...m,{...u,path:e.path,text:t,kind:"callEnd"}]);const c=s==null?void 0:s.params.map((d,h)=>`${d.name} = ${d.dims?a.args[h].trim():ge(o.get(d.name))}`).join(", ");this.state.lastTrace=c?`${t} -> ${c}`:`${t} -> call`}executeCallEnd(e){this.callDepth-=1,this.splice([]),this.state.lastTrace=`${e.text} -> return`,this.finishFrame(e),this.state.notice=this.finishedIfAtEnd()}executeReturn(e){const t=e.frame??0,n=o1(e.text).slice(6).trim(),a=this.frames.get(t);if(a&&n!==""){if(!a.header.returnType)throw N(e.text);a.returnValue=this.evaluateExpression(n,a.header.returnType)}const s=a!=null&&a.returnValue?`${e.text} -> ${ge(a.returnValue)}`:`${e.text} -> return`;if(t===0){this.steps.splice(this.state.stepIndex),this.state.lastTrace=s,this.state.notice={kind:"finished"};return}let r=this.state.stepIndex+1;for(;r0?new Map(t.saved):t.saved;for(const m of t.references){const c=this.state.variables.get(m.param);c&&n.set(m.callerName,c)}this.state.variables=n;const a=t.returnValue;if(t.header.returnType&&!a)throw new ke({kind:"missingReturn",text:t.header.name});const s=(l=t.call)==null?void 0:l.target;if(!s||!a)return;let r=(u=t.call)==null?void 0:u.targetType;if(!r)try{r=this.inferTargetValueType(s)}catch{r=t.header.returnType}const o=r==="double"&&a.kind==="int"?at(a.value):r==="string"?{kind:"string",value:ge(a)}:a;if(Kl(o)!==r)throw N(e.text);this.assignValue(o,s),this.state.lastTrace=`${s} = ${e.text.slice(e.text.indexOf("=")+1).trim()} -> ${ge(o)}`}executeStatement(e){const t=this.state,n=e.trim(),a=n.toLowerCase();if(a.startsWith("input:")){t.inputRequest=this.parseInputRequest(n),t.inputErrorNotice=void 0;return}if(a.startsWith("output:")||a.startsWith("print:")){const h=n.slice(a.startsWith("output:")?7:6),g=this.peek(()=>this.renderOutputExpression(h)),p=this.evaluateOutputExpression(h);t.outputLines.push(p),t.lastTrace=`${g} -> ${p}`;return}if(this.executeFileStatement(n))return;if(n.endsWith("++")||n.endsWith("--")||n.includes("+=")||n.includes("-=")){this.executeIncrement(n);return}const s=n.indexOf("=");if(s<0)throw Ze(n);const r=n.slice(0,s).trim(),o=n.slice(s+1),l=this.parseArrayDeclaration(r,o);if(l){t.variables.set(l.name,l.value),t.lastTrace=`${l.name} = new ${l.typeName}[${l.count}]`;return}const u=this.parseAssignmentTarget(r);let m;try{m=this.peek(()=>this.renderNumericExpression(o))}catch{m=o.trim()}let c=u.valueType;if(!c)try{c=this.inferTargetValueType(u.variableName)}catch{c="int"}const d=this.evaluateExpression(o,c);this.assignValue(d,u.variableName),t.lastTrace=`${u.variableName} = ${m} -> ${ge(d)}`}executeFileStatement(e){const t=this.state,n=o1(e).trim(),a=/^(?:(Scanner|BufferedReader|PrintWriter)\s+)?([A-Za-z_]\w*)\s*=\s*new\s+(Scanner|BufferedReader|PrintWriter)\s*\(([\s\S]*)\)$/u.exec(n);if(a){const[,m,c,d,h]=a;if(m&&m!==d)throw N(n);const g=d==="Scanner"?/^new\s+File\s*\(([\s\S]+)\)$/u.exec(h.trim()):d==="BufferedReader"?/^new\s+FileReader\s*\(([\s\S]+)\)$/u.exec(h.trim()):/^(?:new\s+(?:File|FileWriter)\s*\(([\s\S]+)\)|([\s\S]+))$/u.exec(h.trim());if(!g)throw Ze(n);const p=this.fileNameValue(g[1]??g[2]);if(d==="PrintWriter")t.variables.set(c,{kind:"writer",file:p,text:""});else{const b=this.fileContent(p).split(/\r?\n/u);b[b.length-1]===""&&b.pop(),t.variables.set(c,{kind:"reader",className:d,file:p,lines:b,next:0})}return t.lastTrace=`${c} = new ${d}(${p})`,!0}const s=/^Files\s*\.\s*writeString\s*\(\s*(?:Path\s*\.\s*of|Paths\s*\.\s*get)\s*\(([^()]+)\)\s*,([\s\S]+)\)$/u.exec(n);if(s){const m=this.fileNameValue(s[1]),c=this.evaluateOutputExpression(s[2]);return t.files.set(m,c),t.lastTrace=`${m} ← ${JSON.stringify(c)}`,!0}const r=/^([A-Za-z_]\w*)\s*\.\s*(println|print|close)\s*\(([\s\S]*)\)$/u.exec(n),o=r&&t.variables.get(r[1]);if(!r||!o)return!1;if(o.kind==="null")throw new ke({kind:"nullValue",text:r[1]});if(o.kind==="reader"&&r[2]==="close")return t.lastTrace=`${r[1]}.close()`,!0;if(o.kind!=="writer")return!1;if(r[2]==="close")return t.files.set(o.file,o.text),t.lastTrace=`${o.file} ← ${JSON.stringify(o.text)}`,!0;const l=r[3].trim()===""?"":this.evaluateOutputExpression(r[3]),u=r[2]==="println"?l+` +`:l;return t.variables.set(r[1],{...o,text:o.text+u}),t.lastTrace=`${r[1]}.${r[2]}(${JSON.stringify(l)})`,!0}fileNameValue(e){const t=e.trim(),n=Re(t);if(n!==void 0)return n;const a=this.evaluateReference(t);if((a==null?void 0:a.kind)==="string")return a.value;throw N(t)}fileContent(e){const t=this.state.files.get(e)??di.get(e);if(t===void 0)throw new ke({kind:"fileNotFound",text:e});return t}readerMethod(e,t,n,a){if(n.args.length)throw N(a);const s=t.next0?"+":"-";if(r.kind==="int"){t.set(s,nt(r.value+a)),this.state.lastTrace=`${s} = ${r.value} ${o} 1 -> ${r.value+a}`;return}if(r.kind==="double"){const l=r.value+a;t.set(s,at(l)),this.state.lastTrace=`${s} = ${ge(r)} ${o} 1 -> ${ge(at(l))}`;return}throw Ze(e)}for(const[n,a]of[["+=",1],["-=",-1]]){const s=e.indexOf(n);if(s<0)continue;const r=e.slice(0,s).trim(),o=e.slice(s+2),l=t.get(r);if(!_1(r)||!l)throw Ze(e);const u=a>0?"+":"-";if(l.kind==="int"){const m=this.evaluateInt(o),c=l.value+a*m;t.set(r,nt(c)),this.state.lastTrace=`${r} = ${l.value} ${u} ${m} -> ${c}`;return}if(l.kind==="double"){const m=this.evaluateDouble(o),c=l.value+a*m;t.set(r,at(c)),this.state.lastTrace=`${r} = ${ge(l)} ${u} ${ge(at(m))} -> ${ge(at(c))}`;return}throw Ze(e)}this.executeStatement(e)}parseAssignmentTarget(e){if(Gn(e))return{variableName:e.trim()};const t=e.split(/\s+/u).filter(Boolean);let n,a;if(t.length===1)n=t[0];else if(t.length===2&&Ft(t[0]))n=t[1],a=Ft(t[0]);else if(t.length===3&&t[0]==="const"&&Ft(t[1]))n=t[2],a=Ft(t[1]);else throw Ze(e);if(!t0(n))throw Ze(e);return{variableName:n,valueType:a}}parseInputRequest(e){const t=e.slice(6).trim(),n=/^(\S+)(?:\s+(\S+))?(?:\s+([\s\S]*))?$/u.exec(t);if(!n)throw Ze(e);const a=[n[1],n[2],n[3]].filter(m=>m!==void 0);let s,r,o;const l=Ft(a[0]);if(a.length>=2&&l?(s=a[1],r=l,o=(a[2]??"").trim()):(s=a[0],r=this.inferTargetValueType(s),o=(a[1]??"").trim()),!t0(s))throw Ze(e);const u=Re(o)??o;return{variableName:s,valueType:r,prompt:u===""?`${s}:`:u}}parseArrayDeclaration(e,t){const n=e.split(/\s+/u).filter(Boolean);if(n.length!==2||!n[0].endsWith("[]"))return;const a=n[0].endsWith("[][]"),s=n[0].slice(0,a?-4:-2),r=Ft(s),o=n[1];if(!r||!_1(o))throw Ze(e);if(a)return this.parseGridDeclaration(o,s,r,t);const l=t.trim();if(l.startsWith("{")&&l.endsWith("}")){const h=l.slice(1,-1).split(",").map(p=>p.trim());let g;switch(r){case"int":g={kind:"intArray",value:h.map(p=>this.evaluateInt(p))};break;case"double":g={kind:"doubleArray",value:h.map(p=>this.evaluateDouble(p))};break;case"string":g={kind:"stringArray",value:h.map(p=>Re(p)??this.evaluateOutputExpression(p))};break;case"boolean":g={kind:"booleanArray",value:h.map(p=>this.evaluateBool(p))};break}return{name:o,typeName:s,count:h.length,value:g}}const u=`new ${s}[`;if(!l.startsWith(u)){const h=this.evaluateStringMethod(l);if((h==null?void 0:h.kind)==="stringArray"&&r==="string")return{name:o,typeName:s,count:h.value.length,value:h}}if(!l.startsWith(u)||!l.endsWith("]"))throw Ze(t);const m=l.slice(u.length,-1),c=this.evaluateInt(m);if(c<0)throw N(m);const d=r==="int"?{kind:"intArray",value:new Array(c).fill(0)}:r==="double"?{kind:"doubleArray",value:new Array(c).fill(0)}:r==="boolean"?{kind:"booleanArray",value:new Array(c).fill(!1)}:{kind:"stringArray",value:new Array(c).fill("")};return{name:o,typeName:s,count:c,value:d}}parseGridDeclaration(e,t,n,a){var c;const s=a.trim(),r=d=>{switch(n){case"int":return this.evaluateInt(d);case"double":return this.evaluateDouble(d);case"boolean":return this.evaluateBool(d);case"string":return Re(d.trim())??this.evaluateOutputExpression(d)}};if(s.startsWith("{")&&s.endsWith("}")){const d=Fp(s.slice(1,-1)).map(h=>{const g=h.trim();if(!g.startsWith("{")||!g.endsWith("}"))throw N(g);return g.slice(1,-1).trim()===""?[]:g.slice(1,-1).split(",").map(p=>r(p.trim()))});return{name:e,typeName:t,count:`${d.length}][${((c=d[0])==null?void 0:c.length)??0}`,value:{kind:"grid",elementType:n,value:d}}}const o=new RegExp(String.raw`^new\s+${t}\s*\[(.+)\]\s*\[(.+)\]$`,"u").exec(s);if(!o)throw Ze(a);const l=this.evaluateInt(o[1]),u=this.evaluateInt(o[2]);if(l<0)throw N(o[1]);if(u<0)throw N(o[2]);const m={kind:"grid",elementType:n,value:Array.from({length:l},()=>new Array(u).fill(Bp(n)))};return{name:e,typeName:t,count:`${l}][${u}`,value:m}}arrayIndex(e){const t=this.evaluateInt(e);if(t<0)throw N(e);return t}evaluateReference(e){const t=e.trim(),n=this.state.variables.get(t);if(n)return n;const a=this.evaluateStringMethod(t);if(a)return a;const s=/^\(\s*char\s*\)\s*(.+)$/su.exec(t);if(s){const o=this.evaluateInt(s[1]);if(!(o>=0&&o<=1114111))throw N(t);return{kind:"string",value:String.fromCodePoint(o)}}const r=Gn(t);if(r)return this.valueInArray(r.arrayName,r.indexExpressions.map(o=>this.arrayIndex(o)))}evaluateStringMethod(e){const t=Np(e);if(!t)return;const n=this.evaluateStaticCall(e,t);if(n)return n;const a=this.state.variables.get(t.target.trim());if((a==null?void 0:a.kind)==="reader")return this.readerMethod(t.target.trim(),a,t,e);if((a==null?void 0:a.kind)==="null")throw new ke({kind:"nullValue",text:t.target.trim()});const s=Re(t.target)??this.stringValueOf(t.target);if(s===void 0)return;const r=t.args,o=d=>{const h=r[d];if(h===void 0)throw N(e);const g=Re(h.trim());if(g!==void 0)return g;const p=this.evaluateReference(h);if((p==null?void 0:p.kind)==="string")return p.value;throw N(h)},l=d=>{if(r[d]===void 0)throw N(e);return this.evaluateInt(r[d])},u=d=>{if(r.length!==d)throw N(e)},m=Array.from(s),c=(d,h)=>{if(d<0||d>h)throw N(e);return d};switch(t.method){case"length":return u(0),nt(m.length);case"charAt":return u(1),{kind:"string",value:m[c(l(0),m.length-1)]};case"substring":{if(r.length!==1&&r.length!==2)throw N(e);const d=c(l(0),m.length),h=r.length===2?c(l(1),m.length):m.length;if(h0&&h[h.length-1]==="";)h.pop();return{kind:"stringArray",value:h}}default:return}}evaluateStaticCall(e,t){const n=()=>{if(t.args.length!==1)throw N(e);return t.args[0]},a=s=>{const r=Re(s.trim());if(r!==void 0)return r;const o=this.evaluateReference(s);if((o==null?void 0:o.kind)==="string")return o.value;throw N(s)};switch(`${t.target}.${t.method}`){case"Integer.parseInt":{const s=a(n()).trim();if(!/^[+-]?\d+$/u.test(s))throw new ke({kind:"wholeNumberExpected"});return nt(Number(s))}case"Double.parseDouble":{const s=Number(a(n()).trim());if(!Number.isFinite(s))throw new ke({kind:"numberExpected"});return at(s)}case"String.valueOf":return{kind:"string",value:this.evaluateOutputExpression(n())};case"Files.readString":{const s=/^(?:Path\s*\.\s*of|Paths\s*\.\s*get)\s*\(\s*("(?:[^"\\]|\\.)*")\s*\)$/u.exec(n().trim());if(!s)throw N(e);const r=Re(s[1]),o=di.get(r);if(o===void 0)throw new ke({kind:"fileNotFound",text:r});return{kind:"string",value:o}}default:return}}stringValueOf(e){const t=e.trim(),n=this.state.variables.get(t);if(n)return n.kind==="string"?n.value:void 0;const a=Gn(t);if(!a)return;const s=this.valueInArray(a.arrayName,a.indexExpressions.map(r=>this.arrayIndex(r)));return s.kind==="string"?s.value:void 0}substituteStringCalls(e){if(!e.includes("("))return e;let t="",n=e;const a=/([A-Za-z_]\w*(?:\[[^\[\]]*\])*|"(?:[^"\\]|\\.)*")\s*\.\s*(length|indexOf|lastIndexOf|compareTo|charAt|parseInt|parseDouble)\s*\(/u;for(let s=a.exec(n);s;s=a.exec(n)){const r=s.index+s[0].length-1,o=Hi(Array.from(n),Array.from(n.slice(0,r)).length);if(o===void 0)break;const l=Array.from(n),u=l.slice(Array.from(n.slice(0,s.index)).length,o+1).join(""),m=this.evaluateStringMethod(u),c=l.slice(0,Array.from(n.slice(0,s.index)).length).join(""),d=(m==null?void 0:m.kind)==="string"?gr(m.value):void 0;(m==null?void 0:m.kind)==="int"?t+=c+String(m.value):(m==null?void 0:m.kind)==="double"?t+=c+(Number.isInteger(m.value)?m.value.toFixed(1):String(m.value)):d!==void 0?t+=c+String(d):t+=c+u,n=l.slice(o+1).join("")}return t+n}valueInArray(e,t){const n=this.state.variables.get(e);if(!n)throw S1(e);const a=`${e}[${t.join("][")}]`;if(n.kind==="grid"){if(t.length!==2)throw N(a);const r=n.value[t[0]];if(!r||t[1]>=r.length)throw N(a);return pc(n.elementType,r[t[1]])}if(t.length!==1)throw N(a);const s=t[0];if(!hr(n))throw N(e);if(s>=n.value.length)throw N(a);switch(n.kind){case"intArray":return nt(n.value[s]);case"doubleArray":return at(n.value[s]);case"stringArray":return{kind:"string",value:n.value[s]};case"booleanArray":return{kind:"boolean",value:n.value[s]};default:throw N(e)}}inferTargetValueType(e){const t=e.trim(),n=this.state.variables.get(t);if(n)return Kl(n);const a=Gn(t);if(a){const s=this.state.variables.get(a.arrayName);if(!s)throw S1(a.arrayName);if(s.kind==="intArray")return"int";if(s.kind==="doubleArray")return"double";if(s.kind==="stringArray")return"string";if(s.kind==="booleanArray")return"boolean";if(s.kind==="grid")return s.elementType;throw N(a.arrayName)}throw Ze(e)}assignValue(e,t){const n=t.trim(),a=Gn(n);if(!a){this.state.variables.set(n,e);return}const s=a.indexExpressions.map(u=>this.arrayIndex(u)),r=this.state.variables.get(a.arrayName);if(!r)throw S1(a.arrayName);if(r.kind==="grid"){if(s.length!==2||s[0]>=r.value.length||s[1]>=r.value[s[0]].length)throw N(n);const u=r.elementType==="double"&&e.kind==="int"||e.kind===r.elementType?e.value:void 0;if(u===void 0||hr(e))throw N(n);const m=r.value.map(c=>[...c]);m[s[0]][s[1]]=u,this.state.variables.set(a.arrayName,{...r,value:m});return}if(s.length!==1)throw N(n);const o=s[0];let l;if(r.kind==="intArray"&&e.kind==="int")l={kind:"intArray",value:[...r.value]};else if(r.kind==="doubleArray"&&(e.kind==="double"||e.kind==="int"))l={kind:"doubleArray",value:[...r.value]};else if(r.kind==="stringArray"&&e.kind==="string")l={kind:"stringArray",value:[...r.value]};else if(r.kind==="booleanArray"&&e.kind==="boolean")l={kind:"booleanArray",value:[...r.value]};else throw N(n);if(o>=l.value.length)throw N(n);l.value[o]=e.value,this.state.variables.set(a.arrayName,l)}evaluateOutputExpression(e){let t,n;for(const a of n0(e)){const s=a.trim(),r=Re(s),o=r!==void 0?{kind:"string",value:r}:this.evaluateReference(s)??this.evaluateNumeric(s),l=o.kind==="int"||o.kind==="double";if(n===void 0&&l){t?t=t.kind==="int"&&o.kind==="int"?nt(t.value+o.value):at(t.value+o.value):t=o;continue}n=(n??(t?ge(t):""))+ge(o),t=void 0}return n??(t?ge(t):"")}renderOutputExpression(e){return n0(e).map(t=>{const n=t.trim();if(Re(n)!==void 0)return n;const a=this.evaluateReference(n);if(a)return ge(a);try{return this.renderNumericExpression(n)}catch{return n}}).join(" + ")}evaluateExpression(e,t){switch(t){case"int":return nt(this.evaluateInt(e));case"double":return at(this.evaluateDouble(e));case"string":{const n=e.trim(),a=Re(n);if(a!==void 0)return{kind:"string",value:a};if(n==="null")return{kind:"null"};const s=this.evaluateReference(n);return(s==null?void 0:s.kind)==="null"?s:s?{kind:"string",value:ge(s)}:{kind:"string",value:this.evaluateOutputExpression(e)}}case"boolean":return{kind:"boolean",value:this.evaluateBool(e)}}}evaluateNumeric(e){const{v:t,int:n}=this.parser(e).parseNumber();return n||Number.isFinite(t)&&Math.round(t)===t?nt(t):at(t)}parser(e){return new Jp(a0(e0(this.substituteStringCalls(e))),this.state.variables)}evaluateInt(e){return this.parser(e).parseInt()}evaluateDouble(e){return this.parser(e).parseDouble()}evaluateBool(e){const t=e.trim();if(t==="true")return!0;if(t==="false")return!1;const n=this.evaluateReference(t);if((n==null?void 0:n.kind)==="boolean")return n.value;const a=gi(t,"||");if(a.length>1)return a.some(u=>this.evaluateBool(u));const s=gi(t,"&&");if(s.length>1)return s.every(u=>this.evaluateBool(u));if(t.startsWith("!")&&!t.startsWith("!="))return!this.evaluateBool(t.slice(1));const r=fc(t);if(r!==void 0)return this.evaluateBool(r);const o=Ep(t);if(o)return this.evaluateComparison(o.lhs,"==",o.rhs);const l=Lp(t);if(l)return this.evaluateComparison(l.lhs,l.op,l.rhs);if(this.stringOperand(t)!==void 0)throw N(t);return this.evaluateDouble(t)!==0}evaluateComparison(e,t,n){if((e.trim()==="null"||n.trim()==="null")&&(t==="=="||t==="!=")){const m=d=>{var h;return d.trim()==="null"||((h=this.evaluateReference(d))==null?void 0:h.kind)==="null"},c=m(e)===m(n);return t==="=="?c:!c}const a=this.booleanOperand(e),s=this.booleanOperand(n);if((a!==void 0||s!==void 0)&&(t==="=="||t==="!=")){const m=a??this.evaluateBool(e),c=s??this.evaluateBool(n);return t==="=="?m===c:m!==c}const r=this.stringOperand(e),o=this.stringOperand(n);let l,u;if(r!==void 0||o!==void 0){if(r===void 0||o===void 0)throw N(`${e} ${t} ${n}`);l=r,u=o}else l=this.evaluateDouble(e),u=this.evaluateDouble(n);switch(t){case"==":return l===u;case"!=":return l!==u;case"<":return l":return l>u;case">=":return l>=u;default:throw N(`${e} ${t} ${n}`)}}booleanOperand(e){const t=e.trim();if(t==="true")return!0;if(t==="false")return!1;const n=this.evaluateReference(t);return(n==null?void 0:n.kind)==="boolean"?n.value:void 0}stringOperand(e){const t=e.trim(),n=Re(t);if(n!==void 0)return n;const a=this.evaluateReference(t);return(a==null?void 0:a.kind)==="string"?a.value:void 0}evaluateSwitchSelector(e){const t=e.trim(),n=Re(t);if(n!==void 0)return{kind:"text",value:n};const a=this.state.variables.get(t);if(a)switch(a.kind){case"int":return{kind:"int",value:a.value};case"double":return{kind:"int",value:Math.trunc(a.value)};case"string":return{kind:"text",value:a.value};default:throw N(t)}return/^[+-]?[0-9]+$/.test(t)?{kind:"int",value:Number(t)}:{kind:"int",value:this.evaluateInt(t)}}renderNumericExpression(e){return a0(e0(e)).map(t=>{if(t.t==="number")return t.literal;if(t.t==="identifier"){const n=this.state.variables.get(t.name);if(!n)throw S1(t.name);return ge(n)}return t.t}).join(" ").replaceAll("( ","(").replaceAll(" )",")").replaceAll(" . ",".").replaceAll("[ ","[").replaceAll(" ]","]")}}const bc={baseIndent:0,indentPerLevel:4,includeDiagramTextAsComments:!1,includeEmptyElseBranch:!0,pseudocodeNote:"Pseudocode – not a runnable program"};function yc(i,e,t={},n=[]){const a=Wo(i,e,t);let s="";e==="javascript"&&(s+=`"use strict"; -`);const r=[i,...e==="java"?[]:n];if(e==="python"&&r.some(Zc)&&(s+=`import random +`);const r=[i,...e==="java"?[]:n];if(e==="python"&&r.some(Mc)&&(s+=`import random `),e!=="java"&&(s+=br(r,e)),e==="java"&&yi(i)&&(s+=`// import java.util.Scanner; `,s+=`Scanner scanner = new Scanner(System.in); @@ -21,49 +21,49 @@ var Fg=Object.defineProperty;var Jg=(i,e,t)=>e in i?Fg(i,e,{enumerable:!0,config `),i.pseudocode&&(s+=(e==="python"?"# ":"// ")+a.pseudocodeNote+` `),e!=="java")for(const u of n){if(u===i)continue;const m=dt(u.caption);m&&(s+=fr(u,m,e,t,0)+` -`)}const o=dt(i.caption),l={out:""};if(o)l.out=fr(i,o,e,t,a.baseIndent);else for(const u of i.elements)Ui(u,e,a,a.baseIndent,l);if(s+=l.out,s.trim()===""){const u=Hp(e);return e==="javascript"?`"use strict"; +`)}const o=dt(i.caption),l={out:""};if(o)l.out=fr(i,o,e,t,a.baseIndent);else for(const u of i.elements)Ui(u,e,a,a.baseIndent,l);if(s+=l.out,s.trim()===""){const u=Vp(e);return e==="javascript"?`"use strict"; -`+u:u}return Wc(s.replace(/^[\n\r]+|[\n\r]+$/g,""),e)}function Bo(i,e,t){const n={...xc,...t,jsIntVariables:new Set,arrayElementTypes:ef(i),stringVariables:Kp(i)};return e!=="java"&&(n.jsIntVariables=zf(i)),n}const s0=i=>i==="string"?"String":i===void 0?"void":i;function yc(i){const e=i.params.map(t=>`${s0(t.type)}${"[]".repeat(t.dims??0)} ${t.name}`).join(", ");return`public static ${s0(i.returnType)} ${i.name}(${e}) {`}function fr(i,e,t,n,a){const s=Bo(i,t,n);for(const l of e.params)l.dims||(l.type==="int"&&s.jsIntVariables.add(l.name),l.type==="string"&&s.stringVariables.add(l.name));const r=e.params.map(l=>l.name).join(", "),o={out:""};for(const l of i.elements)Ui(l,t,s,a+s.indentPerLevel,o);switch(o.out.trim()===""&&(o.out=D(a+s.indentPerLevel)+(t==="python"?`pass +`+u:u}return Lc(s.replace(/^[\n\r]+|[\n\r]+$/g,""),e)}function Wo(i,e,t){const n={...bc,...t,jsIntVariables:new Set,arrayElementTypes:nf(i),stringVariables:tf(i)};return e!=="java"&&(n.jsIntVariables=kf(i)),n}const r0=i=>i==="string"?"String":i===void 0?"void":i;function vc(i){const e=i.params.map(t=>`${r0(t.type)}${"[]".repeat(t.dims??0)} ${t.name}`).join(", ");return`public static ${r0(i.returnType)} ${i.name}(${e}) {`}function fr(i,e,t,n,a){const s=Wo(i,t,n);for(const l of e.params)l.dims||(l.type==="int"&&s.jsIntVariables.add(l.name),l.type==="string"&&s.stringVariables.add(l.name));const r=e.params.map(l=>l.name).join(", "),o={out:""};for(const l of i.elements)Ui(l,t,s,a+s.indentPerLevel,o);switch(o.out.trim()===""&&(o.out=D(a+s.indentPerLevel)+(t==="python"?`pass `:` -`)),t){case"java":return`${D(a)}${yc(e)} +`)),t){case"java":return`${D(a)}${vc(e)} ${o.out}${D(a)}} `;case"python":return`${D(a)}def ${e.name}(${r}): ${o.out}`;case"javascript":return`${D(a)}function ${e.name}(${r}) { ${o.out}${D(a)}} -`}}const D=i=>i>0?" ".repeat(i):"";function ie(i,e){const t=i.exec(e);return t?Array.from(t,n=>n??""):void 0}function Hp(i,e){return i==="python"?"# empty element":"// empty element"}const xr=i=>i.trim()==="ø";function vc(i,e){return D(i)+(e==="python"?`# empty element +`}}const D=i=>i>0?" ".repeat(i):"";function ie(i,e){const t=i.exec(e);return t?Array.from(t,n=>n??""):void 0}function Vp(i,e){return i==="python"?"# empty element":"// empty element"}const xr=i=>i.trim()==="ø";function wc(i,e){return D(i)+(e==="python"?`# empty element `:`// empty element -`)}function Qp(i){switch(i.type){case T.leerElement:return!0;case T.anweisung:case T.aufruf:return i.textLines.map(e=>e.trim()).every(e=>e===""||xr(e));default:return!1}}function Vp(i){return i.every(Qp)}function Wo(i,e,t){const n=i.map(a=>a.replace(/^[ \t]+|[ \t]+$/g,"")).filter(a=>a!=="");return n.length===0?"":e==="python"?D(t)+`""" +`)}function qp(i){switch(i.type){case T.leerElement:return!0;case T.anweisung:case T.aufruf:return i.textLines.map(e=>e.trim()).every(e=>e===""||xr(e));default:return!1}}function Up(i){return i.every(qp)}function Lo(i,e,t){const n=i.map(a=>a.replace(/^[ \t]+|[ \t]+$/g,"")).filter(a=>a!=="");return n.length===0?"":e==="python"?D(t)+`""" `+n.map(a=>D(t)+a+` `).join("")+D(t)+`""" `:n.length===1?D(t)+"/* "+n[0]+` */ `:D(t)+`/* `+n.map(a=>D(t)+" * "+a+` `).join("")+D(t)+` */ -`}const qp=i=>i==="java"||i==="javascript";function xi(i){const e=i.trim();if(e==="")return"";if(e.startsWith("//")||e.startsWith("/*")||e.startsWith("*")||e.startsWith("#")||e.startsWith("{")||e.startsWith("}")||e.endsWith("{")||e.endsWith(";"))return e;const t=e.toLowerCase();for(const n of["if ","else","for ","while ","do ","switch ","case ","default"])if(t.startsWith(n))return e;return e+";"}function Xa(i){const e=i.map(t=>t.trim()).filter(t=>t!=="");return Up(e.length===0?"true":e.join(" "))}function Up(i){const e=i.trim();for(const t of["if","while","until","switch"]){const n=wc(t,e);if(n!==void 0)return n===""?"true":n}return e}function wc(i,e){if(!e.toLowerCase().startsWith(i))return;const t=e.slice(i.length);if(!(t===""||/^\s/.test(t)||t[0]==="("))return;let n=t.trim();return n.startsWith("(")&&n.endsWith(")")&&n.length>=2&&(n=n.slice(1,-1).trim()),n}function Wt(i){let e=i.trim();for(;e.endsWith(";");)e=e.slice(0,-1).trim();return e}function $p(i){const e=i.trim(),t=e.toLowerCase();let n;if(t.startsWith("output:"))n=e.slice(7).trim();else if(t.startsWith("print:"))n=e.slice(6).trim();else return;return n===""?void 0:n}const Qi=i=>i.name.includes("[")&&i.name.includes("]");function Lo(i){const e=i.trim();if(e==="")return;const t=ie(/^\s*(integer|int|long|float|double|string|boolean|char|bool)\s+([a-zA-Z_]\w*(?:\s*\[[^\]]+\])?)(?:\s+"([^"]*)")?\s*$/i,e);if(t){const s=t[2].replaceAll(" ","");if(s==="")return;const r=(t[3]??"").trim();return{type:bi(t[1]),name:s,customPrompt:r===""?void 0:r}}const n=ie(/^\s*([a-zA-Z_]\w*(?:\s*\[[^\]]+\])?)\s+"([^"]*)"\s*$/i,e);if(n){const s=n[1].replaceAll(" ","");return["int","integer","long","float","double","string","boolean","char","bool","void"].includes(s.toLowerCase())?void 0:{type:s.includes("[")?"String":"int",name:s,customPrompt:n[2].trim()}}const a=Yp(e);if(a)return{type:bi(a[0]),name:a[1]}}function bi(i){switch(i.trim().toLowerCase()){case"integer":case"int":return"int";case"long":return"long";case"float":return"float";case"double":return"double";case"string":return"String";case"boolean":case"bool":return"boolean";case"char":return"char";default:return i}}function Yp(i){const e=i.split(/[ \t]+/).filter(Boolean);if(e.length===0)return;if(e.length>=2)return[e[0],e[1]];if(!["int","double","string","boolean","char","long","float","short","byte","void","bool","integer"].includes(e[0].toLowerCase()))return["int",e[0]]}function Xp(i,e,t,n,a){const s=Wt(i).trim();if(s.startsWith('"'))switch(e){case"java":return D(t)+"System.out.println("+s+`); +`}const $p=i=>i==="java"||i==="javascript";function xi(i){const e=i.trim();if(e==="")return"";if(e.startsWith("//")||e.startsWith("/*")||e.startsWith("*")||e.startsWith("#")||e.startsWith("{")||e.startsWith("}")||e.endsWith("{")||e.endsWith(";"))return e;const t=e.toLowerCase();for(const n of["if ","else","for ","while ","do ","switch ","case ","default"])if(t.startsWith(n))return e;return e+";"}function Xa(i){const e=i.map(t=>t.trim()).filter(t=>t!=="");return Yp(e.length===0?"true":e.join(" "))}function Yp(i){const e=i.trim();for(const t of["if","while","until","switch"]){const n=zc(t,e);if(n!==void 0)return n===""?"true":n}return e}function zc(i,e){if(!e.toLowerCase().startsWith(i))return;const t=e.slice(i.length);if(!(t===""||/^\s/.test(t)||t[0]==="("))return;let n=t.trim();return n.startsWith("(")&&n.endsWith(")")&&n.length>=2&&(n=n.slice(1,-1).trim()),n}function Wt(i){let e=i.trim();for(;e.endsWith(";");)e=e.slice(0,-1).trim();return e}function Xp(i){const e=i.trim(),t=e.toLowerCase();let n;if(t.startsWith("output:"))n=e.slice(7).trim();else if(t.startsWith("print:"))n=e.slice(6).trim();else return;return n===""?void 0:n}const Qi=i=>i.name.includes("[")&&i.name.includes("]");function Eo(i){const e=i.trim();if(e==="")return;const t=ie(/^\s*(integer|int|long|float|double|string|boolean|char|bool)\s+([a-zA-Z_]\w*(?:\s*\[[^\]]+\])?)(?:\s+"([^"]*)")?\s*$/i,e);if(t){const s=t[2].replaceAll(" ","");if(s==="")return;const r=(t[3]??"").trim();return{type:bi(t[1]),name:s,customPrompt:r===""?void 0:r}}const n=ie(/^\s*([a-zA-Z_]\w*(?:\s*\[[^\]]+\])?)\s+"([^"]*)"\s*$/i,e);if(n){const s=n[1].replaceAll(" ","");return["int","integer","long","float","double","string","boolean","char","bool","void"].includes(s.toLowerCase())?void 0:{type:s.includes("[")?"String":"int",name:s,customPrompt:n[2].trim()}}const a=Kp(e);if(a)return{type:bi(a[0]),name:a[1]}}function bi(i){switch(i.trim().toLowerCase()){case"integer":case"int":return"int";case"long":return"long";case"float":return"float";case"double":return"double";case"string":return"String";case"boolean":case"bool":return"boolean";case"char":return"char";default:return i}}function Kp(i){const e=i.split(/[ \t]+/).filter(Boolean);if(e.length===0)return;if(e.length>=2)return[e[0],e[1]];if(!["int","double","string","boolean","char","long","float","short","byte","void","bool","integer"].includes(e[0].toLowerCase()))return["int",e[0]]}function ef(i,e,t,n,a){const s=Wt(i).trim();if(s.startsWith('"'))switch(e){case"java":return D(t)+"System.out.println("+s+`); `;case"javascript":return D(t)+"console.log("+s+`); `;case"python":return D(t)+"print("+Wn(s,n,a)+`) `}}function H1(i){return i.replaceAll("\\","\\\\").replaceAll('"','\\"').replaceAll(` -`,"\\n").replaceAll("\r","\\r")}function Eo(i,e){const t=i.trim();if(!t.toLowerCase().startsWith("input:"))return;const n=t.slice(6).trim();if(n==="")return;const a=Lo(n);if(a&&Qi(a)&&!/^\s*(integer|int|long|float|double|string|boolean|char|bool)\s/i.test(n)){const s=e.get(a.name.slice(0,a.name.indexOf("[")).trim());if(s)return{...a,type:s}}return a}function Kp(i){const e=new Set;return $t(i.elements,t=>{for(const n of t.textLines){const a=n.trim();if(a.toLowerCase().startsWith("input:")){const o=Lo(a.slice(6).trim());(o==null?void 0:o.type)==="String"&&!Qi(o)&&e.add(o.name);continue}const s=ie(/^\s*(?:const\s+)?string\s+([a-zA-Z_]\w*)\s*=/i,a);s&&e.add(s[1]);const r=ie(/^\s*string\s*\[\s*\]\s*([a-zA-Z_]\w*)\s*=/i,a);r&&e.add(r[1]+"[]")}}),e}function ef(i){const e=new Map;return $t(i.elements,t=>{for(const n of t.textLines){const a=ie(/^\s*(integer|int|long|float|double|string|boolean|char|bool)\s*\[\s*\]\s*([a-zA-Z_]\w*)/i,n)??ie(/^\s*(integer|int|long|float|double|string|boolean|char|bool)\s+([a-zA-Z_]\w*)\s*\[\s*\]/i,n);a&&e.set(a[2],bi(a[1]))}}),e}function tf(i,e,t){const n=Eo(i,t);if(!n)return;const a=n.customPrompt?n.customPrompt:n.name+": ",s=D(e)+'System.out.println("'+H1(a)+`"); +`,"\\n").replaceAll("\r","\\r")}function No(i,e){const t=i.trim();if(!t.toLowerCase().startsWith("input:"))return;const n=t.slice(6).trim();if(n==="")return;const a=Eo(n);if(a&&Qi(a)&&!/^\s*(integer|int|long|float|double|string|boolean|char|bool)\s/i.test(n)){const s=e.get(a.name.slice(0,a.name.indexOf("[")).trim());if(s)return{...a,type:s}}return a}function tf(i){const e=new Set;return $t(i.elements,t=>{for(const n of t.textLines){const a=n.trim();if(a.toLowerCase().startsWith("input:")){const o=Eo(a.slice(6).trim());(o==null?void 0:o.type)==="String"&&!Qi(o)&&e.add(o.name);continue}const s=ie(/^\s*(?:const\s+)?string\s+([a-zA-Z_]\w*)\s*=/i,a);s&&e.add(s[1]);const r=ie(/^\s*string\s*\[\s*\]\s*([a-zA-Z_]\w*)\s*=/i,a);r&&e.add(r[1]+"[]")}}),e}function nf(i){const e=new Map;return $t(i.elements,t=>{for(const n of t.textLines){const a=ie(/^\s*(integer|int|long|float|double|string|boolean|char|bool)\s*\[\s*\]\s*([a-zA-Z_]\w*)/i,n)??ie(/^\s*(integer|int|long|float|double|string|boolean|char|bool)\s+([a-zA-Z_]\w*)\s*\[\s*\]/i,n);a&&e.set(a[2],bi(a[1]))}}),e}function af(i,e,t){const n=No(i,t);if(!n)return;const a=n.customPrompt?n.customPrompt:n.name+": ",s=D(e)+'System.out.println("'+H1(a)+`"); `,r=o=>Qi(n)?n.name:`${o} ${n.name}`;switch(n.type){case"int":return s+D(e)+`${r("int")} = scanner.nextInt(); `;case"double":return s+D(e)+`${r("double")} = scanner.nextDouble(); `;case"String":return s+D(e)+`${r("String")} = scanner.next(); `;case"boolean":return s+D(e)+`${r("boolean")} = scanner.nextBoolean(); -`;default:return}}function nf(i,e,t){const n=Eo(i,t);if(!n)return;const a=!!n.customPrompt,s=a?"":D(e)+'console.log("'+H1(n.name+": ")+`"); +`;default:return}}function sf(i,e,t){const n=No(i,t);if(!n)return;const a=!!n.customPrompt,s=a?"":D(e)+'console.log("'+H1(n.name+": ")+`"); `,r=l=>{const u=a?n.customPrompt:n.name+": ";return`(prompt("${H1(u)}") ?? "${l}")`},o=Qi(n)?n.name:`let ${n.name}`;switch(n.type){case"int":return s+D(e)+`${o} = parseInt(${r("0")}, 10); `;case"double":return s+D(e)+`${o} = Number(${r("0")}); `;case"String":return s+D(e)+`${o} = ${r("")}; `;case"boolean":return s+D(e)+`${o} = ${r("")}.trim().toLowerCase() === "true"; -`;default:return}}function af(i,e,t){const n=Eo(i,t);if(!n)return;const a=!!n.customPrompt,s=a?"":D(e)+'print("'+H1(n.name+": ")+`") +`;default:return}}function rf(i,e,t){const n=No(i,t);if(!n)return;const a=!!n.customPrompt,s=a?"":D(e)+'print("'+H1(n.name+": ")+`") `,r=`input("${H1(a?n.customPrompt:n.name+": ")}")`;switch(n.type){case"int":return s+D(e)+`${n.name} = int(${r}) `;case"double":return s+D(e)+`${n.name} = float(${r}) `;case"String":return s+D(e)+`${n.name} = ${r} `;case"boolean":return s+D(e)+`${n.name} = ${r}.strip().lower() in ("true", "wahr") -`;default:return}}const ps=String.raw`("(?:[^"\\]|\\.)*"|[A-Za-z_]\w*)`,sf=[[new RegExp(String.raw`^new\s+Scanner\s*\(\s*new\s+File\s*\(\s*${ps}\s*\)\s*\)$`),"Scanner"],[new RegExp(String.raw`^new\s+BufferedReader\s*\(\s*new\s+FileReader\s*\(\s*${ps}\s*\)\s*\)$`),"BufferedReader"],[new RegExp(String.raw`^new\s+PrintWriter\s*\(\s*(?:new\s+(?:File|FileWriter)\s*\(\s*)?${ps}\s*\)?\s*\)$`),"PrintWriter"]];function zc(i){const e=i.trim();for(const[t,n]of sf){const a=t.exec(e);if(a)return{kind:n,name:a[1]}}}function rf(i,e,t,n,a){if(e==="java")return;const s=Wt(i).trim(),r=/^(?:(?:Scanner|BufferedReader|PrintWriter)\s+)?([A-Za-z_]\w*)\s*=\s*(new\s[\s\S]+)$/.exec(s),o=r&&zc(r[2]);if(r&&o){const m=/^(?:Scanner|BufferedReader|PrintWriter)\s/.test(s);return e==="python"?D(t)+`${r[1]} = ${o.kind}(${o.name}) +`;default:return}}const ps=String.raw`("(?:[^"\\]|\\.)*"|[A-Za-z_]\w*)`,of=[[new RegExp(String.raw`^new\s+Scanner\s*\(\s*new\s+File\s*\(\s*${ps}\s*\)\s*\)$`),"Scanner"],[new RegExp(String.raw`^new\s+BufferedReader\s*\(\s*new\s+FileReader\s*\(\s*${ps}\s*\)\s*\)$`),"BufferedReader"],[new RegExp(String.raw`^new\s+PrintWriter\s*\(\s*(?:new\s+(?:File|FileWriter)\s*\(\s*)?${ps}\s*\)?\s*\)$`),"PrintWriter"]];function Ic(i){const e=i.trim();for(const[t,n]of of){const a=t.exec(e);if(a)return{kind:n,name:a[1]}}}function lf(i,e,t,n,a){if(e==="java")return;const s=Wt(i).trim(),r=/^(?:(?:Scanner|BufferedReader|PrintWriter)\s+)?([A-Za-z_]\w*)\s*=\s*(new\s[\s\S]+)$/.exec(s),o=r&&Ic(r[2]);if(r&&o){const m=/^(?:Scanner|BufferedReader|PrintWriter)\s/.test(s);return e==="python"?D(t)+`${r[1]} = ${o.kind}(${o.name}) `:D(t)+`${m?"let ":""}${r[1]} = new ${o.kind}(${o.name}); `}const l=/^([A-Za-z_]\w*)\.(println|print)\s*\(([\s\S]*)\)$/.exec(s);if(l&&l[1]!=="System"){const m=l[3].trim(),c=e==="python"&&m!==""?Wn(m,n,a):m;return D(t)+`${l[1]}.${l[2]}(${c})${e==="javascript"?";":""} `}const u=/^Files\.writeString\s*\(\s*(?:Path\.of|Paths\.get)\s*\(\s*("(?:[^"\\]|\\.)*")\s*\)\s*,\s*([\s\S]+)\)$/.exec(s);if(u){const m=u[2].trim();return e==="python"?D(t)+`open(${u[1]}, "w", encoding="utf-8").write(${Wn(m,n,a)}) `:D(t)+`require("fs").writeFileSync(${u[1]}, ${m}); -`}}function of(i){const e=new Set;for(const t of i)$t(t.elements,n=>{for(const a of n.textLines){const s=/=\s*(new\s.+?);?\s*$/.exec(a),r=s&&zc(s[1]);r&&e.add(r.kind)}});return e}const lf={Scanner:`class Scanner: +`}}function uf(i){const e=new Set;for(const t of i)$t(t.elements,n=>{for(const a of n.textLines){const s=/=\s*(new\s.+?);?\s*$/.exec(a),r=s&&Ic(s[1]);r&&e.add(r.kind)}});return e}const mf={Scanner:`class Scanner: def __init__(self, name): self.lines = open(name, encoding="utf-8").read().splitlines() def hasNextLine(self): @@ -88,7 +88,7 @@ ${o.out}${D(a)}} self.file.write(str(text)) def close(self): self.file.close() -`},uf={Scanner:`class Scanner { +`},cf={Scanner:`class Scanner { constructor(name) { this.lines = require("fs").readFileSync(name, "utf8").split(/\\r?\\n/); if (this.lines.at(-1) === "") this.lines.pop(); } hasNextLine() { return this.lines.length > 0; } nextLine() { return this.lines.shift(); } @@ -105,31 +105,31 @@ ${o.out}${D(a)}} print(text) { this.text += text; } close() { require("fs").writeFileSync(this.name, this.text); } } -`};function br(i,e){const t=of(i);if(t.size===0)return"";const n=e==="python"?lf:uf;return[...t].map(a=>n[a]).join(` +`};function br(i,e){const t=uf(i);if(t.size===0)return"";const n=e==="python"?mf:cf;return[...t].map(a=>n[a]).join(` `)+` -`}function mf(i,e,t,n,a){const s=$p(i);if(s===void 0)return/^\s*(?:output|print):\s*$/i.test(i)?D(t)+{java:"System.out.println();",javascript:"console.log();",python:"print()"}[e]+` +`}function df(i,e,t,n,a){const s=Xp(i);if(s===void 0)return/^\s*(?:output|print):\s*$/i.test(i)?D(t)+{java:"System.out.println();",javascript:"console.log();",python:"print()"}[e]+` `:void 0;switch(e){case"java":return D(t)+"System.out.println("+s+`); `;case"javascript":return D(t)+"console.log("+s+`); `;case"python":return D(t)+"print("+Wn(s,n,a)+`) -`}}function No(i){const e=i.map(Wt).filter(t=>t!=="");return e.length===0?";;":e.join("; ")}function cf(i){const t=No(i).split(";"),n=Ic(t[0]);return n!==void 0&&(t[0]=n),t.join(";")}function Ic(i){const e=ie(/^(\s*)(?:integer|int|long|float|double|string|boolean|char|bool)\s+(\w+)(?:\s*=\s*(.*))?\s*$/i,i);if(!e)return;const t=e[2].trim();if(t==="")return;const n=(e[3]??"").trim();return i.includes("=")&&n!==""?e[1]+`let ${t} = ${n}`:e[1]+`let ${t}`}function df(i){const e=i.map(n=>Wt(n).trim()).filter(n=>n!=="");let t=e;if(e.length===1){let n=e[0];const a=wc("for",n);a!==void 0&&(n=a),t=n.split(";").map(s=>s.trim())}if(!(t.length!==3||t.some(n=>n==="")))return[t[0],t[1],t[2]]}function kc(i,e){let t=ie(/^\s*(\w+)\s*(\+\+|--)\s*$/,i)??ie(/^\s*(\+\+|--)\s*(\w+)\s*$/,i);if(t){const[n,a]=t[1]==="++"||t[1]==="--"?[t[2],t[1]]:[t[1],t[2]];return n===e?a==="++"?1:-1:void 0}if(t=ie(/^\s*(\w+)\s*(\+|-)=\s*(\d+)\s*$/,i),t)return t[1]===e?(t[2]==="+"?1:-1)*Number(t[3]):void 0;if(t=ie(/^\s*(\w+)\s*=\s*(\w+)\s*(\+|-)\s*(\d+)\s*$/,i),t)return t[1]===e&&t[2]===e?(t[3]==="+"?1:-1)*Number(t[4]):void 0}function yr(i,e){if(/^-?\d+$/.test(i))return String(Number(i)+e);const t=/^[\w.()[\]]+$/.test(i)?i:`(${i})`;return e>0?`${t} + ${e}`:`${t} - ${-e}`}function hf(i,e){const t=df(i);if(!t)return;const[n,a,s]=t,r=ie(/^\s*(?:integer|int|long|short|byte|double|float)?\s*([a-zA-Z_]\w*)\s*=\s*(.+)$/i,n);if(!r)return;const o=r[1],l={variable:o,init:`${o} = ${be(r[2],e)}`,condition:a,increment:s},u=ie(/^\s*(\w+)\s*(<=|<|>=|>)\s*(.+)$/,a),m=kc(s,o);if(!u||u[1]!==o||m===void 0||m===0)return l;const c=be(r[2],e);let d=be(u[3],e);const h=u[2];if(m>0&&h==="<=")d=yr(d,1);else if(m<0&&h===">=")d=yr(d,-1);else if(!(m>0&&h==="<")&&!(m<0&&h===">"))return l;const g=m===1?c==="0"?[d]:[c,d]:[c,d,String(m)];return l.rangeLine=`for ${o} in range(${g.join(", ")}):`,l}function Sc(i){const e=Wt(i).trim();if(e==="")return;const t=ie(/^\s*const\s+(integer|int|long|float|double|string|boolean|char|bool)\s+(\w+)(?:\s*=\s*(.*))?$/i,e);if(!t)return;const n=t[2].trim();if(n==="")return;if(!e.includes("="))return{rawType:t[1].trim(),name:n};const a=(t[3]??"").trim();if(a!=="")return{rawType:t[1].trim(),name:n,rhs:a}}function gf(i,e,t,n){var o;const a=Sc(i);if(!a)return;const s=bi(a.rawType),r=(o=a.rhs)==null?void 0:o.trim();switch(e){case"java":return D(t)+xi(r?`final ${s} ${a.name} = ${r}`:`final ${s} ${a.name}`)+` +`}}function Fo(i){const e=i.map(Wt).filter(t=>t!=="");return e.length===0?";;":e.join("; ")}function hf(i){const t=Fo(i).split(";"),n=kc(t[0]);return n!==void 0&&(t[0]=n),t.join(";")}function kc(i){const e=ie(/^(\s*)(?:integer|int|long|float|double|string|boolean|char|bool)\s+(\w+)(?:\s*=\s*(.*))?\s*$/i,i);if(!e)return;const t=e[2].trim();if(t==="")return;const n=(e[3]??"").trim();return i.includes("=")&&n!==""?e[1]+`let ${t} = ${n}`:e[1]+`let ${t}`}function gf(i){const e=i.map(n=>Wt(n).trim()).filter(n=>n!=="");let t=e;if(e.length===1){let n=e[0];const a=zc("for",n);a!==void 0&&(n=a),t=n.split(";").map(s=>s.trim())}if(!(t.length!==3||t.some(n=>n==="")))return[t[0],t[1],t[2]]}function Sc(i,e){let t=ie(/^\s*(\w+)\s*(\+\+|--)\s*$/,i)??ie(/^\s*(\+\+|--)\s*(\w+)\s*$/,i);if(t){const[n,a]=t[1]==="++"||t[1]==="--"?[t[2],t[1]]:[t[1],t[2]];return n===e?a==="++"?1:-1:void 0}if(t=ie(/^\s*(\w+)\s*(\+|-)=\s*(\d+)\s*$/,i),t)return t[1]===e?(t[2]==="+"?1:-1)*Number(t[3]):void 0;if(t=ie(/^\s*(\w+)\s*=\s*(\w+)\s*(\+|-)\s*(\d+)\s*$/,i),t)return t[1]===e&&t[2]===e?(t[3]==="+"?1:-1)*Number(t[4]):void 0}function yr(i,e){if(/^-?\d+$/.test(i))return String(Number(i)+e);const t=/^[\w.()[\]]+$/.test(i)?i:`(${i})`;return e>0?`${t} + ${e}`:`${t} - ${-e}`}function pf(i,e){const t=gf(i);if(!t)return;const[n,a,s]=t,r=ie(/^\s*(?:integer|int|long|short|byte|double|float)?\s*([a-zA-Z_]\w*)\s*=\s*(.+)$/i,n);if(!r)return;const o=r[1],l={variable:o,init:`${o} = ${be(r[2],e)}`,condition:a,increment:s},u=ie(/^\s*(\w+)\s*(<=|<|>=|>)\s*(.+)$/,a),m=Sc(s,o);if(!u||u[1]!==o||m===void 0||m===0)return l;const c=be(r[2],e);let d=be(u[3],e);const h=u[2];if(m>0&&h==="<=")d=yr(d,1);else if(m<0&&h===">=")d=yr(d,-1);else if(!(m>0&&h==="<")&&!(m<0&&h===">"))return l;const g=m===1?c==="0"?[d]:[c,d]:[c,d,String(m)];return l.rangeLine=`for ${o} in range(${g.join(", ")}):`,l}function Oc(i){const e=Wt(i).trim();if(e==="")return;const t=ie(/^\s*const\s+(integer|int|long|float|double|string|boolean|char|bool)\s+(\w+)(?:\s*=\s*(.*))?$/i,e);if(!t)return;const n=t[2].trim();if(n==="")return;if(!e.includes("="))return{rawType:t[1].trim(),name:n};const a=(t[3]??"").trim();if(a!=="")return{rawType:t[1].trim(),name:n,rhs:a}}function ff(i,e,t,n){var o;const a=Oc(i);if(!a)return;const s=bi(a.rawType),r=(o=a.rhs)==null?void 0:o.trim();switch(e){case"java":return D(t)+xi(r?`final ${s} ${a.name} = ${r}`:`final ${s} ${a.name}`)+` `;case"javascript":return r?D(t)+xi(`const ${a.name} = ${r}`)+` `:D(t)+`let ${a.name}; // from diagram: const ${s} ${a.name} `;case"python":return r?D(t)+`${a.name} = ${qi(r,n)} # const ${s} `:D(t)+`${a.name} = None # const ${s}, uninitialized -`}}function pf(i){const e=Wt(i).trim();if(e===""||Cc(e))return;const t=ie(/^\s*(?:integer|int|long|float|double|string|boolean|char|bool)(?:\s*\[\s*\]\s+(\w+)|\s+(\w+)(\s*\[\s*\])?)\s*=\s*(.*)$/i,e);if(!t)return;const n=t[1]===""?t[2]:t[1],a=t[4].trim();if(a!=="")return{name:n,rhs:a,isArray:t[1]!==""||t[3]!==""}}function Vi(i){const e=ie(/^\s*\(\s*int(?:eger)?\s*\)\s*(.+?)\s*$/i,i),t=e==null?void 0:e[1].trim();if(!(!t||Oc(t)))return t.startsWith("(")&&vr(t,0)===t.length-1?t.slice(1,-1).trim():t}function vr(i,e){let t=0;for(let n=e;n/^'.'$/u.test(i)||/\.charAt\(.*\)$/.test(i);function ff(i,e){if(i[e]==="("){const a=vr(i,e);return a<0?-1:a+1}if(i[e]==="'")return i[e+2]==="'"?e+3:-1;const t=/^(?:[A-Za-z_]\w*|\d+)/.exec(i.slice(e));if(!t)return-1;let n=e+t[0].length;for(;;){const a=/^\.[A-Za-z_]\w*/.exec(i.slice(n));if(a)n+=a[0].length;else if(i[n]==="("||i[n]==="["){const s=vr(i,n);if(s<0)return-1;n=s+1}else return n}}function wr(i,e){return Fo(i,t=>{const n=/\(\s*(int|char)\s*\)\s*/g;let a="",s=0;for(let r=n.exec(t);r;r=n.exec(t)){const o=r.index+r[0].length,l=ff(t,o);if(l<0)continue;const u=t.slice(o,l);if(r[1]==="int"&&!Oc(u))continue;const m=wr(u.startsWith("(")?u.slice(1,-1).trim():u,e),c=r[1]==="int"?e==="python"?`ord(${m})`:`${m}.charCodeAt(0)`:e==="python"?`chr(${m})`:`String.fromCharCode(${m})`;a+=t.slice(s,r.index)+c,s=l,n.lastIndex=l}return a+t.slice(s)})}function qi(i,e=new Set){const t=i.trim();if(t==="null")return"None";const n=Vi(t);return n!==void 0?`int(${qi(n,e)})`:be(t,e)}function Fo(i,e){let t="",n="",a=0;for(;a/^\d+$/.test(a)||e.has(a);return Fo(t,a=>a.replace(/\bMath\.random\s*\(\s*\)/gi,"random.random()").replace(/===/g,"==").replace(/!==/g,"!=").replace(/\s*&&\s*/g," and ").replace(/\s*\|\|\s*/g," or ").replace(/!(?!=)\s*/g,"not ").replace(/\btrue\b/g,"True").replace(/\bfalse\b/g,"False").replace(/\bnull\b/g,"None").replace(new RegExp("(?n(r)&&n(o)?`${r} // ${o}`:s))}function Tc(i){const e=[];let t=0,n="",a=!1;for(let s=0;s/^"(?:[^"\\]|\\.)*"$/.test(i);function Wn(i,e,t){const n=Tc(i),a=s=>Jo(s)||t.has(s)||t.has(s.replace(/^([A-Za-z_]\w*)\[[^[\]]*\]$/u,"$1[]"));return n.length<2||!n.some(a)||n.some(s=>s==="")?be(i,e):n.map(s=>a(s)?s:`str(${be(s,e)})`).join(" + ")}function Ac(i,e,t=new Set){const n=Wt(i).trim(),a=ie(/^(\w+(?:\[[^\]]*\])?)\s*(\+\+|--)$/,n)??ie(/^(\+\+|--)\s*(\w+(?:\[[^\]]*\])?)$/,n);if(a){const[o,l]=a[1]==="++"||a[1]==="--"?[a[2],a[1]]:[a[1],a[2]];return`${be(o,e)} ${l==="++"?"+=":"-="} 1`}const s=ie(/^(\w+)\s*\/=\s*(.+)$/,n);if(s&&e.has(s[1]))return`${s[1]} //= ${be(s[2],e)}`;const r=ie(/^([\w[\]. ]+?)\s*(=|\+=|-=|\*=|\/=|%=)\s*(.+)$/,n);if(r&&!r[3].startsWith("=")){const[,o,l,u]=r;let m;if(l==="+="&&t.has(o.trim())){const c=Tc(u);m=Wn(`"" + ${u}`,e,t).replace(/^"" \+ /,""),c.length===1&&!Jo(u.trim())&&!t.has(u.trim())&&(m=`str(${be(u,e)})`)}else l==="="&&Vi(u)===void 0&&u.trim()!=="null"?m=Wn(u,e,t):m=l==="="?qi(u,e):be(u,e);return`${o} ${l} ${m}`}return be(n,e)}const xf=i=>i.replace(/\bMath\.random\b(?!\s*\()/gi,"Math.random()");function Pc(i){const e=i.trim();return e.startsWith("{")&&e.endsWith("}")?"["+e.slice(1,-1)+"]":i}function jc(i){const e=ie(/^\s*new\s+(?:byte|short|int|long|float|double|boolean|char|string)\s*\[\s*(.+)\s*\]\s*$/i,i),t=e==null?void 0:e[1].trim();return t||void 0}function Cc(i){const e=ie(/^\s*(int|double|string|boolean)\s*\[\s*\]\s*\[\s*\]\s*([a-zA-Z_]\w*)\s*=\s*(.+)$/i,Wt(i).trim());return e?{elementType:e[1].toLowerCase(),name:e[2],rhs:e[3].trim()}:void 0}function bf(i){const e=ie(/^\s*new\s+(?:int|double|string|boolean)\s*\[\s*(.+?)\s*\]\s*\[\s*(.+?)\s*\]\s*$/i,i);return e?[e[1],e[2]]:void 0}const r0=i=>i.replaceAll("{","[").replaceAll("}","]");function o0(i,e){return i==="boolean"?e==="python"?"False":"false":i==="string"?'""':i==="double"?"0.0":"0"}function yf(i,e,t){const n=bf(i.rhs);return e==="javascript"?n?`Array.from({ length: ${n[0]} }, () => new Array(${n[1]}).fill(${o0(i.elementType,e)}))`:r0(i.rhs):n?`[[${o0(i.elementType,e)}] * ${be(n[1],t)} for _ in range(${be(n[0],t)})]`:be(r0(i.rhs),t)}function _c(i,e){const t=i.trim();if(e){const a=jc(t);return a!==void 0?`new Array(${a})`:Pc(t)}const n=Vi(t);return n!==void 0?`Math.floor(${_c(n,!1)})`:xf(t)}function vf(i,e,t){const n=i.trim();if(e){const a=jc(n);return a!==void 0?`[None] * ${a}`:be(Pc(n),t)}return qi(n,t)}function wf(i,e,t,n,a){if(e==="java")return;const s=Cc(i);if(s){const u=yf(s,e,n);return e==="javascript"?D(t)+`let ${s.name} = ${u}; +`}}function xf(i){const e=Wt(i).trim();if(e===""||_c(e))return;const t=ie(/^\s*(?:integer|int|long|float|double|string|boolean|char|bool)(?:\s*\[\s*\]\s+(\w+)|\s+(\w+)(\s*\[\s*\])?)\s*=\s*(.*)$/i,e);if(!t)return;const n=t[1]===""?t[2]:t[1],a=t[4].trim();if(a!=="")return{name:n,rhs:a,isArray:t[1]!==""||t[3]!==""}}function Vi(i){const e=ie(/^\s*\(\s*int(?:eger)?\s*\)\s*(.+?)\s*$/i,i),t=e==null?void 0:e[1].trim();if(!(!t||Tc(t)))return t.startsWith("(")&&vr(t,0)===t.length-1?t.slice(1,-1).trim():t}function vr(i,e){let t=0;for(let n=e;n/^'.'$/u.test(i)||/\.charAt\(.*\)$/.test(i);function bf(i,e){if(i[e]==="("){const a=vr(i,e);return a<0?-1:a+1}if(i[e]==="'")return i[e+2]==="'"?e+3:-1;const t=/^(?:[A-Za-z_]\w*|\d+)/.exec(i.slice(e));if(!t)return-1;let n=e+t[0].length;for(;;){const a=/^\.[A-Za-z_]\w*/.exec(i.slice(n));if(a)n+=a[0].length;else if(i[n]==="("||i[n]==="["){const s=vr(i,n);if(s<0)return-1;n=s+1}else return n}}function wr(i,e){return Jo(i,t=>{const n=/\(\s*(int|char)\s*\)\s*/g;let a="",s=0;for(let r=n.exec(t);r;r=n.exec(t)){const o=r.index+r[0].length,l=bf(t,o);if(l<0)continue;const u=t.slice(o,l);if(r[1]==="int"&&!Tc(u))continue;const m=wr(u.startsWith("(")?u.slice(1,-1).trim():u,e),c=r[1]==="int"?e==="python"?`ord(${m})`:`${m}.charCodeAt(0)`:e==="python"?`chr(${m})`:`String.fromCharCode(${m})`;a+=t.slice(s,r.index)+c,s=l,n.lastIndex=l}return a+t.slice(s)})}function qi(i,e=new Set){const t=i.trim();if(t==="null")return"None";const n=Vi(t);return n!==void 0?`int(${qi(n,e)})`:be(t,e)}function Jo(i,e){let t="",n="",a=0;for(;a/^\d+$/.test(a)||e.has(a);return Jo(t,a=>a.replace(/\bMath\.random\s*\(\s*\)/gi,"random.random()").replace(/===/g,"==").replace(/!==/g,"!=").replace(/\s*&&\s*/g," and ").replace(/\s*\|\|\s*/g," or ").replace(/!(?!=)\s*/g,"not ").replace(/\btrue\b/g,"True").replace(/\bfalse\b/g,"False").replace(/\bnull\b/g,"None").replace(new RegExp("(?n(r)&&n(o)?`${r} // ${o}`:s))}function Ac(i){const e=[];let t=0,n="",a=!1;for(let s=0;s/^"(?:[^"\\]|\\.)*"$/.test(i);function Wn(i,e,t){const n=Ac(i),a=s=>Go(s)||t.has(s)||t.has(s.replace(/^([A-Za-z_]\w*)\[[^[\]]*\]$/u,"$1[]"));return n.length<2||!n.some(a)||n.some(s=>s==="")?be(i,e):n.map(s=>a(s)?s:`str(${be(s,e)})`).join(" + ")}function Pc(i,e,t=new Set){const n=Wt(i).trim(),a=ie(/^(\w+(?:\[[^\]]*\])?)\s*(\+\+|--)$/,n)??ie(/^(\+\+|--)\s*(\w+(?:\[[^\]]*\])?)$/,n);if(a){const[o,l]=a[1]==="++"||a[1]==="--"?[a[2],a[1]]:[a[1],a[2]];return`${be(o,e)} ${l==="++"?"+=":"-="} 1`}const s=ie(/^(\w+)\s*\/=\s*(.+)$/,n);if(s&&e.has(s[1]))return`${s[1]} //= ${be(s[2],e)}`;const r=ie(/^([\w[\]. ]+?)\s*(=|\+=|-=|\*=|\/=|%=)\s*(.+)$/,n);if(r&&!r[3].startsWith("=")){const[,o,l,u]=r;let m;if(l==="+="&&t.has(o.trim())){const c=Ac(u);m=Wn(`"" + ${u}`,e,t).replace(/^"" \+ /,""),c.length===1&&!Go(u.trim())&&!t.has(u.trim())&&(m=`str(${be(u,e)})`)}else l==="="&&Vi(u)===void 0&&u.trim()!=="null"?m=Wn(u,e,t):m=l==="="?qi(u,e):be(u,e);return`${o} ${l} ${m}`}return be(n,e)}const yf=i=>i.replace(/\bMath\.random\b(?!\s*\()/gi,"Math.random()");function jc(i){const e=i.trim();return e.startsWith("{")&&e.endsWith("}")?"["+e.slice(1,-1)+"]":i}function Cc(i){const e=ie(/^\s*new\s+(?:byte|short|int|long|float|double|boolean|char|string)\s*\[\s*(.+)\s*\]\s*$/i,i),t=e==null?void 0:e[1].trim();return t||void 0}function _c(i){const e=ie(/^\s*(int|double|string|boolean)\s*\[\s*\]\s*\[\s*\]\s*([a-zA-Z_]\w*)\s*=\s*(.+)$/i,Wt(i).trim());return e?{elementType:e[1].toLowerCase(),name:e[2],rhs:e[3].trim()}:void 0}function vf(i){const e=ie(/^\s*new\s+(?:int|double|string|boolean)\s*\[\s*(.+?)\s*\]\s*\[\s*(.+?)\s*\]\s*$/i,i);return e?[e[1],e[2]]:void 0}const o0=i=>i.replaceAll("{","[").replaceAll("}","]");function l0(i,e){return i==="boolean"?e==="python"?"False":"false":i==="string"?'""':i==="double"?"0.0":"0"}function wf(i,e,t){const n=vf(i.rhs);return e==="javascript"?n?`Array.from({ length: ${n[0]} }, () => new Array(${n[1]}).fill(${l0(i.elementType,e)}))`:o0(i.rhs):n?`[[${l0(i.elementType,e)}] * ${be(n[1],t)} for _ in range(${be(n[0],t)})]`:be(o0(i.rhs),t)}function Zc(i,e){const t=i.trim();if(e){const a=Cc(t);return a!==void 0?`new Array(${a})`:jc(t)}const n=Vi(t);return n!==void 0?`Math.floor(${Zc(n,!1)})`:yf(t)}function zf(i,e,t){const n=i.trim();if(e){const a=Cc(n);return a!==void 0?`[None] * ${a}`:be(jc(n),t)}return qi(n,t)}function If(i,e,t,n,a){if(e==="java")return;const s=_c(i);if(s){const u=wf(s,e,n);return e==="javascript"?D(t)+`let ${s.name} = ${u}; `:D(t)+`${s.name} = ${u} -`}const r=pf(i);if(!r)return;if(e==="javascript")return D(t)+xi(`let ${r.name} = ${_c(r.rhs,r.isArray)}`)+` -`;const l=!r.isArray&&Vi(r.rhs)===void 0&&r.rhs.trim()!=="null"?Wn(r.rhs,n,a):vf(r.rhs,r.isArray,n);return D(t)+`${r.name} = ${l} -`}function $t(i,e){for(const t of i){e(t),t.loopBody&&$t(t.loopBody,e);for(const n of t.cases??[])$t(n.elements,e)}}function zf(i){const e=n=>["int","integer","long","short","byte"].includes(n.trim().toLowerCase()),t=new Set;return $t(i.elements,n=>{for(const a of n.textLines){const s=a.trim();if(s==="")continue;if(s.toLowerCase().startsWith("input:")){const l=Lo(s.slice(6).trim());l&&e(l.type)&&!l.name.includes("[")&&t.add(l.name);continue}const r=Sc(s);if(r&&e(r.rawType)){t.add(r.name);continue}const o=ie(/^\s*(integer|int|long|short|byte)\s+([a-zA-Z_]\w*)\s*=/i,s);o&&t.add(o[2].trim())}}),t}function zr(i,e){const t=r=>/^\d+$/.test(r)||e.has(r),n=String.raw`(?:[a-zA-Z_]\w*|\d+(?:\.\d+)?)`,a=new RegExp(String.raw`(?{const o=r.split(/\s*([*/%])\s*/);if(!o.some(m=>m==="/"))return r;let l=o[0],u=t(o[0]);for(let m=1;mr.replace(a,s).replace(new RegExp("(?t(l)&&t(u)?`${l} = Math.trunc(${l} / ${u})`:o))}function yi(i){let e=!1;return $t(i.elements,t=>{t.type===T.anweisung&&t.textLines.some(n=>n.trim().toLowerCase().startsWith("input:"))&&(e=!0)}),e}function Go(i){let e=!1,t=!1,n=!1;return $t(i.elements,a=>{for(const s of a.textLines)/\bFiles\s*\./.test(s)&&(e=!0),/\bnew\s+(?:File|PrintWriter|FileReader|FileWriter|BufferedReader)\s*\(/.test(s)&&(t=!0),/\bnew\s+Scanner\s*\(\s*new\s+File\b/.test(s)&&(n=!0)}),[...t?["import java.io.*;"]:[],...e?["import java.nio.file.*;"]:[],...n?["import java.util.Scanner;"]:[]]}function If(i){return Go(i).length>0}function Zc(i){let e=!1;return $t(i.elements,t=>{t.textLines.some(n=>/\bMath\.random\s*\(/i.test(n))&&(e=!0)}),e}function fs(i,e){const t=i.trim();return t===""?e==="python"?'""':"0":e==="java"||new RegExp("^\\p{N}+$","u").test(t)||Jo(t)?t:'"'+t.replaceAll('"','\\"')+'"'}function xs(i,e){const t=i.trim();if(t==="")return"";switch(e){case"java":return"/* "+t+" */";case"python":return" # "+t;case"javascript":return" /* "+t+" */"}}function kf(i,e,t,n,a){const s=i.map(r=>r.trim());if(s.every(r=>r==="")){t.live&&(a.out+=D(n)+(e==="python"?"pass":";")+` -`);return}if(t.includeDiagramTextAsComments){const r=s.filter(o=>o!==""&&!xr(o));r.length>0&&(a.out+=Wo(r,e,n))}for(const r of s){if(r==="")continue;if(xr(r)){a.out+=t.live?Ho(n,t.live):vc(n,e);continue}const o=t.jsIntVariables??new Set,l=t.arrayElementTypes??new Map,u=t.stringVariables??new Set,m=(e==="java"?tf(r,n,l):void 0)??(e==="javascript"?nf(r,n,l):void 0)??(e==="python"?af(r,n,l):void 0)??rf(r,e,n,o,u)??mf(r,e,n,o,u)??gf(r,e,n,o)??wf(r,e,n,o,u)??Xp(r,e,n,o,u);if(m!==void 0){a.out+=e==="javascript"?zr(m,o):m;continue}let c=r;qp(e)?c=xi(e==="javascript"?zr(r,o):r):e==="python"&&(c=Ac(r,o,u)),c!==""&&(a.out+=D(n)+c+` -`)}}function vi(i,e,t,n,a,s,r,o=(l=>(l=a.live)==null?void 0:l.labels.condition)()){if(a.includeDiagramTextAsComments&&(r.out+=Wo(t,n,s)),o!==void 0&&Qo(t)){r.out+=D(s)+i+_n(o)+e;return}const u=Xa(t),m=a.jsIntVariables??new Set,c=n==="python"?be(u,m):n==="javascript"?zr(u,m):u;r.out+=D(s)+i+c+e}function qn(i,e,t,n,a){const s=a.out.length;for(const o of i)Ui(o,e,t,n,a);if(t.live&&a.out.length===s&&(a.out+=Ho(n,t.live)),e!=="python")return;a.out.slice(s).split(` +`}const r=xf(i);if(!r)return;if(e==="javascript")return D(t)+xi(`let ${r.name} = ${Zc(r.rhs,r.isArray)}`)+` +`;const l=!r.isArray&&Vi(r.rhs)===void 0&&r.rhs.trim()!=="null"?Wn(r.rhs,n,a):zf(r.rhs,r.isArray,n);return D(t)+`${r.name} = ${l} +`}function $t(i,e){for(const t of i){e(t),t.loopBody&&$t(t.loopBody,e);for(const n of t.cases??[])$t(n.elements,e)}}function kf(i){const e=n=>["int","integer","long","short","byte"].includes(n.trim().toLowerCase()),t=new Set;return $t(i.elements,n=>{for(const a of n.textLines){const s=a.trim();if(s==="")continue;if(s.toLowerCase().startsWith("input:")){const l=Eo(s.slice(6).trim());l&&e(l.type)&&!l.name.includes("[")&&t.add(l.name);continue}const r=Oc(s);if(r&&e(r.rawType)){t.add(r.name);continue}const o=ie(/^\s*(integer|int|long|short|byte)\s+([a-zA-Z_]\w*)\s*=/i,s);o&&t.add(o[2].trim())}}),t}function zr(i,e){const t=r=>/^\d+$/.test(r)||e.has(r),n=String.raw`(?:[a-zA-Z_]\w*|\d+(?:\.\d+)?)`,a=new RegExp(String.raw`(?{const o=r.split(/\s*([*/%])\s*/);if(!o.some(m=>m==="/"))return r;let l=o[0],u=t(o[0]);for(let m=1;mr.replace(a,s).replace(new RegExp("(?t(l)&&t(u)?`${l} = Math.trunc(${l} / ${u})`:o))}function yi(i){let e=!1;return $t(i.elements,t=>{t.type===T.anweisung&&t.textLines.some(n=>n.trim().toLowerCase().startsWith("input:"))&&(e=!0)}),e}function Ro(i){let e=!1,t=!1,n=!1;return $t(i.elements,a=>{for(const s of a.textLines)/\bFiles\s*\./.test(s)&&(e=!0),/\bnew\s+(?:File|PrintWriter|FileReader|FileWriter|BufferedReader)\s*\(/.test(s)&&(t=!0),/\bnew\s+Scanner\s*\(\s*new\s+File\b/.test(s)&&(n=!0)}),[...t?["import java.io.*;"]:[],...e?["import java.nio.file.*;"]:[],...n?["import java.util.Scanner;"]:[]]}function Sf(i){return Ro(i).length>0}function Mc(i){let e=!1;return $t(i.elements,t=>{t.textLines.some(n=>/\bMath\.random\s*\(/i.test(n))&&(e=!0)}),e}function fs(i,e){const t=i.trim();return t===""?e==="python"?'""':"0":e==="java"||new RegExp("^\\p{N}+$","u").test(t)||Go(t)?t:'"'+t.replaceAll('"','\\"')+'"'}function xs(i,e){const t=i.trim();if(t==="")return"";switch(e){case"java":return"/* "+t+" */";case"python":return" # "+t;case"javascript":return" /* "+t+" */"}}function Of(i,e,t,n,a){const s=i.map(r=>r.trim());if(s.every(r=>r==="")){t.live&&(a.out+=D(n)+(e==="python"?"pass":";")+` +`);return}if(t.includeDiagramTextAsComments){const r=s.filter(o=>o!==""&&!xr(o));r.length>0&&(a.out+=Lo(r,e,n))}for(const r of s){if(r==="")continue;if(xr(r)){a.out+=t.live?Qo(n,t.live):wc(n,e);continue}const o=t.jsIntVariables??new Set,l=t.arrayElementTypes??new Map,u=t.stringVariables??new Set,m=(e==="java"?af(r,n,l):void 0)??(e==="javascript"?sf(r,n,l):void 0)??(e==="python"?rf(r,n,l):void 0)??lf(r,e,n,o,u)??df(r,e,n,o,u)??ff(r,e,n,o)??If(r,e,n,o,u)??ef(r,e,n,o,u);if(m!==void 0){a.out+=e==="javascript"?zr(m,o):m;continue}let c=r;$p(e)?c=xi(e==="javascript"?zr(r,o):r):e==="python"&&(c=Pc(r,o,u)),c!==""&&(a.out+=D(n)+c+` +`)}}function vi(i,e,t,n,a,s,r,o=(l=>(l=a.live)==null?void 0:l.labels.condition)()){if(a.includeDiagramTextAsComments&&(r.out+=Lo(t,n,s)),o!==void 0&&Vo(t)){r.out+=D(s)+i+_n(o)+e;return}const u=Xa(t),m=a.jsIntVariables??new Set,c=n==="python"?be(u,m):n==="javascript"?zr(u,m):u;r.out+=D(s)+i+c+e}function qn(i,e,t,n,a){const s=a.out.length;for(const o of i)Ui(o,e,t,n,a);if(t.live&&a.out.length===s&&(a.out+=Qo(n,t.live)),e!=="python")return;a.out.slice(s).split(` `).map(o=>o.trim()).every(o=>o===""||o.startsWith("#"))&&(a.out+=D(n)+`pass -`)}function Sf(i,e){var n;if(e.includeDiagramTextAsComments||i.length!==1)return;const t=i[0];return t.type===T.verzweigung&&(((n=t.cases)==null?void 0:n.length)??0)>=2?t:void 0}function Ir(i,e,t,n,a,s){const r=i.cases;if(!r||r.length<2)return;const o=e==="python",l=n+t.indentPerLevel,u=!t.includeEmptyElseBranch&&Vp(r[1].elements),m=u?void 0:Sf(r[1].elements,t);if(o){vi(s?"elif ":"if ",`: +`)}function Tf(i,e){var n;if(e.includeDiagramTextAsComments||i.length!==1)return;const t=i[0];return t.type===T.verzweigung&&(((n=t.cases)==null?void 0:n.length)??0)>=2?t:void 0}function Ir(i,e,t,n,a,s){const r=i.cases;if(!r||r.length<2)return;const o=e==="python",l=n+t.indentPerLevel,u=!t.includeEmptyElseBranch&&Up(r[1].elements),m=u?void 0:Tf(r[1].elements,t);if(o){vi(s?"elif ":"if ",`: `,i.textLines,e,t,n,a),qn(r[0].elements,e,t,l,a),m?Ir(m,e,t,n,a,!0):u||(a.out+=D(n)+`else: `,qn(r[1].elements,e,t,l,a));return}if(vi(s?"} else if (":"if (",`) { -`,i.textLines,e,t,n,a),qn(r[0].elements,e,t,l,a),m){const c=a.out.length;Ir(m,e,t,n,a,!0),Dc(t,m,a,c)}else u||(a.out+=D(n)+`} else { +`,i.textLines,e,t,n,a),qn(r[0].elements,e,t,l,a),m){const c=a.out.length;Ir(m,e,t,n,a,!0),Bc(t,m,a,c)}else u||(a.out+=D(n)+`} else { `,qn(r[1].elements,e,t,l,a)),a.out+=D(n)+`} -`}function Ui(i,e,t,n,a){const s=a.out.length;Of(i,e,t,n,a),Dc(t,i,a,s)}function Of(i,e,t,n,a){var m;const s=t.indentPerLevel,r=e==="python",o=(c,d)=>qn(c,e,t,d,a),l=(c,d)=>vi(c,d,i.textLines,e,t,n,a),u=(c=n)=>{t.includeDiagramTextAsComments&&(a.out+=Wo(i.textLines,e,c))};switch(i.type){case T.leerElement:a.out+=t.live?Ho(n,t.live):vc(n,e);return;case T.anweisung:case T.aufruf:kf(i.textLines,e,t,n,a);return;case T.aussprung:{const c=Xa(i.textLines);i.textLines.some(d=>d.trim()!=="")&&u(),r?a.out+=D(n)+(c===""?`break +`}function Ui(i,e,t,n,a){const s=a.out.length;Af(i,e,t,n,a),Bc(t,i,a,s)}function Af(i,e,t,n,a){var m;const s=t.indentPerLevel,r=e==="python",o=(c,d)=>qn(c,e,t,d,a),l=(c,d)=>vi(c,d,i.textLines,e,t,n,a),u=(c=n)=>{t.includeDiagramTextAsComments&&(a.out+=Lo(i.textLines,e,c))};switch(i.type){case T.leerElement:a.out+=t.live?Qo(n,t.live):wc(n,e);return;case T.anweisung:case T.aufruf:Of(i.textLines,e,t,n,a);return;case T.aussprung:{const c=Xa(i.textLines);i.textLines.some(d=>d.trim()!=="")&&u(),r?a.out+=D(n)+(c===""?`break `:`break # ${c} `):a.out+=D(n)+(c===""?`break; `:`break; // ${c} @@ -142,19 +142,19 @@ ${o.out}${D(a)}} `,o(d.elements,n+s*2)}else{const p=g?"default:"+xs(d.name,e):"case "+fs(d.name,e)+":";a.out+=D(n+s)+p+` `,o(d.elements,n+s*2),a.out+=D(n+s*2)+`break; `}}),r||(a.out+=D(n)+`} -`);return}case T.forSchleife:if(e==="java"){u();const c=t.live?Mc(i.textLines,t.live.labels):No(i.textLines);a.out+=D(n)+"for ("+c+`) { -`}else if(r){const c=t.jsIntVariables??new Set,d=hf(i.textLines,c);if((d==null?void 0:d.rangeLine)!==void 0)u(),a.out+=D(n)+d.rangeLine+` +`);return}case T.forSchleife:if(e==="java"){u();const c=t.live?Dc(i.textLines,t.live.labels):Fo(i.textLines);a.out+=D(n)+"for ("+c+`) { +`}else if(r){const c=t.jsIntVariables??new Set,d=pf(i.textLines,c);if((d==null?void 0:d.rangeLine)!==void 0)u(),a.out+=D(n)+d.rangeLine+` `;else if(d){u(),a.out+=D(n)+d.init+` `,a.out+=D(n)+"while "+be(d.condition,c)+`: -`;for(const h of i.loopBody??[])Ui(h,e,t,n+s,a);a.out+=D(n+s)+Ac(d.increment,c)+` -`;return}else t.live?a.out+=D(n)+Af(i.textLines,t.live.labels,c)+` +`;for(const h of i.loopBody??[])Ui(h,e,t,n+s,a);a.out+=D(n+s)+Pc(d.increment,c)+` +`;return}else t.live?a.out+=D(n)+jf(i.textLines,t.live.labels,c)+` `:l("for ",`: -`)}else{u();const c=t.live?Tf(i.textLines,t.live.labels):cf(i.textLines);a.out+=D(n)+"for ("+c+`) { +`)}else{u();const c=t.live?Pf(i.textLines,t.live.labels):hf(i.textLines);a.out+=D(n)+"for ("+c+`) { `}o(i.loopBody??[],n+s),r||(a.out+=D(n)+`} `);return;case T.whileSchleife:l(r?"while ":"while (",r?`: `:`) { `),o(i.loopBody??[],n+s),r||(a.out+=D(n)+`} -`);return;case T.doUntilSchleife:{const c=t.live&&Qo(i.textLines)?_n(t.live.labels.condition):Xa(i.textLines);if(r){a.out+=D(n)+`while True: +`);return;case T.doUntilSchleife:{const c=t.live&&Vo(i.textLines)?_n(t.live.labels.condition):Xa(i.textLines);if(r){a.out+=D(n)+`while True: `;const d=n+s;o(i.loopBody??[],d),u(d);const h=c.includes(oa)?c:be(c,t.jsIntVariables??new Set);a.out+=D(d)+"if not ("+h+`): `,a.out+=D(d+s)+`break `}else a.out+=D(n)+`do { @@ -164,25 +164,25 @@ ${o.out}${D(a)}} `):a.out+=D(n)+(d?`while (true) { `:`while (true) /* ${c} */ { `),o(i.loopBody??[],n+s),r||(a.out+=D(n)+`} -`);return}}}const oa="",Ro="",_n=i=>oa+i+Ro,Ho=(i,e)=>D(i)+_n(e.target==="python"?`pass # ${e.labels.code}`:`// ${e.labels.code}`)+` -`,Qo=i=>i.every(e=>e.trim()==="");function Mc(i,e){return Qo(i)||i.length===3?[e.start,e.condition,e.step].map((n,a)=>{const s=Wt(i[a]??"");return s===""?_n(n):s}).join("; "):No(i)}function Tf(i,e){const t=Mc(i,e).split(";"),n=t[0].includes(oa)?void 0:Ic(t[0]);return n!==void 0&&(t[0]=n),t.join(";")}function Af(i,e,t){var h;const[n="",a="",s=""]=i.length===3?i.map(g=>Wt(g)):[],r=ie(/^\s*(?:integer|int|long|short|byte|double|float)?\s*([a-zA-Z_]\w*)\s*=\s*(.+)$/i,n),o=(r==null?void 0:r[1])??((h=ie(/^\s*([a-zA-Z_]\w*)\s*(?:<=|<|>=|>)/,a))==null?void 0:h[1]),l=r?be(r[2],t):_n(e.start),u=ie(/^\s*(\w+)\s*(<=|<)\s*(.+)$/,a);let m=_n(e.end);u&&(o===void 0||u[1]===o)&&(m=be(u[3],t),u[2]==="<="&&(m=yr(m,1)));const c=o===void 0?void 0:kc(s,o),d=[l,m,...c!==void 0&&c!==1?[String(c)]:[]];return`for ${o??_n(e.selector)} in range(${d.join(", ")}):`}function kr(i,e=[],t=new Map){return i.forEach((n,a)=>{var r;const s=[...e,a];t.has(n)||t.set(n,s),n.loopBody&&kr(n.loopBody,[...s,0],t),(r=n.cases)==null||r.forEach((o,l)=>kr(o.elements,[...s,l],t))}),t}function Dc(i,e,t,n){const a=i.live,s=a==null?void 0:a.paths.get(e);if(!a||!s||t.out.length===n)return;const r=o=>t.out.slice(0,o).split(` -`).length-1;a.spans.push({path:s,from:r(n),to:r(t.out.length-1)})}function Bc(i,e,t){const n={target:e,labels:t,paths:kr(i.elements),spans:[]},a=Bo(i,e,{includeEmptyElseBranch:!0,live:n}),s=dt(i.caption);let r="";if(e==="java"){const u=Go(i);for(const m of u)r+=m+` +`);return}}}const oa="",Ho="",_n=i=>oa+i+Ho,Qo=(i,e)=>D(i)+_n(e.target==="python"?`pass # ${e.labels.code}`:`// ${e.labels.code}`)+` +`,Vo=i=>i.every(e=>e.trim()==="");function Dc(i,e){return Vo(i)||i.length===3?[e.start,e.condition,e.step].map((n,a)=>{const s=Wt(i[a]??"");return s===""?_n(n):s}).join("; "):Fo(i)}function Pf(i,e){const t=Dc(i,e).split(";"),n=t[0].includes(oa)?void 0:kc(t[0]);return n!==void 0&&(t[0]=n),t.join(";")}function jf(i,e,t){var h;const[n="",a="",s=""]=i.length===3?i.map(g=>Wt(g)):[],r=ie(/^\s*(?:integer|int|long|short|byte|double|float)?\s*([a-zA-Z_]\w*)\s*=\s*(.+)$/i,n),o=(r==null?void 0:r[1])??((h=ie(/^\s*([a-zA-Z_]\w*)\s*(?:<=|<|>=|>)/,a))==null?void 0:h[1]),l=r?be(r[2],t):_n(e.start),u=ie(/^\s*(\w+)\s*(<=|<)\s*(.+)$/,a);let m=_n(e.end);u&&(o===void 0||u[1]===o)&&(m=be(u[3],t),u[2]==="<="&&(m=yr(m,1)));const c=o===void 0?void 0:Sc(s,o),d=[l,m,...c!==void 0&&c!==1?[String(c)]:[]];return`for ${o??_n(e.selector)} in range(${d.join(", ")}):`}function kr(i,e=[],t=new Map){return i.forEach((n,a)=>{var r;const s=[...e,a];t.has(n)||t.set(n,s),n.loopBody&&kr(n.loopBody,[...s,0],t),(r=n.cases)==null||r.forEach((o,l)=>kr(o.elements,[...s,l],t))}),t}function Bc(i,e,t,n){const a=i.live,s=a==null?void 0:a.paths.get(e);if(!a||!s||t.out.length===n)return;const r=o=>t.out.slice(0,o).split(` +`).length-1;a.spans.push({path:s,from:r(n),to:r(t.out.length-1)})}function Wc(i,e,t){const n={target:e,labels:t,paths:kr(i.elements),spans:[]},a=Wo(i,e,{includeEmptyElseBranch:!0,live:n}),s=dt(i.caption);let r="";if(e==="java"){const u=Ro(i);for(const m of u)r+=m+` `;yi(i)?(u.includes("import java.util.Scanner;")||(r+=`import java.util.Scanner; `),r+=`Scanner scanner = new Scanner(System.in); `):u.length&&(r+=` -`),s&&(r+=yc(s)+` +`),s&&(r+=vc(s)+` `)}else{if(s)for(const m of s.params)m.dims||(m.type==="int"&&a.jsIntVariables.add(m.name),m.type==="string"&&a.stringVariables.add(m.name));const u=s==null?void 0:s.params.map(m=>m.name).join(", ");e==="javascript"?(r+=`"use strict"; `,r+=br([i],"javascript"),s&&(r+=`function ${s.name}(${u}) { -`)):(Zc(i)&&(r+=`import random +`)):(Mc(i)&&(r+=`import random `),r+=br([i],"python"),s&&(r+=`def ${s.name}(${u}): `))}const o={out:""};qn(i.elements,e,a,s?a.indentPerLevel:0,o),s&&e!=="python"&&(o.out+=`} `);const l=r.split(` -`).length-1;return{text:Wc((r+o.out).replace(/\n+$/,""),e),spans:n.spans.map(u=>({...u,from:u.from+l,to:u.to+l}))}}function Wc(i,e){switch(e){case"javascript":return Cf(wr(i,"javascript")).replace(/\.length\(\)/g,".length").replace(/\.contains\(/g,".includes(");case"python":return Pf(wr(i,"python")).replace(/\b([a-zA-Z_]\w*(?:\[[^[\]]*\])?)\.length(?:\(\)|\b)/g,"len($1)");case"java":return Mf(i)}}function Pf(i){for(let e=0;e<5;e++){const t=Lc(jf(i),"python");if(t===i)break;i=t}return i}const l0={indexOf:"find",lastIndexOf:"rfind",toUpperCase:"upper",toLowerCase:"lower",trim:"strip",startsWith:"startswith",endsWith:"endswith"};function jf(i){return Vo(i,["charAt","substring","contains","isEmpty","equalsIgnoreCase","compareTo","repeat","concat",...Object.keys(l0)],(e,t,n)=>{switch(t){case"charAt":return`${e}[${n}]`;case"substring":{const a=_f(n);return a.length===2?`${e}[${a[0].trim()}:${a[1].trim()}]`:`${e}[${n.trim()}:]`}case"contains":return`(${n.trim()} in ${e})`;case"isEmpty":return`(len(${e}) == 0)`;case"equalsIgnoreCase":return`(${e}.lower() == ${n.trim()}.lower())`;case"compareTo":return`((${e} > ${n.trim()}) - (${e} < ${n.trim()}))`;case"repeat":return`(${e} * ${n.trim()})`;case"concat":return`(${e} + ${n.trim()})`;default:return`${e}.${l0[t]}(${n})`}})}function Cf(i){for(let e=0;e<5;e++){const t=Lc(Vo(i,["isEmpty","equalsIgnoreCase","compareTo","replace"],(n,a,s)=>{switch(a){case"isEmpty":return`(${n}.length === 0)`;case"equalsIgnoreCase":return`(${n}.toLowerCase() === ${s.trim()}.toLowerCase())`;case"compareTo":return`${n}.localeCompare(${s.trim()})`;default:return`${n}.replaceAll(${s})`}}),"javascript");if(t===i)break;i=t}return i}function Lc(i,e){const t=/\bFiles\.readString\(\s*(?:Path\.of|Paths\.get)\(\s*("(?:[^"\\]|\\.)*")\s*\)\s*\)/g;return e==="python"?i.replace(t,'open($1, encoding="utf-8").read()').replace(/\bInteger\.parseInt\(/g,"int(").replace(/\bDouble\.parseDouble\(/g,"float(").replace(/\bString\.valueOf\(/g,"str("):i.replace(t,'require("fs").readFileSync($1, "utf8")').replace(/\bInteger\.parseInt\(/g,"parseInt(").replace(/\bDouble\.parseDouble\(/g,"parseFloat(").replace(/\bString\.valueOf\(/g,"String(")}function _f(i){let e=0;const t=[...i].findIndex(n=>n==="("?(e+=1,!1):n===")"?(e-=1,!1):n===","&&e===0);return t<0?[i]:[i.slice(0,t),i.slice(t+1)]}function Vo(i,e,t){const n=new RegExp(`([A-Za-z_]\\w*(?:\\[[^[\\]]*\\]|\\.\\w+\\(\\))*|"(?:[^"\\\\]|\\\\.)*")\\.(${e.join("|")})\\(`,"g");let a="",s=0;for(let r=n.exec(i);r;r=n.exec(i)){const o=r.index+r[0].length-1;let l=0,u=-1;for(let c=o;ce.has(n.toLowerCase())?t:`${n}.length()`)}const Df=new Set("abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while true false null var record sealed permits yield module open opens requires exports to uses provides with transitive".split(" "));function $i(i){const e=i.trim();if(e==="")return"Main";let t="";return Array.from(e).forEach((n,a)=>{a===0?new RegExp("\\p{L}","u").test(n)||n==="_"||n==="$"?t+=n:new RegExp("\\p{Nd}","u").test(n)?t+="_"+n:t+="_":/[\p{L}\p{M}\p{N}]/u.test(n)||n==="_"||n==="$"?t+=n:t+="_"}),t=t.replace(/_{2,}/g,"_").replace(/^_+|_+$/g,""),t===""?"Main":(new RegExp("^\\p{Nd}","u").test(t)&&(t="_"+t),Df.has(t.toLowerCase())&&(t="_"+t),t)}function u0(i,e,t={},n=[]){const a={...xc,...t},s=$i(e),r=[i,...n].filter((v,z,k)=>k.indexOf(v)===z).map(v=>({d:v,header:dt(v.caption)})).filter(v=>v.header!==void 0),o=r.map(v=>fr(v.d,v.header,"java",t,a.indentPerLevel)),l=dt(i.caption),u=r.some(v=>yi(v.d)),m=bc(i,"java",a),c=a.indentPerLevel*2,d=yi(i),h=d?Bf(m):m,g=D(c),p=h.trim()===""?"":h.split(` +`).length-1;return{text:Lc((r+o.out).replace(/\n+$/,""),e),spans:n.spans.map(u=>({...u,from:u.from+l,to:u.to+l}))}}function Lc(i,e){switch(e){case"javascript":return Zf(wr(i,"javascript")).replace(/\.length\(\)/g,".length").replace(/\.contains\(/g,".includes(");case"python":return Cf(wr(i,"python")).replace(/\b([a-zA-Z_]\w*(?:\[[^[\]]*\])?)\.length(?:\(\)|\b)/g,"len($1)");case"java":return Bf(i)}}function Cf(i){for(let e=0;e<5;e++){const t=Ec(_f(i),"python");if(t===i)break;i=t}return i}const u0={indexOf:"find",lastIndexOf:"rfind",toUpperCase:"upper",toLowerCase:"lower",trim:"strip",startsWith:"startswith",endsWith:"endswith"};function _f(i){return qo(i,["charAt","substring","contains","isEmpty","equalsIgnoreCase","compareTo","repeat","concat",...Object.keys(u0)],(e,t,n)=>{switch(t){case"charAt":return`${e}[${n}]`;case"substring":{const a=Mf(n);return a.length===2?`${e}[${a[0].trim()}:${a[1].trim()}]`:`${e}[${n.trim()}:]`}case"contains":return`(${n.trim()} in ${e})`;case"isEmpty":return`(len(${e}) == 0)`;case"equalsIgnoreCase":return`(${e}.lower() == ${n.trim()}.lower())`;case"compareTo":return`((${e} > ${n.trim()}) - (${e} < ${n.trim()}))`;case"repeat":return`(${e} * ${n.trim()})`;case"concat":return`(${e} + ${n.trim()})`;default:return`${e}.${u0[t]}(${n})`}})}function Zf(i){for(let e=0;e<5;e++){const t=Ec(qo(i,["isEmpty","equalsIgnoreCase","compareTo","replace"],(n,a,s)=>{switch(a){case"isEmpty":return`(${n}.length === 0)`;case"equalsIgnoreCase":return`(${n}.toLowerCase() === ${s.trim()}.toLowerCase())`;case"compareTo":return`${n}.localeCompare(${s.trim()})`;default:return`${n}.replaceAll(${s})`}}),"javascript");if(t===i)break;i=t}return i}function Ec(i,e){const t=/\bFiles\.readString\(\s*(?:Path\.of|Paths\.get)\(\s*("(?:[^"\\]|\\.)*")\s*\)\s*\)/g;return e==="python"?i.replace(t,'open($1, encoding="utf-8").read()').replace(/\bInteger\.parseInt\(/g,"int(").replace(/\bDouble\.parseDouble\(/g,"float(").replace(/\bString\.valueOf\(/g,"str("):i.replace(t,'require("fs").readFileSync($1, "utf8")').replace(/\bInteger\.parseInt\(/g,"parseInt(").replace(/\bDouble\.parseDouble\(/g,"parseFloat(").replace(/\bString\.valueOf\(/g,"String(")}function Mf(i){let e=0;const t=[...i].findIndex(n=>n==="("?(e+=1,!1):n===")"?(e-=1,!1):n===","&&e===0);return t<0?[i]:[i.slice(0,t),i.slice(t+1)]}function qo(i,e,t){const n=new RegExp(`([A-Za-z_]\\w*(?:\\[[^[\\]]*\\]|\\.\\w+\\(\\))*|"(?:[^"\\\\]|\\\\.)*")\\.(${e.join("|")})\\(`,"g");let a="",s=0;for(let r=n.exec(i);r;r=n.exec(i)){const o=r.index+r[0].length-1;let l=0,u=-1;for(let c=o;ce.has(n.toLowerCase())?t:`${n}.length()`)}const Wf=new Set("abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while true false null var record sealed permits yield module open opens requires exports to uses provides with transitive".split(" "));function $i(i){const e=i.trim();if(e==="")return"Main";let t="";return Array.from(e).forEach((n,a)=>{a===0?new RegExp("\\p{L}","u").test(n)||n==="_"||n==="$"?t+=n:new RegExp("\\p{Nd}","u").test(n)?t+="_"+n:t+="_":/[\p{L}\p{M}\p{N}]/u.test(n)||n==="_"||n==="$"?t+=n:t+="_"}),t=t.replace(/_{2,}/g,"_").replace(/^_+|_+$/g,""),t===""?"Main":(new RegExp("^\\p{Nd}","u").test(t)&&(t="_"+t),Wf.has(t.toLowerCase())&&(t="_"+t),t)}function m0(i,e,t={},n=[]){const a={...bc,...t},s=$i(e),r=[i,...n].filter((v,z,k)=>k.indexOf(v)===z).map(v=>({d:v,header:dt(v.caption)})).filter(v=>v.header!==void 0),o=r.map(v=>fr(v.d,v.header,"java",t,a.indentPerLevel)),l=dt(i.caption),u=r.some(v=>yi(v.d)),m=yc(i,"java",a),c=a.indentPerLevel*2,d=yi(i),h=d?Lf(m):m,g=D(c),p=h.trim()===""?"":h.split(` `).map(v=>v.trim()===""?g:g+v).join(` -`);let x="";const b=o.length>0&&(d||u),y=[...new Set([i,...r.map(v=>v.d)].flatMap(Go))],w=y.length>0;(d||u)&&!y.includes("import java.util.Scanner;")&&y.push("import java.util.Scanner;");for(const v of y)x+=v+` +`);let x="";const b=o.length>0&&(d||u),y=[...new Set([i,...r.map(v=>v.d)].flatMap(Ro))],w=y.length>0;(d||u)&&!y.includes("import java.util.Scanner;")&&y.push("import java.util.Scanner;");for(const v of y)x+=v+` `;y.length&&(x+=` `),x+=`public class ${s} { `,b&&(x+=D(a.indentPerLevel)+`static Scanner scanner = new Scanner(System.in); @@ -195,9 +195,9 @@ ${o.out}${D(a)}} `),x+=D(a.indentPerLevel)+`} `);for(const[v,z]of o.entries())x+=(v>0||!l?` `:"")+z;return x+=`} -`,x}function Bf(i){const e=i.split(` +`,x}function Lf(i){const e=i.split(` `);let t=0;for(e[t]==="// import java.util.Scanner;"&&t++;t=e.length?"":e.slice(t).join(` -`)}const en={target:"visustruct.codegen.target",javaMode:"visustruct.codegen.javaOutputMode",comments:"visustruct.codegen.includeDiagramComments",emptyElse:"visustruct.codegen.includeEmptyElse"};function Ia(i){try{return localStorage.getItem(i)}catch{return null}}function ka(i,e){try{localStorage.setItem(i,e)}catch{}}const Wf=()=>f("web_run_stopped_loop"),Ec=()=>f("web_run_cancelled"),ze=i=>i.replace(/&/g,"&").replace(//g,">").replace(/"/g,""");function Lf(i){let e=0;return i.replace(/^(\s*)while\s*\(\s*true\s*\)(?:\s*\/\*.*?\*\/)?\s*\{/gm,(t,n)=>{const a=`__visuStructLoopGuard${e++}`;return`${n}for (let ${a} = 0; ${a} < 100000 || (() => { throw new Error(${JSON.stringify(Wf())}); })(); ${a}++) {`})}function Ef(i){return Lf(i).replace(/\bprompt\s*\(/g,"await __visuStructPrompt(")}const Nf=` +`)}const en={target:"visustruct.codegen.target",javaMode:"visustruct.codegen.javaOutputMode",comments:"visustruct.codegen.includeDiagramComments",emptyElse:"visustruct.codegen.includeEmptyElse"};function Ia(i){try{return localStorage.getItem(i)}catch{return null}}function ka(i,e){try{localStorage.setItem(i,e)}catch{}}const Ef=()=>f("web_run_stopped_loop"),Nc=()=>f("web_run_cancelled"),ze=i=>i.replace(/&/g,"&").replace(//g,">").replace(/"/g,""");function Nf(i){let e=0;return i.replace(/^(\s*)while\s*\(\s*true\s*\)(?:\s*\/\*.*?\*\/)?\s*\{/gm,(t,n)=>{const a=`__visuStructLoopGuard${e++}`;return`${n}for (let ${a} = 0; ${a} < 100000 || (() => { throw new Error(${JSON.stringify(Ef())}); })(); ${a}++) {`})}function Ff(i){return Nf(i).replace(/\bprompt\s*\(/g,"await __visuStructPrompt(")}const Jf=` let answer let lines = [] const flush = () => { @@ -216,7 +216,7 @@ console.log = (...args) => { } setInterval(flush, 50) const __visuStructPrompt = (label) => new Promise((resolve, reject) => { - answer = (value) => (value === null ? reject(new Error(${JSON.stringify(Ec())})) : resolve(value)) + answer = (value) => (value === null ? reject(new Error(${JSON.stringify(Nc())})) : resolve(value)) send('prompt', String(label ?? '')) }) onmessage = async (e) => { @@ -229,7 +229,7 @@ onmessage = async (e) => { send('error', String(err)) } } -`,bs=2e3;class Ff{constructor(e,t,n,a,s=()=>[]){I(this,"element");I(this,"target");I(this,"javaMode");I(this,"comments");I(this,"emptyElse");I(this,"code","");I(this,"codeView");I(this,"javaModeRow");I(this,"runButton");I(this,"saveButton");I(this,"copyButton");I(this,"runner");I(this,"runOutput");I(this,"runInput");I(this,"pseudocodeBox");I(this,"pseudocodeHint");I(this,"worker");I(this,"outputLines",[]);I(this,"droppedLines",0);I(this,"outputFrame");I(this,"pendingAnswer");this.currentDocument=e,this.saveFile=t,this.onClose=n,this.setPseudocode=a,this.subprograms=s;const r=Ia(en.target);this.target=r==="python"||r==="javascript"?r:"java",this.javaMode=Ia(en.javaMode)==="class"?"class":"snippet",this.comments=Ia(en.comments)==="true",this.emptyElse=Ia(en.emptyElse)!=="false",this.element=document.createElement("aside"),this.element.className="codepanel",this.build()}refresh(){const e=this.currentDocument(),t=this.options();this.code=this.target==="java"&&this.javaMode==="class"?u0(e,this.classStem(),t,this.subprograms()):bc(e,this.target,t,this.subprograms()),this.codeView.textContent=this.code,this.javaModeRow.hidden=this.target!=="java",this.saveButton.hidden=this.target!=="java",this.runButton.hidden=this.target!=="javascript"||!!e.pseudocode,this.runButton.hidden&&this.stopRun(!0),this.pseudocodeBox.checked=!!e.pseudocode,this.pseudocodeHint.hidden=!e.pseudocode;for(const n of this.element.querySelectorAll("[data-target]"))n.setAttribute("aria-pressed",String(n.dataset.target===this.target));for(const n of this.element.querySelectorAll("[data-java-mode]"))n.setAttribute("aria-pressed",String(n.dataset.javaMode===this.javaMode))}close(){this.stopRun(!0)}options(){return{includeDiagramTextAsComments:this.comments,includeEmptyElseBranch:this.emptyElse,pseudocodeNote:f("codegen_pseudocode_note")}}classStem(){return pi(this.currentDocument().caption)||"Main"}build(){this.element.innerHTML=` +`,bs=2e3;class Gf{constructor(e,t,n,a,s=()=>[]){I(this,"element");I(this,"target");I(this,"javaMode");I(this,"comments");I(this,"emptyElse");I(this,"code","");I(this,"codeView");I(this,"javaModeRow");I(this,"runButton");I(this,"saveButton");I(this,"copyButton");I(this,"runner");I(this,"runOutput");I(this,"runInput");I(this,"pseudocodeBox");I(this,"pseudocodeHint");I(this,"worker");I(this,"outputLines",[]);I(this,"droppedLines",0);I(this,"outputFrame");I(this,"pendingAnswer");this.currentDocument=e,this.saveFile=t,this.onClose=n,this.setPseudocode=a,this.subprograms=s;const r=Ia(en.target);this.target=r==="python"||r==="javascript"?r:"java",this.javaMode=Ia(en.javaMode)==="class"?"class":"snippet",this.comments=Ia(en.comments)==="true",this.emptyElse=Ia(en.emptyElse)!=="false",this.element=document.createElement("aside"),this.element.className="codepanel",this.build()}refresh(){const e=this.currentDocument(),t=this.options();this.code=this.target==="java"&&this.javaMode==="class"?m0(e,this.classStem(),t,this.subprograms()):yc(e,this.target,t,this.subprograms()),this.codeView.textContent=this.code,this.javaModeRow.hidden=this.target!=="java",this.saveButton.hidden=this.target!=="java",this.runButton.hidden=this.target!=="javascript"||!!e.pseudocode,this.runButton.hidden&&this.stopRun(!0),this.pseudocodeBox.checked=!!e.pseudocode,this.pseudocodeHint.hidden=!e.pseudocode;for(const n of this.element.querySelectorAll("[data-target]"))n.setAttribute("aria-pressed",String(n.dataset.target===this.target));for(const n of this.element.querySelectorAll("[data-java-mode]"))n.setAttribute("aria-pressed",String(n.dataset.javaMode===this.javaMode))}close(){this.stopRun(!0)}options(){return{includeDiagramTextAsComments:this.comments,includeEmptyElseBranch:this.emptyElse,pseudocodeNote:f("codegen_pseudocode_note")}}classStem(){return pi(this.currentDocument().caption)||"Main"}build(){this.element.innerHTML=`

${ze(f("codegen_placeholder_title"))}

@@ -259,11 +259,11 @@ onmessage = async (e) => {

${ze(f("codegen_generated_hint"))}

- `;const e=a=>this.element.querySelector(a);this.codeView=e(".code-view"),this.javaModeRow=e(".java-mode"),this.runButton=e("[data-act=run]"),this.saveButton=e("[data-act=save]"),this.copyButton=e("[data-act=copy]"),this.runner=e(".runner"),this.runOutput=e(".runner-out"),this.runInput=e(".runner-input"),this.pseudocodeBox=e("[data-opt=pseudocode]"),this.pseudocodeHint=e(".pseudocode-hint"),this.pseudocodeBox.addEventListener("change",()=>this.setPseudocode(this.pseudocodeBox.checked)),e(".code-close").addEventListener("click",()=>this.onClose());for(const a of this.element.querySelectorAll("[data-target]"))a.addEventListener("click",()=>{this.target=a.dataset.target,ka(en.target,this.target),this.refresh()});for(const a of this.element.querySelectorAll("[data-java-mode]"))a.addEventListener("click",()=>{this.javaMode=a.dataset.javaMode,ka(en.javaMode,this.javaMode),this.refresh()});const t=e("[data-opt=comments]");t.checked=this.comments,t.addEventListener("change",()=>{this.comments=t.checked,ka(en.comments,String(this.comments)),this.refresh()});const n=e("[data-opt=emptyElse]");n.checked=this.emptyElse,n.addEventListener("change",()=>{this.emptyElse=n.checked,ka(en.emptyElse,String(this.emptyElse)),this.refresh()}),this.copyButton.addEventListener("click",()=>this.copy()),this.saveButton.addEventListener("click",()=>{const a=$i(this.classStem()),s=u0(this.currentDocument(),this.classStem(),this.options());this.saveFile(`${a}.java`,s)}),this.runButton.addEventListener("click",()=>this.run()),e("[data-act=stop]").addEventListener("click",()=>this.stopRun(!1)),e("[data-act=cancel]").addEventListener("click",()=>this.answer(null)),this.runInput.addEventListener("submit",a=>{a.preventDefault(),this.answer(this.runInput.querySelector("input").value)})}async copy(){var t;let e=!1;try{await navigator.clipboard.writeText(this.code),e=!0}catch{const n=document.createRange();n.selectNodeContents(this.codeView);const a=getSelection();a==null||a.removeAllRanges(),a==null||a.addRange(n),e=((t=document.execCommand)==null?void 0:t.call(document,"copy"))??!1}this.copyButton.textContent=f(e?"web_copied_check":"web_copy_manual"),setTimeout(()=>this.copyButton.textContent=f("codegen_copy"),2e3)}run(){this.stopRun(!0),this.runner.hidden=!1,this.runOutput.textContent="",this.outputLines=[],this.droppedLines=0,this.runOutput.classList.remove("error");const e=Ef(this.code),t=n=>this.onRunnerMessage(n);try{const n=URL.createObjectURL(new Blob([Nf],{type:"text/javascript"})),a=new Worker(n);URL.revokeObjectURL(n),a.onmessage=s=>t(s.data),a.onerror=s=>{s.preventDefault(),t({type:"error",text:s.message||f("web_run_error")})},a.postMessage({type:"run",code:e}),this.worker=a}catch{this.runInPage(e,t)}this.setRunning(!0)}runInPage(e,t){const n={log:(...r)=>t({type:"log",lines:[r.map(o=>typeof o=="string"?o:JSON.stringify(o)).join(" ")]})},a=r=>new Promise((o,l)=>{this.pendingAnswer=u=>u===null?l(new Error(Ec())):o(u),t({type:"prompt",text:r})}),s=(async()=>{}).constructor;new s("__visuStructPrompt","console",e)(a,n).then(()=>t({type:"done"})).catch(r=>t({type:"error",text:String(r)}))}onRunnerMessage(e){switch(e.type){case"log":this.appendOutput(e.lines??[]);break;case"prompt":{this.runInput.hidden=!1,this.runInput.querySelector("label").textContent=e.text??"";const t=this.runInput.querySelector("input");t.value="",t.focus();break}case"error":this.appendOutput([e.text??""]),this.runOutput.classList.add("error"),this.stopRun(!1);break;case"done":this.stopRun(!1);break}}appendOutput(e){this.outputLines.push(...e),this.outputLines.length>bs&&(this.droppedLines+=this.outputLines.length-bs,this.outputLines.splice(0,this.outputLines.length-bs)),this.outputFrame===void 0&&(this.outputFrame=requestAnimationFrame(()=>{this.outputFrame=void 0;const t=this.droppedLines>0?f("web_run_dropped_fmt",this.droppedLines)+` + `;const e=a=>this.element.querySelector(a);this.codeView=e(".code-view"),this.javaModeRow=e(".java-mode"),this.runButton=e("[data-act=run]"),this.saveButton=e("[data-act=save]"),this.copyButton=e("[data-act=copy]"),this.runner=e(".runner"),this.runOutput=e(".runner-out"),this.runInput=e(".runner-input"),this.pseudocodeBox=e("[data-opt=pseudocode]"),this.pseudocodeHint=e(".pseudocode-hint"),this.pseudocodeBox.addEventListener("change",()=>this.setPseudocode(this.pseudocodeBox.checked)),e(".code-close").addEventListener("click",()=>this.onClose());for(const a of this.element.querySelectorAll("[data-target]"))a.addEventListener("click",()=>{this.target=a.dataset.target,ka(en.target,this.target),this.refresh()});for(const a of this.element.querySelectorAll("[data-java-mode]"))a.addEventListener("click",()=>{this.javaMode=a.dataset.javaMode,ka(en.javaMode,this.javaMode),this.refresh()});const t=e("[data-opt=comments]");t.checked=this.comments,t.addEventListener("change",()=>{this.comments=t.checked,ka(en.comments,String(this.comments)),this.refresh()});const n=e("[data-opt=emptyElse]");n.checked=this.emptyElse,n.addEventListener("change",()=>{this.emptyElse=n.checked,ka(en.emptyElse,String(this.emptyElse)),this.refresh()}),this.copyButton.addEventListener("click",()=>this.copy()),this.saveButton.addEventListener("click",()=>{const a=$i(this.classStem()),s=m0(this.currentDocument(),this.classStem(),this.options());this.saveFile(`${a}.java`,s)}),this.runButton.addEventListener("click",()=>this.run()),e("[data-act=stop]").addEventListener("click",()=>this.stopRun(!1)),e("[data-act=cancel]").addEventListener("click",()=>this.answer(null)),this.runInput.addEventListener("submit",a=>{a.preventDefault(),this.answer(this.runInput.querySelector("input").value)})}async copy(){var t;let e=!1;try{await navigator.clipboard.writeText(this.code),e=!0}catch{const n=document.createRange();n.selectNodeContents(this.codeView);const a=getSelection();a==null||a.removeAllRanges(),a==null||a.addRange(n),e=((t=document.execCommand)==null?void 0:t.call(document,"copy"))??!1}this.copyButton.textContent=f(e?"web_copied_check":"web_copy_manual"),setTimeout(()=>this.copyButton.textContent=f("codegen_copy"),2e3)}run(){this.stopRun(!0),this.runner.hidden=!1,this.runOutput.textContent="",this.outputLines=[],this.droppedLines=0,this.runOutput.classList.remove("error");const e=Ff(this.code),t=n=>this.onRunnerMessage(n);try{const n=URL.createObjectURL(new Blob([Jf],{type:"text/javascript"})),a=new Worker(n);URL.revokeObjectURL(n),a.onmessage=s=>t(s.data),a.onerror=s=>{s.preventDefault(),t({type:"error",text:s.message||f("web_run_error")})},a.postMessage({type:"run",code:e}),this.worker=a}catch{this.runInPage(e,t)}this.setRunning(!0)}runInPage(e,t){const n={log:(...r)=>t({type:"log",lines:[r.map(o=>typeof o=="string"?o:JSON.stringify(o)).join(" ")]})},a=r=>new Promise((o,l)=>{this.pendingAnswer=u=>u===null?l(new Error(Nc())):o(u),t({type:"prompt",text:r})}),s=(async()=>{}).constructor;new s("__visuStructPrompt","console",e)(a,n).then(()=>t({type:"done"})).catch(r=>t({type:"error",text:String(r)}))}onRunnerMessage(e){switch(e.type){case"log":this.appendOutput(e.lines??[]);break;case"prompt":{this.runInput.hidden=!1,this.runInput.querySelector("label").textContent=e.text??"";const t=this.runInput.querySelector("input");t.value="",t.focus();break}case"error":this.appendOutput([e.text??""]),this.runOutput.classList.add("error"),this.stopRun(!1);break;case"done":this.stopRun(!1);break}}appendOutput(e){this.outputLines.push(...e),this.outputLines.length>bs&&(this.droppedLines+=this.outputLines.length-bs,this.outputLines.splice(0,this.outputLines.length-bs)),this.outputFrame===void 0&&(this.outputFrame=requestAnimationFrame(()=>{this.outputFrame=void 0;const t=this.droppedLines>0?f("web_run_dropped_fmt",this.droppedLines)+` `:"";this.runOutput.textContent=t+this.outputLines.join(` `)+(this.outputLines.length?` -`:""),this.runOutput.scrollTop=this.runOutput.scrollHeight}))}answer(e){var t;this.runInput.hidden=!0,this.worker?this.worker.postMessage({type:"answer",value:e}):(t=this.pendingAnswer)==null||t.call(this,e),this.pendingAnswer=void 0}stopRun(e){var t;(t=this.worker)==null||t.terminate(),this.worker=void 0,this.pendingAnswer=void 0,this.runInput&&(this.runInput.hidden=!0),e&&this.runner&&(this.runner.hidden=!0),this.setRunning(!1)}setRunning(e){const t=this.element.querySelector("[data-act=stop]");t&&(t.disabled=!e)}}const Ie=(i,e=!1)=>``,ne={newFile:Ie(''),open:Ie(''),save:Ie(''),undo:Ie(''),redo:Ie(''),cut:Ie(''),copy:Ie(''),paste:Ie(''),trash:Ie(''),share:Ie(''),code:Ie(''),play:Ie('',!0),step:Ie(''),indent:Ie(''),stop:Ie('',!0),folder:Ie(''),newFolder:Ie(''),diagram:Ie(''),fileText:Ie('')},Nc="visustruct.learn.progress",ys={"04-sequenz":"05-sequenz","05-variablen-und-datentypen":"04-variablen-und-datentypen","07-verzweigung":"08-verzweigung","08-bedingungen-verknuepfen":"09-bedingungen-verknuepfen","09-fallauswahl":"10-fallauswahl","10-while-schleife":"11-while-schleife","11-do-while-schleife":"12-do-while-schleife","12-for-schleife":"13-for-schleife","13-verschachteln":"14-verschachteln","14-arrays":"15-arrays","15-aufruf-und-aussprung":"18-aufruf-und-aussprung","16-aufruf-und-aussprung":"18-aufruf-und-aussprung","17-aufruf-und-aussprung":"18-aufruf-und-aussprung","17-suchen-und-sortieren":"19-suchen-und-sortieren","18-suchen-und-sortieren":"19-suchen-und-sortieren","16-simulation-und-schreibtischtest":"07-simulation-und-schreibtischtest","17-java":"20-java","18-java":"20-java","19-java":"20-java","18-python-und-javascript":"21-python-und-javascript","19-python-und-javascript":"21-python-und-javascript","20-python-und-javascript":"21-python-und-javascript","22-erstes-fenster":"28-erstes-fenster","23-knopf-im-fenster":"29-knopf-im-fenster","24-der-knopf-reagiert":"30-der-knopf-reagiert","23-erstes-fenster":"28-erstes-fenster","24-knopf-im-fenster":"29-knopf-im-fenster","25-der-knopf-reagiert":"30-der-knopf-reagiert","26-zahl-verdoppeln":"31-zahl-verdoppeln","27-klickzaehler":"32-klickzaehler","28-ampel":"33-ampel","29-notenrechner":"34-notenrechner","30-taschenrechner":"35-taschenrechner","31-zahlenraten":"36-zahlenraten"};function Fc(i){var n;const e={...i.lessons};for(const[a,s]of Object.entries(ys))i.lessons[a]&&!i.lessons[s]&&(e[s]=i.lessons[a]),i.lessons[a]&&delete e[a];const t=(n=i.view)!=null&&n.lesson&&ys[i.view.lesson]?{...i.view,lesson:ys[i.view.lesson]}:i.view;return{...i,lessons:e,view:t}}function Jc(){try{const i=localStorage.getItem(Nc);if(i){const e=JSON.parse(i);return Fc({lessons:e.lessons??{},exercises:e.exercises??{},view:e.view})}}catch{}return{lessons:{},exercises:{}}}let Me=Jc();const Sr=new Set;function b1(){try{localStorage.setItem(Nc,JSON.stringify(Me))}catch{}for(const i of Sr)i()}const m0="visustruct-lernstand";function Gc(i,e){return i||e||void 0}function Jf(i,e){if(!i)return e;const t={...e.checks};for(const[n,a]of Object.entries(i.checks??{}))t[n]=a||!!t[n];return{step:Math.max(i.step??0,e.step??0),done:Gc(i.done,e.done),checks:Object.keys(t).length?t:void 0,quiz:i.quiz||e.quiz?{...e.quiz,...i.quiz}:void 0}}function Gf(i,e){const t={...i.lessons};for(const[a,s]of Object.entries(e.lessons))t[a]=Jf(i.lessons[a],s);const n={...i.exercises};for(const[a,s]of Object.entries(e.exercises)){const r=i.exercises[a];n[a]=r?{done:Gc(r.done,s.done),xml:r.xml??s.xml}:s}return{lessons:t,exercises:n}}const oe={lesson(i){var e;return(e=Me.lessons)[i]??(e[i]={step:0})},updateLesson(i,e){Me.lessons[i]={...oe.lesson(i),...e},b1()},exercise(i){return Me.exercises[i]??{}},updateExercise(i,e){Me.exercises[i]={...oe.exercise(i),...e},b1()},resetExercise(i){delete Me.exercises[i],b1()},view(){return Me.view},setView(i){Me.view=i,b1()},onChange(i){return Sr.add(i),()=>Sr.delete(i)},toFile(){return JSON.stringify({format:m0,version:1,saved:new Date().toISOString(),lessons:Me.lessons,exercises:Me.exercises},null,2)},mergeFile(i){let e;try{e=JSON.parse(i)}catch{return!1}if((e==null?void 0:e.format)!==m0)return!1;const t=Fc({lessons:e.lessons??{},exercises:e.exercises??{}}),n=Gf(Me,t),a=JSON.stringify(n)!==JSON.stringify({lessons:Me.lessons,exercises:Me.exercises});return Me={...Me,...n},a&&b1(),a},reload(){Me=Jc()}};function c0(i=new Date){const e=t=>String(t).padStart(2,"0");return`${i.getFullYear()}-${e(i.getMonth()+1)}-${e(i.getDate())}`}const d0=i=>/^\d{4}-\d{2}-\d{2}$/.test(i);function Rf(i,e){return i.kind!==e.kind?i.kind==="directory"?-1:1:d0(i.name)&&d0(e.name)?e.name.localeCompare(i.name):i.name.localeCompare(e.name,void 0,{numeric:!0,sensitivity:"base"})}function Hf(i,e){return i.replace(/\.(visustruct|strk|java)$/i,"").replace(/[\\/:*?"<>|\u0000-\u001f]/g,"-").replace(/\s+/g," ").trim().replace(/^\.+/,"")||e}function Qf(i,e){const t=new Set([...e].map(a=>a.toLowerCase())),n=a=>!t.has(`${a}.visustruct`.toLowerCase())&&!t.has(`${a}.java`.toLowerCase());if(n(i))return i;for(let a=2;;a++)if(n(`${i} ${a}`))return`${i} ${a}`}function Vf(i){const e=i.replace(/[\\/:*?"<>|\u0000-\u001f]/g,"").trim();return e&&e!=="."&&e!==".."?e:void 0}const qf=1e5;function Uf(i,e,t){const n=new fi(i,t),a=[...e];for(let s=0;s({outputs:[...r.outputLines],files:new Map(r.files)});if(r.inputRequest){const l=a.shift();if(l===void 0)return{...o(),missingInput:!0};if(n.provideInput(l),r.inputErrorNotice)return{...o(),error:r.inputErrorNotice};continue}if(r.isHalted)return{...o(),error:r.notice};if(!n.canStep)return{...o(),unusedInputs:a.length||void 0};n.step()}return{outputs:[...n.state.outputLines],files:new Map(n.state.files),tooManySteps:!0}}function Rc(i){return i===void 0||i===""?[]:i.replace(/\n$/,"").split(` -`)}function h0(i,e){return i.length!==e.length?!1:i.every((t,n)=>g0(t)===g0(e[n]))}function g0(i){const e=i.trim().replace(/\s+/g," ");return/^-?\d+\.0+$/.test(e)?e.replace(/\.0+$/,""):e}function $f(i,e,t){return e.map(n=>{const a=Uf(i,n.inputs,t),s=(n.files??[]).every(o=>{var l;return h0(Rc((l=a.files)==null?void 0:l.get(o.name)),o.lines)}),r=!a.error&&!a.missingInput&&!a.tooManySteps&&h0(a.outputs,n.expected)&&s;return{test:n,result:a,passed:r}})}function Yf(i){const e=new Set,t=n=>{for(const a of n){e.add(a.type),a.loopBody&&t(a.loopBody);for(const s of a.cases??[])t(s.elements)}};return t(i.elements),e}class Q1 extends Error{}function Xf(i,e){const t=[],n=[];for(const a of i){const s=a.trim();if(!s)continue;if(s.startsWith("?")){const o=s.slice(1).trim();wi(o,Kf(t)),n.push(o);continue}const r=/^([A-Za-z_]\w*)\s*:\s*(?:(-?\d+)\s*\.\.\s*(-?\d+)|(boolean))$/.exec(s);if(!r)throw new Q1(`${e}: Unbekannte Zeile im Spiel: „${s}“`);t.push(r[4]?{name:r[1],kind:"boolean"}:{name:r[1],kind:"int",min:Number(r[2]),max:Number(r[3])})}if(!n.length)throw new Q1(`${e}: Das Spiel braucht mindestens eine Zeile „? bedingung“.`);return{vars:t,conditions:n}}function Kf(i){return Object.fromEntries(i.map(e=>[e.name,e.kind==="boolean"?!0:e.min]))}function e3(i){const e=[],t=/\s*(?:(\d+)|(true|false)\b|([A-Za-z_]\w*)|(&&|\|\||==|!=|<=|>=|<|>|!|\(|\)))/y;let n=0;for(;nt[n],s=d=>{var h;return((h=a())==null?void 0:h.kind)==="op"&&a().value===d},r=()=>{throw new Q1(`Bedingung nicht lesbar: „${i}“`)},o=()=>{const d=t[n++]??r();if(d.kind==="num"||d.kind==="bool")return d.value;if(d.kind==="name"){if(!(d.value in e))throw new Q1(`Unbekannte Variable „${d.value}“ in „${i}“`);return e[d.value]}if(d.value==="("){const h=m();return s(")")||r(),n++,h}if(d.value==="!"){const h=o();return typeof h!="boolean"&&r(),!h}return r()},l=()=>{const d=o(),h=a();if((h==null?void 0:h.kind)==="op"&&["==","!=","<","<=",">",">="].includes(h.value)){n++;const g=o();switch(h.value){case"==":return d===g;case"!=":return d!==g}(typeof d!="number"||typeof g!="number")&&r();const[p,x]=[d,g];return h.value==="<"?p"?p>x:p>=x}return d},u=()=>{let d=l();for(;s("&&");){n++;const h=l();d=d&&h}return d},m=()=>{let d=u();for(;s("||");){n++;const h=u();d=d||h}return d},c=m();return n!==t.length||typeof c!="boolean"?r():c}function t3(i,e){const t=[i],n=i.replace(/\b[A-Za-z_]\w*\b/g,r=>r in e?String(e[r]):r);n!==i&&t.push(n);const a=n.replace(/(-?\d+|true|false)\s*(==|!=|<=|>=|<|>)\s*(-?\d+|true|false)/g,r=>String(wi(r,{})));a!==t[t.length-1]&&t.push(a);const s=String(wi(i,e));return s!==t[t.length-1]&&t.push(s),t}function n3(i,e){const t=[],n=new RegExp(`\\b${e}\\s*(?:==|!=|<=|>=|<|>)\\s*(-?\\d+)|(-?\\d+)\\s*(?:==|!=|<=|>=|<|>)\\s*${e}\\b`,"g");for(const a of i.matchAll(n)){const s=Number(a[1]??a[2]);t.push(s-1,s,s+1)}return t}function a3(i,e,t,n=Math.random){const a=i.conditions.length,s=Math.floor(e*a/t),r=Math.min(a-1,s+(n()<.5?0:1)),o=i.conditions[r],l={};for(const u of i.vars){if(u.kind==="boolean"){l[u.name]=n()<.5;continue}const m=n3(o,u.name).filter(c=>c>=u.min&&c<=u.max);l[u.name]=m.length&&n()<.6?m[Math.floor(n()*m.length)]:u.min+Math.floor(n()*(u.max-u.min+1))}return{condition:o,values:l,answer:wi(o,l)}}function i3(i){return Object.entries(i.values).filter(([e])=>new RegExp(`\\b${e}\\b`).test(i.condition))}const s3=`--- +`:""),this.runOutput.scrollTop=this.runOutput.scrollHeight}))}answer(e){var t;this.runInput.hidden=!0,this.worker?this.worker.postMessage({type:"answer",value:e}):(t=this.pendingAnswer)==null||t.call(this,e),this.pendingAnswer=void 0}stopRun(e){var t;(t=this.worker)==null||t.terminate(),this.worker=void 0,this.pendingAnswer=void 0,this.runInput&&(this.runInput.hidden=!0),e&&this.runner&&(this.runner.hidden=!0),this.setRunning(!1)}setRunning(e){const t=this.element.querySelector("[data-act=stop]");t&&(t.disabled=!e)}}const Ie=(i,e=!1)=>``,ne={newFile:Ie(''),open:Ie(''),save:Ie(''),undo:Ie(''),redo:Ie(''),cut:Ie(''),copy:Ie(''),paste:Ie(''),trash:Ie(''),share:Ie(''),code:Ie(''),play:Ie('',!0),step:Ie(''),indent:Ie(''),stop:Ie('',!0),folder:Ie(''),newFolder:Ie(''),diagram:Ie(''),fileText:Ie('')},Fc="visustruct.learn.progress",ys={"04-sequenz":"05-sequenz","05-variablen-und-datentypen":"04-variablen-und-datentypen","07-verzweigung":"08-verzweigung","08-bedingungen-verknuepfen":"09-bedingungen-verknuepfen","09-fallauswahl":"10-fallauswahl","10-while-schleife":"11-while-schleife","11-do-while-schleife":"12-do-while-schleife","12-for-schleife":"13-for-schleife","13-verschachteln":"14-verschachteln","14-arrays":"15-arrays","15-aufruf-und-aussprung":"18-aufruf-und-aussprung","16-aufruf-und-aussprung":"18-aufruf-und-aussprung","17-aufruf-und-aussprung":"18-aufruf-und-aussprung","17-suchen-und-sortieren":"19-suchen-und-sortieren","18-suchen-und-sortieren":"19-suchen-und-sortieren","16-simulation-und-schreibtischtest":"07-simulation-und-schreibtischtest","17-java":"20-java","18-java":"20-java","19-java":"20-java","18-python-und-javascript":"21-python-und-javascript","19-python-und-javascript":"21-python-und-javascript","20-python-und-javascript":"21-python-und-javascript","22-erstes-fenster":"28-erstes-fenster","23-knopf-im-fenster":"29-knopf-im-fenster","24-der-knopf-reagiert":"30-der-knopf-reagiert","23-erstes-fenster":"28-erstes-fenster","24-knopf-im-fenster":"29-knopf-im-fenster","25-der-knopf-reagiert":"30-der-knopf-reagiert","26-zahl-verdoppeln":"31-zahl-verdoppeln","27-klickzaehler":"32-klickzaehler","28-ampel":"33-ampel","29-notenrechner":"34-notenrechner","30-taschenrechner":"35-taschenrechner","31-zahlenraten":"36-zahlenraten"};function Jc(i){var n;const e={...i.lessons};for(const[a,s]of Object.entries(ys))i.lessons[a]&&!i.lessons[s]&&(e[s]=i.lessons[a]),i.lessons[a]&&delete e[a];const t=(n=i.view)!=null&&n.lesson&&ys[i.view.lesson]?{...i.view,lesson:ys[i.view.lesson]}:i.view;return{...i,lessons:e,view:t}}function Gc(){try{const i=localStorage.getItem(Fc);if(i){const e=JSON.parse(i);return Jc({lessons:e.lessons??{},exercises:e.exercises??{},view:e.view})}}catch{}return{lessons:{},exercises:{}}}let Me=Gc();const Sr=new Set;function b1(){try{localStorage.setItem(Fc,JSON.stringify(Me))}catch{}for(const i of Sr)i()}const c0="visustruct-lernstand";function Rc(i,e){return i||e||void 0}function Rf(i,e){if(!i)return e;const t={...e.checks};for(const[n,a]of Object.entries(i.checks??{}))t[n]=a||!!t[n];return{step:Math.max(i.step??0,e.step??0),done:Rc(i.done,e.done),checks:Object.keys(t).length?t:void 0,quiz:i.quiz||e.quiz?{...e.quiz,...i.quiz}:void 0}}function Hf(i,e){const t={...i.lessons};for(const[a,s]of Object.entries(e.lessons))t[a]=Rf(i.lessons[a],s);const n={...i.exercises};for(const[a,s]of Object.entries(e.exercises)){const r=i.exercises[a];n[a]=r?{done:Rc(r.done,s.done),xml:r.xml??s.xml}:s}return{lessons:t,exercises:n}}const oe={lesson(i){var e;return(e=Me.lessons)[i]??(e[i]={step:0})},updateLesson(i,e){Me.lessons[i]={...oe.lesson(i),...e},b1()},exercise(i){return Me.exercises[i]??{}},updateExercise(i,e){Me.exercises[i]={...oe.exercise(i),...e},b1()},resetExercise(i){delete Me.exercises[i],b1()},view(){return Me.view},setView(i){Me.view=i,b1()},onChange(i){return Sr.add(i),()=>Sr.delete(i)},toFile(){return JSON.stringify({format:c0,version:1,saved:new Date().toISOString(),lessons:Me.lessons,exercises:Me.exercises},null,2)},mergeFile(i){let e;try{e=JSON.parse(i)}catch{return!1}if((e==null?void 0:e.format)!==c0)return!1;const t=Jc({lessons:e.lessons??{},exercises:e.exercises??{}}),n=Hf(Me,t),a=JSON.stringify(n)!==JSON.stringify({lessons:Me.lessons,exercises:Me.exercises});return Me={...Me,...n},a&&b1(),a},reload(){Me=Gc()}};function d0(i=new Date){const e=t=>String(t).padStart(2,"0");return`${i.getFullYear()}-${e(i.getMonth()+1)}-${e(i.getDate())}`}const h0=i=>/^\d{4}-\d{2}-\d{2}$/.test(i);function Qf(i,e){return i.kind!==e.kind?i.kind==="directory"?-1:1:h0(i.name)&&h0(e.name)?e.name.localeCompare(i.name):i.name.localeCompare(e.name,void 0,{numeric:!0,sensitivity:"base"})}function Vf(i,e){return i.replace(/\.(visustruct|strk|java)$/i,"").replace(/[\\/:*?"<>|\u0000-\u001f]/g,"-").replace(/\s+/g," ").trim().replace(/^\.+/,"")||e}function qf(i,e){const t=new Set([...e].map(a=>a.toLowerCase())),n=a=>!t.has(`${a}.visustruct`.toLowerCase())&&!t.has(`${a}.java`.toLowerCase());if(n(i))return i;for(let a=2;;a++)if(n(`${i} ${a}`))return`${i} ${a}`}function Uf(i){const e=i.replace(/[\\/:*?"<>|\u0000-\u001f]/g,"").trim();return e&&e!=="."&&e!==".."?e:void 0}const $f=1e5;function Yf(i,e,t){const n=new fi(i,t),a=[...e];for(let s=0;s<$f;s++){const{state:r}=n,o=()=>({outputs:[...r.outputLines],files:new Map(r.files)});if(r.inputRequest){const l=a.shift();if(l===void 0)return{...o(),missingInput:!0};if(n.provideInput(l),r.inputErrorNotice)return{...o(),error:r.inputErrorNotice};continue}if(r.isHalted)return{...o(),error:r.notice};if(!n.canStep)return{...o(),unusedInputs:a.length||void 0};n.step()}return{outputs:[...n.state.outputLines],files:new Map(n.state.files),tooManySteps:!0}}function Hc(i){return i===void 0||i===""?[]:i.replace(/\n$/,"").split(` +`)}function g0(i,e){return i.length!==e.length?!1:i.every((t,n)=>p0(t)===p0(e[n]))}function p0(i){const e=i.trim().replace(/\s+/g," ");return/^-?\d+\.0+$/.test(e)?e.replace(/\.0+$/,""):e}function Xf(i,e,t){return e.map(n=>{const a=Yf(i,n.inputs,t),s=(n.files??[]).every(o=>{var l;return g0(Hc((l=a.files)==null?void 0:l.get(o.name)),o.lines)}),r=!a.error&&!a.missingInput&&!a.tooManySteps&&g0(a.outputs,n.expected)&&s;return{test:n,result:a,passed:r}})}function Kf(i){const e=new Set,t=n=>{for(const a of n){e.add(a.type),a.loopBody&&t(a.loopBody);for(const s of a.cases??[])t(s.elements)}};return t(i.elements),e}class Q1 extends Error{}function e3(i,e){const t=[],n=[];for(const a of i){const s=a.trim();if(!s)continue;if(s.startsWith("?")){const o=s.slice(1).trim();wi(o,t3(t)),n.push(o);continue}const r=/^([A-Za-z_]\w*)\s*:\s*(?:(-?\d+)\s*\.\.\s*(-?\d+)|(boolean))$/.exec(s);if(!r)throw new Q1(`${e}: Unbekannte Zeile im Spiel: „${s}“`);t.push(r[4]?{name:r[1],kind:"boolean"}:{name:r[1],kind:"int",min:Number(r[2]),max:Number(r[3])})}if(!n.length)throw new Q1(`${e}: Das Spiel braucht mindestens eine Zeile „? bedingung“.`);return{vars:t,conditions:n}}function t3(i){return Object.fromEntries(i.map(e=>[e.name,e.kind==="boolean"?!0:e.min]))}function n3(i){const e=[],t=/\s*(?:(\d+)|(true|false)\b|([A-Za-z_]\w*)|(&&|\|\||==|!=|<=|>=|<|>|!|\(|\)))/y;let n=0;for(;nt[n],s=d=>{var h;return((h=a())==null?void 0:h.kind)==="op"&&a().value===d},r=()=>{throw new Q1(`Bedingung nicht lesbar: „${i}“`)},o=()=>{const d=t[n++]??r();if(d.kind==="num"||d.kind==="bool")return d.value;if(d.kind==="name"){if(!(d.value in e))throw new Q1(`Unbekannte Variable „${d.value}“ in „${i}“`);return e[d.value]}if(d.value==="("){const h=m();return s(")")||r(),n++,h}if(d.value==="!"){const h=o();return typeof h!="boolean"&&r(),!h}return r()},l=()=>{const d=o(),h=a();if((h==null?void 0:h.kind)==="op"&&["==","!=","<","<=",">",">="].includes(h.value)){n++;const g=o();switch(h.value){case"==":return d===g;case"!=":return d!==g}(typeof d!="number"||typeof g!="number")&&r();const[p,x]=[d,g];return h.value==="<"?p"?p>x:p>=x}return d},u=()=>{let d=l();for(;s("&&");){n++;const h=l();d=d&&h}return d},m=()=>{let d=u();for(;s("||");){n++;const h=u();d=d||h}return d},c=m();return n!==t.length||typeof c!="boolean"?r():c}function a3(i,e){const t=[i],n=i.replace(/\b[A-Za-z_]\w*\b/g,r=>r in e?String(e[r]):r);n!==i&&t.push(n);const a=n.replace(/(-?\d+|true|false)\s*(==|!=|<=|>=|<|>)\s*(-?\d+|true|false)/g,r=>String(wi(r,{})));a!==t[t.length-1]&&t.push(a);const s=String(wi(i,e));return s!==t[t.length-1]&&t.push(s),t}function i3(i,e){const t=[],n=new RegExp(`\\b${e}\\s*(?:==|!=|<=|>=|<|>)\\s*(-?\\d+)|(-?\\d+)\\s*(?:==|!=|<=|>=|<|>)\\s*${e}\\b`,"g");for(const a of i.matchAll(n)){const s=Number(a[1]??a[2]);t.push(s-1,s,s+1)}return t}function s3(i,e,t,n=Math.random){const a=i.conditions.length,s=Math.floor(e*a/t),r=Math.min(a-1,s+(n()<.5?0:1)),o=i.conditions[r],l={};for(const u of i.vars){if(u.kind==="boolean"){l[u.name]=n()<.5;continue}const m=i3(o,u.name).filter(c=>c>=u.min&&c<=u.max);l[u.name]=m.length&&n()<.6?m[Math.floor(n()*m.length)]:u.min+Math.floor(n()*(u.max-u.min+1))}return{condition:o,values:l,answer:wi(o,l)}}function r3(i){return Object.entries(i.values).filter(([e])=>new RegExp(`\\b${e}\\b`).test(i.condition))}const o3=`--- titel: Was ist ein Struktogramm? bereich: Erste Schritte kurz: Algorithmen als Folge klarer Schritte darstellen und lesen. @@ -536,7 +536,7 @@ richtig: Verzweigung - [ ] Ein Pfeil > Alles zwischen SOLANGE und ENDE SOLANGE ist eingerückt und wird wiederholt. ::: -`,r3=`--- +`,l3=`--- titel: Der Editor bereich: Erste Schritte kurz: Elemente einfügen, Text eingeben, verschieben und löschen. @@ -709,7 +709,7 @@ frage: Du klickst im Bereich Elemente auf ein Element, ohne zu ziehen. Wo landet - [ ] input: "Guten Tag" > Ohne Anführungszeichen wird Guten Tag als Name einer Variablen verstanden. ::: -`,o3=`--- +`,u3=`--- titel: Speichern, Öffnen, Exportieren bereich: Erste Schritte kurz: Dateien sichern, deinen Workspace nutzen, mehrere Diagramme öffnen und als Bild oder PDF weitergeben. @@ -843,7 +843,7 @@ richtig: PNG - [ ] Direkt im Workspace ohne Unterordner > VisuStruct legt für jeden Tag automatisch einen Datumsordner an. So bleiben die Programme nach Stunden sortiert. ::: -`,l3=`--- +`,m3=`--- titel: Variablen und Datentypen bereich: Grundlagen kurz: Werte speichern, die Datentypen int, double, String und boolean kennen und rechnen. @@ -1162,7 +1162,7 @@ richtig: String - [ ] Double preis = 2.5 > Kommazahlen schreibst du mit Punkt, und am Ende steht ein Semikolon. ::: -`,u3=`--- +`,c3=`--- titel: Sequenz bereich: Grundlagen kurz: Schritte nacheinander ausführen, auf die Reihenfolge achten und Werte tauschen. @@ -1379,7 +1379,7 @@ frage: Ludwig kocht Tee. - [ ] Mit einem Doppelpunkt : > Fehlt das Semikolon, zeigt VisuStruct unter dem Code einen Hinweis. ::: -`,m3=`--- +`,d3=`--- titel: Eingabe und Ausgabe bereich: Grundlagen kurz: Werte abfragen, Ergebnisse anzeigen und das EVA-Prinzip anwenden. @@ -1691,7 +1691,7 @@ frage: Zu welchem Teil von EVA gehört dieser Kasten? - [ ] Einen ganzen Satz > Für Kommazahlen gibt es \`scanner.nextDouble()\`, für ein Wort \`scanner.next()\`. ::: -`,c3=`--- +`,h3=`--- titel: Simulation und Schreibtischtest bereich: Grundlagen kurz: Ein Struktogramm Schritt für Schritt ausführen, von Hand nachrechnen und Fehler finden. @@ -1968,7 +1968,7 @@ besser: preis = preis + preis * 0.1; - [ ] Die Zeile wird übersprungen. > Das ist ein Haltepunkt. Mit ▶︎ oder dem Einzelschritt geht es weiter. ::: -`,d3=`--- +`,g3=`--- titel: Verzweigung bereich: Grundlagen kurz: Mit einer Bedingung entscheiden, welcher von zwei Wegen ausgeführt wird. @@ -2285,7 +2285,7 @@ frage: Was wird ausgegeben? - [ ] Hinter einem Semikolon > \`if (alter >= 18) { … }\`: Die runden Klammern gehören zur Bedingung, die geschweiften zum Zweig. ::: -`,h3=`--- +`,p3=`--- titel: Bedingungen verknüpfen bereich: Grundlagen kurz: Mehrere Bedingungen mit und, oder und nicht verbinden und Wertebereiche prüfen. @@ -2577,7 +2577,7 @@ lösung: l09-java-fehler-loesung.visustruct - [ ] if (alter >= 12 || alter < 18) > Jeder Vergleich steht für sich, verbunden mit \`&&\`. ::: -`,g3=`--- +`,f3=`--- titel: Fallauswahl bereich: Grundlagen kurz: Je nach Wert einer Variablen einen von vielen Fällen ausführen. @@ -2874,7 +2874,7 @@ frage: Ein Würfel zeigt 1 bis 6, und für jede Zahl soll ein anderes Wort ersch - [x] default - [ ] case 0 ::: -`,p3=`--- +`,x3=`--- titel: While-Schleife bereich: Grundlagen kurz: Schritte wiederholen, solange eine Bedingung wahr ist. @@ -3200,7 +3200,7 @@ frage: Wie oft läuft der Rumpf? - [ ] while (zahl > 0); > Die Bedingung steht in runden Klammern, danach öffnet \`{\` den Rumpf. ::: -`,f3=`--- +`,b3=`--- titel: Do-while-Schleife bereich: Grundlagen kurz: Erst ausführen, dann prüfen: Schleifen mit mindestens einem Durchlauf. @@ -3447,7 +3447,7 @@ frage: Wofür nimmt man typischerweise eine Do-while-Schleife? - [ ] } until (bedingung); > Nach der Bedingung kommt ein Semikolon. ::: -`,x3=`--- +`,y3=`--- titel: For-Schleife bereich: Grundlagen kurz: Mit Start, Bedingung und Schritt eine feste Anzahl von Durchläufen zählen. @@ -3743,7 +3743,7 @@ besser: for (int i = 2; i <= 10; i = i + 2) { - [ ] i wird ausgegeben. > \`i++\` ist die Kurzform von \`i = i + 1\`. ::: -`,b3=`--- +`,v3=`--- titel: Verschachteln bereich: Grundlagen kurz: Verzweigungen in Schleifen und Schleifen in Schleifen kombinieren. @@ -4009,7 +4009,7 @@ frage: Was passiert? - [x] An den geschweiften Klammern und der Einrückung - [ ] An den Semikolons ::: -`,y3=`--- +`,w3=`--- titel: Arrays bereich: Grundlagen kurz: Viele Werte unter einem Namen speichern, mit dem Index darauf zugreifen und sie mit einer Schleife durchlaufen. @@ -4319,7 +4319,7 @@ besser: for (int i = zahlen.length - 1; i >= 0; i--) { - [ ] int zahlen = [1, 2, 3]; - [ ] array zahlen = (1, 2, 3); ::: -`,v3=`--- +`,z3=`--- titel: Zweidimensionale Arrays bereich: Grundlagen kurz: Werte in Zeilen und Spalten speichern, wie die Sitze in einem Kinosaal, und mit zwei verschachtelten Schleifen durchlaufen. @@ -4604,7 +4604,7 @@ frage: Zwei Schleifen gehen den Saal \`new boolean[3][5]\` durch. Welches Fach k - [ ] 5, die Zahl der Plätze - [ ] 15, alle Plätze zusammen ::: -`,w3=`--- +`,I3=`--- titel: Zeichenketten bereich: Grundlagen kurz: Mit Texten arbeiten, also einzelne Zeichen lesen, Teile herausschneiden, suchen, vergleichen und zerlegen. @@ -5055,7 +5055,7 @@ ende: Zora ist frei, und der Fuchs ist schnell davongelaufen. Das geheime Wort w - [ ] eine Fehlermeldung > parseInt macht aus dem Text eine Zahl. Danach rechnet Java ganz normal. ::: -`,z3=`--- +`,k3=`--- titel: Aufruf und Aussprung bereich: Grundlagen kurz: Große Aufgaben in Unterprogramme zerlegen und Schleifen vorzeitig verlassen. @@ -5512,7 +5512,7 @@ frage: Was wird ausgegeben? - [ ] return > void heißt „leer“: Die Methode macht etwas, gibt aber keinen Wert zurück. ::: -`,I3=`--- +`,S3=`--- titel: Suchen und Sortieren bereich: Grundlagen kurz: Mit Spielkarten verstehen, wie lineare und binäre Suche und Bubblesort arbeiten und warum manche Verfahren viel schneller sind. @@ -5828,7 +5828,7 @@ frage: Bubblesort tauscht \`karten[i]\` und \`karten[i + 1]\`. Was braucht es da - [ ] Eine While-Schleife kann keine Arrays durchlaufen. > Die Karte kann mehrmals vorkommen. Darum gehst du alle Karten bis zum Ende durch. ::: -`,k3=`--- +`,O3=`--- titel: Struktogramm und Code bereich: Vom Struktogramm zum Code kurz: Alle Elemente in Java auf einen Blick, Code erzeugen, im Bereich Programmieren Java schreiben, ausführen und Fehler suchen. @@ -6178,7 +6178,7 @@ frage: Im Debugger ist eine Zeile gelb. Was bedeutet das? - [ ] Die Zeile enthält einen Fehler. > Das ist ein Haltepunkt. Danach geht es mit ▶︎ oder dem Einzelschritt weiter. ::: -`,S3=`--- +`,T3=`--- titel: Python und JavaScript bereich: Vom Struktogramm zum Code kurz: Python- und JavaScript-Code aus dem Struktogramm erzeugen und JavaScript direkt im Browser ausführen. @@ -6401,7 +6401,7 @@ richtig: JavaScript - [ ] Es wird Summe: ausgegeben. > Mit str(summe) wird aus der Zahl ein Text. ::: -`,O3=`--- +`,A3=`--- titel: Wenn das Programm abstürzt: try und catch bereich: Fehler abfangen kurz: Mit echtem Java Fehlermeldungen lesen und Abstürze mit try und catch abfangen. @@ -6668,7 +6668,7 @@ Die Exception heißt \`ArithmeticException\`. Schreib in den \`try\`-Block nur d = ArithmeticException -> Teilen durch 0 = NumberFormatException -> Text ist keine Zahl ::: -`,T3=`--- +`,P3=`--- titel: Text einlesen und speichern bereich: Dateien kurz: Mit Scanner eine Textdatei Zeile für Zeile lesen und mit PrintWriter eine Datei speichern. @@ -6906,7 +6906,7 @@ runde: = println(text) -> schreibt eine Zeile = close() -> schließt die Datei ::: -`,A3=`--- +`,j3=`--- titel: Zeile für Zeile mit BufferedReader bereich: Dateien kurz: Mit BufferedReader und readLine lesen, bis null kommt, und mit Files eine ganze Datei auf einmal lesen. @@ -7146,7 +7146,7 @@ runde: = Files.readString -> kleine Dateien auf einmal = Scanner -> Zahlen und Wörter lesen ::: -`,P3=`--- +`,C3=`--- titel: Tabellen als CSV bereich: Dateien kurz: Eine Tabelle als CSV-Datei lesen, jede Zeile mit split zerlegen und mit den Zahlen rechnen. @@ -7353,7 +7353,7 @@ besser: Ludwig;2;3;1 = Datensatz -> eine Zeile mit Werten = Trennzeichen -> trennt die Spalten, meist ; ::: -`,j3=`--- +`,_3=`--- titel: Daten als JSON bereich: Dateien kurz: JSON-Dateien verstehen, Werte mit indexOf und substring herausholen und selbst JSON schreiben. @@ -7561,7 +7561,7 @@ frage: Welcher Schlüssel hat einen Wahrheitswert? = [ ] -> eine Liste = : -> trennt Schlüssel und Wert ::: -`,C3=`--- +`,Z3=`--- titel: Formate im Vergleich bereich: Dateien kurz: Dieselben Daten als txt, CSV und JSON vergleichen, das passende Format wählen und eine Datei in ein anderes Format umwandeln. @@ -7721,7 +7721,7 @@ richtig: txt = die Notenliste der Klasse -> CSV = ein Spielstand mit Listen -> JSON ::: -`,_3=`--- +`,M3=`--- titel: Dein erstes Fenster bereich: Fenster mit Swing kurz: Mit Java und Swing ein eigenes Fenster öffnen, Zeile für Zeile erklärt. @@ -7928,7 +7928,7 @@ Du willst nicht so viel tippen? Mit „Echtes Java“ darfst du im Bereich Progr - [ ] Sie stehen in geschweiften Klammern. - [ ] Sie enden mit Window. ::: -`,Z3=`--- +`,D3=`--- titel: Ein Knopf im Fenster bereich: Fenster mit Swing kurz: Einen Knopf ins Fenster legen und mit einem Layout ordentlich anordnen. @@ -8129,7 +8129,7 @@ Jeder Knopf braucht eine eigene Variable, zum Beispiel \`knopf\` und \`knopf2\`, - [ ] Auf dem Knopf steht „Ich wurde geklickt“. > Was beim Klick passieren soll, lernst du in der nächsten Lektion. ::: -`,M3=`--- +`,B3=`--- titel: Der Knopf reagiert bereich: Fenster mit Swing kurz: Mit einem ActionListener festlegen, was beim Klick passiert. @@ -8456,7 +8456,7 @@ Jeder Knopf bekommt seinen eigenen Zuhörer mit eigenem \`addActionListener\`. D = setText -> Beschriftung ändern = setVisible(true) -> Fenster zeigen ::: -`,D3=`--- +`,W3=`--- titel: Zahl verdoppeln im Fenster bereich: Fenster mit Swing kurz: Beschriftung, Textfeld und Knopf mit einem GridLayout anordnen und mit dem Text im Textfeld rechnen. @@ -8721,7 +8721,7 @@ Der Knopf „Halbieren“ kommt als vierte Zeile ins GridLayout und bekommt sein = JButton -> Knopf = GridLayout -> Anordnung im Gitter ::: -`,B3=`--- +`,L3=`--- titel: Klickzähler mit Reset bereich: Fenster mit Swing kurz: Zwei Knöpfe ändern dieselbe Zahl: eine Variable für die ganze Klasse anlegen. @@ -8939,7 +8939,7 @@ Für „nie unter 0“ brauchst du im Zuhörer von −1 ein \`if\`: Nur wenn \`a - [ ] Es setzt das Fenster in die Mitte des Bildschirms. - [ ] Es macht die Schrift größer. ::: -`,W3=`--- +`,E3=`--- titel: Eine Ampel mit Farben bereich: Fenster mit Swing kurz: Hintergrundfarben setzen und mit einer Zustandsvariable eine Ampel weiterschalten. @@ -9200,7 +9200,7 @@ Mit vier Phasen kommt nach 3 wieder 0. Pass also die Zahl in \`if (phase > 2)\` - [ ] 3 > Nach phase++ ist sie 3, das ist größer als 2, also wird sie 0. ::: -`,L3=`--- +`,N3=`--- titel: Notenrechner im Fenster bereich: Fenster mit Swing kurz: Punkte eingeben, mit else if die Note bestimmen und falsche Eingaben abfangen. @@ -9462,7 +9462,7 @@ Teste immer die Grenzen: 92 muss eine 1 sein, 91 eine 2. An den Grenzen stecken - [ ] punkte >= 0 || punkte <= 100 > Eine Zahl kann nicht gleichzeitig kleiner als 0 und größer als 100 sein, deshalb braucht es oder. ::: -`,E3=`--- +`,F3=`--- titel: Ein Taschenrechner bereich: Fenster mit Swing kurz: Zwei Spalten mit GridLayout, vier Rechenknöpfe und die Division durch 0 abfangen. @@ -9719,7 +9719,7 @@ Für „abc“ brauchst du in jedem Zuhörer ein try/catch mit \`NumberFormatExc - [ ] Spalte für Spalte, erst ganz links von oben nach unten - [ ] Zufällig ::: -`,N3=`--- +`,J3=`--- titel: Zahlenraten bereich: Fenster mit Swing kurz: Ein Spiel mit Zufallszahl, Versuchszähler und einem Knopf, der sich am Ende abschaltet. @@ -9861,7 +9861,7 @@ Für „zählt nicht als Versuch“ muss \`versuche++\` **hinter** \`Integer.par - [x] 7 > Jeder Tipp halbiert den Bereich, und 2 hoch 7 = 128 ist größer als 100. ::: -`,F3=`--- +`,G3=`--- titel: Viele Knöpfe, ein Zuhörer bereich: Fenster mit Swing kurz: Ein Zuhörer für viele Knöpfe, mit getActionCommand und getSource herausfinden, welcher Knopf geklickt wurde. @@ -10151,7 +10151,7 @@ Auch beim Taschenrechner aus Lektion 35 reicht ein Zuhörer für +, -, \\* und / = ActionEvent -> das Ereignis e mit den Infos zum Klick = JPanel -> eine Fläche mit eigenem Layout ::: -`,J3=`--- +`,R3=`--- titel: Innere Klassen bereich: Fenster mit Swing kurz: Einen Zuhörer als benannte innere Klasse, als anonyme Klasse und als Lambda schreiben und wissen, wer was sehen darf. @@ -10367,7 +10367,7 @@ Probiere aus, ob alle drei Knöpfe wie erwartet zählen. Lass dann bei der Klass = new ActionListener() { … } -> anonyme Klasse = der Pfeil hinter e -> Lambda ::: -`,G3=`--- +`,H3=`--- titel: Zwei Reiter bereich: Fenster mit Swing kurz: Ein Fenster mit zwei Reitern bauen, Daten von einem Reiter zum anderen bringen und die Liste als Textdatei speichern. @@ -10632,7 +10632,7 @@ Dann mach es besser: = JPanel -> die Fläche eines Reiters = JTextArea -> ein Textbereich mit mehreren Zeilen ::: -`,R3=`--- +`,Q3=`--- titel: Model View Controller bereich: Fenster mit Swing kurz: Den Klickzähler in Model, View und Controller zerlegen und verstehen, wer mit wem redet. @@ -11029,7 +11029,7 @@ Dann mach es besser: = ZahlAnzeige mit aktualisieren(int wert) -> View = der Zuhörer am Knopf -> Controller ::: -`,H3=`Fachbegriffe für den Lernbereich. Kommt ein Begriff in einem Schritt vor, wird er dort einmal markiert und zeigt beim +`,V3=`Fachbegriffe für den Lernbereich. Kommt ein Begriff in einem Schritt vor, wird er dort einmal markiert und zeigt beim Hovern oder Antippen seine Erklärung. Steht er im Schritt fett, wird er gerade erklärt und deshalb nicht markiert. \`auch:\` nennt weitere Formen, die ebenfalls erkannt werden. Groß- und Kleinschreibung zählt. @@ -11219,7 +11219,7 @@ Ein fertiger Baustein von Java, der Eingaben über die Tastatur liest, z. B. mit ### import Eine Zeile ganz oben im Java-Code, die einen fertigen Baustein aus einem Paket holt, z. B. \`import java.util.Scanner;\`. Ohne sie kennt Java den Namen nicht. -`,Q3=`### Anweisung +`,q3=`### Anweisung Ein einzelner Schritt. Damit legst du Variablen an oder rechnest. @@ -11333,7 +11333,7 @@ boolean[][] sitze = new boolean[3][5] sitze[1][4] = true output: sitze.length + " Reihen, " + sitze[0].length + " Plätze" \`\`\` -`,V3=`--- +`,U3=`--- titel: What is a structure chart? bereich: First steps kurz: Show and read algorithms as a series of clear steps. @@ -11606,7 +11606,7 @@ richtig: branch - [ ] An arrow > Everything between WHILE and END WHILE is indented and is repeated. ::: -`,q3=`--- +`,$3=`--- titel: The editor bereich: First steps kurz: Insert elements, type text, move and delete. @@ -11779,7 +11779,7 @@ frage: You click an element in the Elements area without dragging. Where does it - [ ] input: "Good morning" > Without quotation marks, Good morning is understood as the name of a variable. ::: -`,U3=`--- +`,Y3=`--- titel: Save, open, export bereich: First steps kurz: Keep your files safe, use your workspace, open several diagrams and share them as an image or PDF. @@ -11913,7 +11913,7 @@ Open one of your exercises from lesson 2 and try the following: - [ ] Directly in the workspace without a subfolder > VisuStruct automatically creates a date folder for each day. That keeps the programs sorted by lesson. ::: -`,$3=`--- +`,X3=`--- titel: Variables and data types bereich: Basics kurz: Store values, get to know the data types int, double, String and boolean, and calculate. @@ -12232,7 +12232,7 @@ richtig: String - [ ] Double price = 2.5 > Decimal numbers use a point, and the line ends with a semicolon. ::: -`,Y3=`--- +`,K3=`--- titel: Sequence bereich: Basics kurz: Run steps one after another, watch the order and swap values. @@ -12449,7 +12449,7 @@ frage: Ludwig makes tea. - [ ] With a colon : > If the semicolon is missing, VisuStruct shows a hint below the code. ::: -`,X3=`--- +`,e2=`--- titel: Input and output bereich: Basics kurz: Ask for values, show results and use the IPO model. @@ -12761,7 +12761,7 @@ frage: Which part of IPO does this box belong to? - [ ] A whole sentence > For decimal numbers there is \`scanner.nextDouble()\`, for a word \`scanner.next()\`. ::: -`,K3=`--- +`,t2=`--- titel: Simulation and desk check bereich: Basics kurz: Run a structure chart step by step, work it out by hand and find mistakes. @@ -13038,7 +13038,7 @@ besser: price = price + price * 0.1; - [ ] The line is skipped. > That is a breakpoint. ▶︎ or Step carries on. ::: -`,e2=`--- +`,n2=`--- titel: Branch bereich: Basics kurz: Use a condition to decide which of two paths runs. @@ -13355,7 +13355,7 @@ frage: What is output? - [ ] After a semicolon > \`if (age >= 18) { … }\`: the round brackets belong to the condition, the curly ones to the branch. ::: -`,t2=`--- +`,a2=`--- titel: Combining conditions bereich: Basics kurz: Join several conditions with and, or and not, and check ranges of values. @@ -13647,7 +13647,7 @@ lösung: l09-java-fehler-loesung.visustruct - [ ] if (age >= 12 || age < 18) > Each comparison stands on its own, joined with \`&&\`. ::: -`,n2=`--- +`,i2=`--- titel: Switch bereich: Basics kurz: Run one of many cases, depending on the value of a variable. @@ -13944,7 +13944,7 @@ frage: A dice shows 1 to 6, and for every number a different word should appear. - [x] default - [ ] case 0 ::: -`,a2=`--- +`,s2=`--- titel: While loop bereich: Basics kurz: Repeat steps as long as a condition is true. @@ -14270,7 +14270,7 @@ frage: How often does the body run? - [ ] while (number > 0); > The condition is in round brackets, then \`{\` opens the body. ::: -`,i2=`--- +`,r2=`--- titel: Do-while loop bereich: Basics kurz: Run first, check afterwards: loops with at least one pass. @@ -14517,7 +14517,7 @@ frage: What is a do-while loop typically used for? - [ ] } until (condition); > A semicolon follows the condition. ::: -`,s2=`--- +`,o2=`--- titel: For loop bereich: Basics kurz: Count a fixed number of passes with Init, Condition and Step. @@ -14813,7 +14813,7 @@ besser: for (int i = 2; i <= 10; i = i + 2) { - [ ] i is output. > \`i++\` is short for \`i = i + 1\`. ::: -`,r2=`--- +`,l2=`--- titel: Nesting bereich: Basics kurz: Combine branches inside loops and loops inside loops. @@ -15079,7 +15079,7 @@ frage: What happens? - [x] By the curly brackets and the indentation - [ ] By the semicolons ::: -`,o2=`--- +`,u2=`--- titel: Arrays bereich: Basics kurz: Store many values under one name, reach them with the index and go through them with a loop. @@ -15389,7 +15389,7 @@ besser: for (int i = numbers.length - 1; i >= 0; i--) { - [ ] int numbers = [1, 2, 3]; - [ ] array numbers = (1, 2, 3); ::: -`,l2=`--- +`,m2=`--- titel: Two-dimensional arrays bereich: Basics kurz: Store values in rows and columns, like the seats in a cinema, and go through them with two nested loops. @@ -15674,7 +15674,7 @@ frage: Two loops go through the cinema \`new boolean[3][5]\`. Which slot comes r - [ ] 5, the number of seats - [ ] 15, all seats together ::: -`,u2=`--- +`,c2=`--- titel: Strings bereich: Basics kurz: Work with text: read single characters, cut out parts, search, compare and split. @@ -16123,7 +16123,7 @@ ende: Zora is free, and the fox has run off. The secret word was \`BREAK\`: with - [ ] an error message > parseInt turns the text into a number. After that Java calculates as usual. ::: -`,m2=`--- +`,d2=`--- titel: Call and break bereich: Basics kurz: Split big tasks into subprograms and leave loops early. @@ -16579,7 +16579,7 @@ frage: What is output? - [ ] return > void means “empty”: the method does something but returns no value. ::: -`,c2=`--- +`,h2=`--- titel: Searching and sorting bereich: Basics kurz: Use playing cards to understand how linear search, binary search and bubble sort work, and why some methods are much faster. @@ -16895,7 +16895,7 @@ frage: Bubble sort swaps \`cards[i]\` and \`cards[i + 1]\`. What does it need fo - [ ] A while loop cannot go through arrays. > The card can appear several times. That is why you go through all cards to the end. ::: -`,d2=`--- +`,g2=`--- titel: Structure chart and code bereich: From structure chart to code kurz: All elements in Java at a glance, generate code, write Java in the Programming area, run it and find mistakes. @@ -17245,7 +17245,7 @@ frage: In the debugger, a line is yellow. What does that mean? - [ ] The line contains a mistake. > That is a breakpoint. Continue with ▶︎ or Step. ::: -`,h2=`--- +`,p2=`--- titel: Python and JavaScript bereich: From structure chart to code kurz: Generate Python and JavaScript code from the structure chart and run JavaScript straight in the browser. @@ -17468,7 +17468,7 @@ richtig: JavaScript - [ ] Sum: is output. > str(sum) turns the number into text. ::: -`,g2=`--- +`,f2=`--- titel: When the program crashes: try and catch bereich: Catching errors kurz: Use real Java to read error messages and catch crashes with try and catch. @@ -17735,7 +17735,7 @@ The exception is called \`ArithmeticException\`. Only put the line that can cras = ArithmeticException -> dividing by 0 = NumberFormatException -> text is not a number ::: -`,p2=`--- +`,x2=`--- titel: Reading and saving text bereich: Files kurz: Read a text file line by line with Scanner and save a file with PrintWriter. @@ -17973,7 +17973,7 @@ runde: = println(text) -> writes a line = close() -> closes the file ::: -`,f2=`--- +`,b2=`--- titel: Line by line with BufferedReader bereich: Files kurz: Read with BufferedReader and readLine until null comes, and read a whole file at once with Files. @@ -18213,7 +18213,7 @@ runde: = Files.readString -> small files all at once = Scanner -> reading numbers and words ::: -`,x2=`--- +`,y2=`--- titel: Tables as CSV bereich: Files kurz: Read a table as a CSV file, split each line with split and calculate with the numbers. @@ -18420,7 +18420,7 @@ besser: Ludwig;2;3;1 = record -> a line with values = separator -> separates the columns, often ; ::: -`,b2=`--- +`,v2=`--- titel: Data as JSON bereich: Files kurz: Understand JSON files, get values out with indexOf and substring, and write JSON yourself. @@ -18628,7 +18628,7 @@ frage: Which key has a truth value? = [ ] -> a list = : -> separates key and value ::: -`,y2=`--- +`,w2=`--- titel: Comparing formats bereich: Files kurz: Compare the same data as txt, CSV and JSON, choose the right format and convert a file into another format. @@ -18788,7 +18788,7 @@ richtig: txt = the class grade list -> CSV = a game save with lists -> JSON ::: -`,v2=`--- +`,z2=`--- titel: Your first window bereich: Windows with Swing kurz: Open your own window with Java and Swing, explained line by line. @@ -18995,7 +18995,7 @@ Don't feel like typing so much? With “Real Java” you may type just the four - [ ] They are in curly brackets. - [ ] They end in Window. ::: -`,w2=`--- +`,I2=`--- titel: A button in the window bereich: Windows with Swing kurz: Put a button into the window and arrange it neatly with a layout. @@ -19196,7 +19196,7 @@ Every button needs its own variable, for example \`button\` and \`button2\`, and - [ ] The button says “I was clicked”. > What should happen on a click is what you learn in the next lesson. ::: -`,z2=`--- +`,k2=`--- titel: The button reacts bereich: Windows with Swing kurz: Use an ActionListener to decide what happens on a click. @@ -19523,7 +19523,7 @@ Every button gets its own listener with its own \`addActionListener\`. You chang = setText -> change the label = setVisible(true) -> show the window ::: -`,I2=`--- +`,S2=`--- titel: Doubling a number in a window bereich: Windows with Swing kurz: Arrange a label, a text field and a button with a GridLayout and calculate with the text in the text field. @@ -19788,7 +19788,7 @@ The “Halve” button goes into the GridLayout as the fourth row and gets its o = JButton -> button = GridLayout -> arrangement in a grid ::: -`,k2=`--- +`,O2=`--- titel: Click counter with reset bereich: Windows with Swing kurz: Two buttons change the same number: create a variable for the whole class. @@ -20006,7 +20006,7 @@ For “never below 0” the listener of −1 needs an \`if\`: only if \`count > - [ ] It puts the window in the middle of the screen. - [ ] It makes the font bigger. ::: -`,S2=`--- +`,T2=`--- titel: A traffic light with colours bereich: Windows with Swing kurz: Set background colours and switch a traffic light on with a state variable. @@ -20267,7 +20267,7 @@ With four phases, 0 comes after 3. So change the number in \`if (phase > 2)\`. - [ ] 3 > After phase++ it is 3, which is greater than 2, so it becomes 0. ::: -`,O2=`--- +`,A2=`--- titel: Grade calculator in a window bereich: Windows with Swing kurz: Enter points, work out the grade with else if and catch wrong input. @@ -20524,7 +20524,7 @@ Always test the limits: 90 must be an A, 89 a B. Most mistakes hide at the limit - [ ] points >= 0 || points <= 100 > A number can't be smaller than 0 and bigger than 100 at the same time, so you need or. ::: -`,T2=`--- +`,P2=`--- titel: A calculator bereich: Windows with Swing kurz: Two columns with GridLayout, four arithmetic buttons and catching division by 0. @@ -20781,7 +20781,7 @@ For “abc” every listener needs a try/catch with \`NumberFormatException\`. A - [ ] Column by column, starting top to bottom on the far left - [ ] Randomly ::: -`,A2=`--- +`,j2=`--- titel: Guess the number bereich: Windows with Swing kurz: A game with a random number, a counter for the guesses and a button that switches itself off at the end. @@ -20923,7 +20923,7 @@ For “doesn't count as a guess”, \`guesses++\` must come **after** \`Integer. - [x] 7 > Each guess halves the range, and 2 to the power of 7 = 128 is bigger than 100. ::: -`,P2=`--- +`,C2=`--- titel: Many buttons, one listener bereich: Windows with Swing kurz: One listener for many buttons, and finding out with getActionCommand and getSource which button was clicked. @@ -21212,7 +21212,7 @@ For the calculator from lesson 35, one listener is enough for +, -, \\* and / to = ActionEvent -> the event e with the information about the click = JPanel -> an area with its own layout ::: -`,j2=`--- +`,_2=`--- titel: Inner classes bereich: Windows with Swing kurz: Write a listener as a named inner class, as an anonymous class and as a lambda, and know who can see what. @@ -21428,7 +21428,7 @@ Check that all three buttons count as expected. Then remove the \`static\` from = new ActionListener() { … } -> anonymous class = the arrow after e -> lambda ::: -`,C2=`--- +`,Z2=`--- titel: Two tabs bereich: Windows with Swing kurz: Build a window with two tabs, bring data from one tab to the other and save the list as a text file. @@ -21693,7 +21693,7 @@ Then make it better: = JPanel -> the area of a tab = JTextArea -> a text area with several lines ::: -`,_2=`--- +`,M2=`--- titel: Model View Controller bereich: Windows with Swing kurz: Split the click counter into model, view and controller and understand who talks to whom. @@ -22090,7 +22090,7 @@ Then make it better: = NumberView with update(int value) -> view = the listener at the button -> controller ::: -`,Z2=`Technical terms for the learning area. When a term appears in a step, it is marked there once and shows its explanation +`,D2=`Technical terms for the learning area. When a term appears in a step, it is marked there once and shows its explanation on hover or tap. If it is in bold in that step, it is being explained right there and is not marked. \`also:\` lists other forms that are recognised too. Upper and lower case matter. @@ -22285,7 +22285,7 @@ A ready-made Java building block that reads input from the keyboard, for example ### import A line at the very top of Java code that fetches a ready-made building block from a package, for example \`import java.util.Scanner;\`. Without it, Java doesn't know the name. -`,M2=`### Statement +`,B2=`### Statement A single step. You use it to create variables or to calculate. @@ -22399,7 +22399,7 @@ boolean[][] seats = new boolean[3][5] seats[1][4] = true output: seats.length + " rows, " + seats[0].length + " seats" \`\`\` -`,D2=`--- +`,W2=`--- titel: O que é um estrutograma? bereich: Primeiros passos kurz: Mostrar e ler algoritmos como uma série de passos claros. @@ -22672,7 +22672,7 @@ richtig: decisão - [ ] Uma seta > Tudo o que está entre ENQUANTO e FIM ENQUANTO está recuado e é repetido. ::: -`,B2=`--- +`,L2=`--- titel: O editor bereich: Primeiros passos kurz: Inserir elementos, escrever texto, mover e eliminar. @@ -22845,7 +22845,7 @@ frage: Clicas num elemento da área Elementos, sem arrastar. Onde fica? - [ ] input: "Bom dia" > Sem aspas, Bom dia é entendido como o nome de uma variável. ::: -`,W2=`--- +`,E2=`--- titel: Guardar, abrir, exportar bereich: Primeiros passos kurz: Guardar os teus ficheiros em segurança, usar o teu espaço de trabalho, abrir vários diagramas e partilhá-los como imagem ou PDF. @@ -22979,7 +22979,7 @@ Abre um dos teus exercícios da lição 2 e experimenta o seguinte: - [ ] Diretamente no espaço de trabalho, sem subpasta > O VisuStruct cria automaticamente uma pasta com a data de cada dia. Assim os programas ficam ordenados por aula. ::: -`,L2=`--- +`,N2=`--- titel: Variáveis e tipos de dados bereich: Fundamentos kurz: Guardar valores, conhecer os tipos de dados int, double, String e boolean, e fazer contas. @@ -23298,7 +23298,7 @@ richtig: String - [ ] Double preco = 2.5 > Os números decimais escrevem-se com ponto, e no fim há um ponto e vírgula. ::: -`,E2=`--- +`,F2=`--- titel: Sequência bereich: Fundamentos kurz: Executar passos um a seguir ao outro, prestar atenção à ordem e trocar valores. @@ -23515,7 +23515,7 @@ frage: O Ludwig faz chá. - [ ] Com dois pontos : > Se faltar o ponto e vírgula, o VisuStruct mostra uma indicação por baixo do código. ::: -`,N2=`--- +`,J2=`--- titel: Entrada e saída bereich: Fundamentos kurz: Pedir valores, mostrar resultados e usar o modelo EPS. @@ -23827,7 +23827,7 @@ frage: A que parte do modelo EPS pertence este bloco? - [ ] Uma frase inteira > Para números decimais há \`scanner.nextDouble()\`, para uma palavra \`scanner.next()\`. ::: -`,F2=`--- +`,G2=`--- titel: Simulação e teste de secretária bereich: Fundamentos kurz: Executar um estrutograma passo a passo, segui-lo à mão e encontrar erros. @@ -24104,7 +24104,7 @@ besser: preco = preco + preco * 0.1; - [ ] A linha é saltada. > É um ponto de paragem. Continuas com ▶︎ ou com Passo a passo. ::: -`,J2=`--- +`,R2=`--- titel: Decisão bereich: Fundamentos kurz: Usar uma condição para decidir qual de dois ramos é executado. @@ -24421,7 +24421,7 @@ frage: O que aparece? - [ ] Depois de um ponto e vírgula > \`if (idade >= 18) { … }\`: os parênteses curvos pertencem à condição, as chavetas ao ramo. ::: -`,G2=`--- +`,H2=`--- titel: Combinar condições bereich: Fundamentos kurz: Juntar várias condições com e, ou e não, e verificar intervalos de valores. @@ -24713,7 +24713,7 @@ lösung: l09-java-fehler-loesung.visustruct - [ ] if (idade >= 12 || idade < 18) > Cada comparação fica sozinha, ligada com \`&&\`. ::: -`,R2=`--- +`,Q2=`--- titel: Seleção bereich: Fundamentos kurz: Executar um de vários casos, consoante o valor de uma variável. @@ -25010,7 +25010,7 @@ frage: Um dado mostra de 1 a 6, e para cada número deve aparecer uma palavra di - [x] default - [ ] case 0 ::: -`,H2=`--- +`,V2=`--- titel: Ciclo while bereich: Fundamentos kurz: Repetir passos enquanto uma condição for verdadeira. @@ -25336,7 +25336,7 @@ frage: Quantas vezes corre o corpo? - [ ] while (numero > 0); > A condição fica entre parênteses curvos, depois \`{\` abre o corpo. ::: -`,Q2=`--- +`,q2=`--- titel: Ciclo do-while bereich: Fundamentos kurz: Primeiro executar, depois verificar: ciclos com pelo menos uma iteração. @@ -25583,7 +25583,7 @@ frage: Para que se usa tipicamente um ciclo do-while? - [ ] } until (condicao); > Depois da condição vem um ponto e vírgula. ::: -`,V2=`--- +`,U2=`--- titel: Ciclo for bereich: Fundamentos kurz: Contar um número fixo de iterações com Início, Condição e Passo. @@ -25879,7 +25879,7 @@ besser: for (int i = 2; i <= 10; i = i + 2) { - [ ] i é mostrado. > \`i++\` é a forma curta de \`i = i + 1\`. ::: -`,q2=`--- +`,$2=`--- titel: Encaixar bereich: Fundamentos kurz: Combinar decisões dentro de ciclos e ciclos dentro de ciclos. @@ -26145,7 +26145,7 @@ frage: O que acontece? - [x] Pelas chavetas e pela indentação - [ ] Pelos pontos e vírgulas ::: -`,U2=`--- +`,Y2=`--- titel: Arrays bereich: Fundamentos kurz: Guardar muitos valores com um só nome, chegar a eles com o índice e percorrê-los com um ciclo. @@ -26455,7 +26455,7 @@ besser: for (int i = numeros.length - 1; i >= 0; i--) { - [ ] int numeros = [1, 2, 3]; - [ ] array numeros = (1, 2, 3); ::: -`,$2=`--- +`,X2=`--- titel: Arrays bidimensionais bereich: Fundamentos kurz: Guardar valores em linhas e colunas, como os lugares de um cinema, e percorrê-los com dois ciclos encaixados. @@ -26740,7 +26740,7 @@ frage: Dois ciclos percorrem a sala \`new boolean[3][5]\`. Que posição vem log - [ ] 5, o número de lugares - [ ] 15, todos os lugares juntos ::: -`,Y2=`--- +`,K2=`--- titel: Strings bereich: Fundamentos kurz: Trabalhar com texto: ler caracteres, recortar partes, pesquisar, comparar e dividir. @@ -27191,7 +27191,7 @@ ende: A Zora está livre, e a raposa fugiu a correr. A palavra secreta era \`BRE - [ ] uma mensagem de erro > parseInt transforma o texto num número. Depois o Java faz a conta normalmente. ::: -`,X2=`--- +`,ex=`--- titel: Chamada e interrupção bereich: Fundamentos kurz: Dividir tarefas grandes em subprogramas e sair mais cedo dos ciclos. @@ -27647,7 +27647,7 @@ frage: O que aparece? - [ ] return > void significa “vazio”: o método faz alguma coisa, mas não devolve nenhum valor. ::: -`,K2=`--- +`,tx=`--- titel: Pesquisar e ordenar bereich: Fundamentos kurz: Perceber com cartas de jogar como funcionam a pesquisa linear, a pesquisa binária e o bubble sort, e porque é que alguns métodos são muito mais rápidos. @@ -27963,7 +27963,7 @@ frage: O bubble sort troca \`cartas[i]\` e \`cartas[i + 1]\`. De que precisa par - [ ] Um ciclo while não consegue percorrer arrays. > A carta pode aparecer várias vezes. Por isso percorres todas as cartas até ao fim. ::: -`,ex=`--- +`,nx=`--- titel: Estrutograma e código bereich: Do estrutograma ao código kurz: Todos os elementos em Java num relance, gerar código, escrever Java na área Programação, executá-lo e procurar erros. @@ -28313,7 +28313,7 @@ frage: No depurador, uma linha está amarela. O que quer dizer? - [ ] A linha tem um erro. > É um ponto de paragem. Continua-se com ▶︎ ou com Passo a passo. ::: -`,tx=`--- +`,ax=`--- titel: Python e JavaScript bereich: Do estrutograma ao código kurz: Gerar código Python e JavaScript a partir do estrutograma e executar JavaScript diretamente no navegador. @@ -28536,7 +28536,7 @@ richtig: JavaScript - [ ] É mostrado Soma:. > str(soma) transforma o número em texto. ::: -`,nx=`--- +`,ix=`--- titel: Quando o programa falha: try e catch bereich: Apanhar erros kurz: Ler mensagens de erro com Java verdadeiro e apanhar falhas com try e catch. @@ -28803,7 +28803,7 @@ A exceção chama-se \`ArithmeticException\`. Põe no bloco \`try\` só a linha = ArithmeticException -> divisão por 0 = NumberFormatException -> o texto não é um número ::: -`,ax=`--- +`,sx=`--- titel: Ler e guardar texto bereich: Ficheiros kurz: Ler um ficheiro de texto linha a linha com Scanner e guardar um ficheiro com PrintWriter. @@ -29041,7 +29041,7 @@ runde: = println(texto) -> escreve uma linha = close() -> fecha o ficheiro ::: -`,ix=`--- +`,rx=`--- titel: Linha a linha com BufferedReader bereich: Ficheiros kurz: Ler com BufferedReader e readLine até chegar null, e ler um ficheiro inteiro de uma vez com Files. @@ -29281,7 +29281,7 @@ runde: = Files.readString -> ficheiros pequenos de uma vez = Scanner -> ler números e palavras ::: -`,sx=`--- +`,ox=`--- titel: Tabelas em CSV bereich: Ficheiros kurz: Ler uma tabela num ficheiro CSV, dividir cada linha com split e fazer contas com os números. @@ -29488,7 +29488,7 @@ besser: Ludwig;2;3;1 = registo -> uma linha com valores = separador -> separa as colunas, muitas vezes ; ::: -`,rx=`--- +`,lx=`--- titel: Dados em JSON bereich: Ficheiros kurz: Perceber ficheiros JSON, tirar valores com indexOf e substring e escrever JSON tu mesmo. @@ -29696,7 +29696,7 @@ frage: Que chave tem um valor lógico? = [ ] -> uma lista = : -> separa a chave do valor ::: -`,ox=`--- +`,ux=`--- titel: Comparar formatos bereich: Ficheiros kurz: Comparar os mesmos dados em txt, CSV e JSON, escolher o formato certo e converter um ficheiro noutro formato. @@ -29856,7 +29856,7 @@ richtig: txt = a pauta de notas da turma -> CSV = um jogo guardado com listas -> JSON ::: -`,lx=`--- +`,mx=`--- titel: A tua primeira janela bereich: Janelas com Swing kurz: Abrir uma janela tua com Java e Swing, explicado linha a linha. @@ -30063,7 +30063,7 @@ Não te apetece escrever tanto? Com o “Java verdadeiro” podes escrever na á - [ ] Estão entre chavetas. - [ ] Terminam em Window. ::: -`,ux=`--- +`,cx=`--- titel: Um botão na janela bereich: Janelas com Swing kurz: Pôr um botão na janela e arrumá-lo bem com um layout. @@ -30264,7 +30264,7 @@ Cada botão precisa da sua própria variável, por exemplo \`botao\` e \`botao2\ - [ ] No botão aparece “Fui clicado”. > O que deve acontecer com um clique aprendes na próxima lição. ::: -`,mx=`--- +`,dx=`--- titel: O botão reage bereich: Janelas com Swing kurz: Com um ActionListener decides o que acontece com um clique. @@ -30591,7 +30591,7 @@ Cada botão recebe o seu próprio ouvinte, com o seu próprio \`addActionListene = setText -> mudar o texto = setVisible(true) -> mostrar a janela ::: -`,cx=`--- +`,hx=`--- titel: Duplicar um número na janela bereich: Janelas com Swing kurz: Arrumar uma etiqueta, um campo de texto e um botão com um GridLayout e calcular com o texto do campo de texto. @@ -30856,7 +30856,7 @@ O botão “Dividir por 2” entra no GridLayout como quarta linha e recebe o se = JButton -> botão = GridLayout -> arrumação em grelha ::: -`,dx=`--- +`,gx=`--- titel: Contador de cliques com reset bereich: Janelas com Swing kurz: Dois botões alteram o mesmo número: criar uma variável para a classe toda. @@ -31074,7 +31074,7 @@ Para “nunca abaixo de 0”, o ouvinte do −1 precisa de um \`if\`: só se \`c - [ ] Põe a janela no meio do ecrã. - [ ] Aumenta a letra. ::: -`,hx=`--- +`,px=`--- titel: Um semáforo com cores bereich: Janelas com Swing kurz: Definir cores de fundo e mudar um semáforo com uma variável de estado. @@ -31335,7 +31335,7 @@ Com quatro fases, depois do 3 vem o 0. Ajusta por isso o número em \`if (fase > - [ ] 3 > Depois de fase++ é 3, que é maior do que 2, por isso passa a 0. ::: -`,gx=`--- +`,fx=`--- titel: Calculadora de notas na janela bereich: Janelas com Swing kurz: Escrever a percentagem, determinar o nível com else if e apanhar entradas erradas. @@ -31592,7 +31592,7 @@ Testa sempre os limites: 90 tem de dar 5, 89 tem de dar 4. É nos limites que se - [ ] percentagem >= 0 || percentagem <= 100 > Um número não pode ser ao mesmo tempo menor do que 0 e maior do que 100, por isso é preciso o ou. ::: -`,px=`--- +`,xx=`--- titel: Uma calculadora bereich: Janelas com Swing kurz: Duas colunas com GridLayout, quatro botões de cálculo e apanhar a divisão por 0. @@ -31849,7 +31849,7 @@ Para o “abc” cada ouvinte precisa de um try/catch com \`NumberFormatExceptio - [ ] Coluna a coluna, começando de cima para baixo na coluna da esquerda - [ ] Ao acaso ::: -`,fx=`--- +`,bx=`--- titel: Adivinha o número bereich: Janelas com Swing kurz: Um jogo com número aleatório, contagem de tentativas e um botão que se desliga no fim. @@ -31991,7 +31991,7 @@ Para “não conta como tentativa”, o \`tentativas++\` tem de vir **depois** d - [x] 7 > Cada palpite corta o intervalo a meio, e 2 elevado a 7 = 128 é maior do que 100. ::: -`,xx=`--- +`,yx=`--- titel: Muitos botões, um ouvinte bereich: Janelas com Swing kurz: Um ouvinte para muitos botões e descobrir com getActionCommand e getSource qual foi o botão clicado. @@ -32280,7 +32280,7 @@ Também na calculadora da lição 35 chega um ouvinte para +, -, \\* e /. Verifi = ActionEvent -> o evento e com a informação sobre o clique = JPanel -> uma área com o seu próprio layout ::: -`,bx=`--- +`,vx=`--- titel: Classes internas bereich: Janelas com Swing kurz: Escrever um ouvinte como classe interna com nome, como classe anónima e como lambda, e saber quem vê o quê. @@ -32496,7 +32496,7 @@ Experimenta se os três botões contam como esperado. Depois tira o \`static\` d = new ActionListener() { … } -> classe anónima = a seta depois de e -> lambda ::: -`,yx=`--- +`,wx=`--- titel: Dois separadores bereich: Janelas com Swing kurz: Construir uma janela com dois separadores, levar dados de um separador para o outro e guardar a lista num ficheiro de texto. @@ -32761,7 +32761,7 @@ Depois melhora-o: = JPanel -> a área de um separador = JTextArea -> uma área de texto com várias linhas ::: -`,vx=`--- +`,zx=`--- titel: Model View Controller bereich: Janelas com Swing kurz: Dividir o contador de cliques em model, view e controller e perceber quem fala com quem. @@ -33158,7 +33158,7 @@ Depois melhora-o: = VistaNumero com atualizar(int valor) -> view = o ouvinte do botão -> controller ::: -`,wx=`Termos técnicos da área de aprendizagem. Quando um termo aparece num passo, fica marcado uma vez e mostra a sua +`,Ix=`Termos técnicos da área de aprendizagem. Quando um termo aparece num passo, fica marcado uma vez e mostra a sua explicação ao passar o rato ou ao tocar. Se estiver a negrito nesse passo, é explicado ali mesmo e não é marcado. \`auch:\` indica outras formas que também são reconhecidas. Maiúsculas e minúsculas contam. @@ -33357,7 +33357,7 @@ Um bloco pronto do Java que lê entradas do teclado, por exemplo um número com ### import Uma linha mesmo no início do código Java que vai buscar um bloco pronto a um pacote, por exemplo \`import java.util.Scanner;\`. Sem ela, o Java não conhece o nome. -`,zx=`### Instrução +`,kx=`### Instrução Um único passo. Serve para criar variáveis ou para calcular. @@ -33471,7 +33471,7 @@ boolean[][] lugares = new boolean[3][5] lugares[1][4] = true output: lugares.length + " filas, " + lugares[0].length + " lugares" \`\`\` -`,Ix=`--- +`,Sx=`--- titel: Alter im Unterprogramm nach: 18 stufe: 2 @@ -33492,7 +33492,7 @@ tipp: Öffne die Übung im Editor und baue dort das Hauptprogramm mit dem Aufruf lösung: aufgabe-alter-haupt-loesung.visustruct unterprogramm: aufgabe-alter-unterprogramm-loesung.visustruct ::: -`,kx=`--- +`,Ox=`--- titel: Ballwurf auswerten nach: 25 stufe: 2 @@ -33521,7 +33521,7 @@ tipp: Du brauchst vier Variablen vor der Schleife: die Anzahl, die Summe als \`d tipp: In der Schleife: \`String[] teile = zeile.split(";");\` und \`int weite = Integer.parseInt(teile[1]);\`. Ist \`weite > besteWeite\`, merkst du dir Weite und Namen. Zum Speichern: \`PrintWriter aus = new PrintWriter("sieger.txt");\`, \`aus.println(…)\` und \`aus.close();\`. lösung: aufgabe-ballwurf-loesung.visustruct ::: -`,Sx=`--- +`,Tx=`--- titel: Bestenliste nach: 19 stufe: 2 @@ -33555,7 +33555,7 @@ tipp: Lies jede Zahl erst in eine Variable ein und schreibe sie dann ins Array: tipp: Der Tausch braucht auch in Java eine Hilfsvariable: \`int hilf = punkte[i]; punkte[i] = punkte[i + 1]; punkte[i + 1] = hilf;\`. lösung: aufgabe-bestenliste-loesung.visustruct ::: -`,Ox=`--- +`,Ax=`--- titel: Binärzahl nach: 11 stufe: 3 @@ -33597,7 +33597,7 @@ tipp: Fang mit \`String binaer = "";\` an. Die Schleife läuft mit \`while (zahl tipp: Im Rumpf: \`int rest = zahl % 2;\`, dann \`binaer = rest + binaer;\` und \`zahl = zahl / 2;\`. Weil \`binaer\` ein String ist, hängt \`+\` den Rest vorne an. lösung: aufgabe-binaer-loesung.visustruct ::: -`,Tx=`--- +`,Px=`--- titel: Caesar-Verschlüsselung nach: 17 stufe: 3 @@ -33731,7 +33731,7 @@ lösung: aufgabe-caesar-entschluesseln-loesung.visustruct ::: angeberwissen Sicher ist Caesar leider nicht. Es gibt nur 25 Schlüssel, die kann man in ein paar Minuten alle ausprobieren. Noch schneller geht es mit einem Trick: Im Deutschen ist E der häufigste Buchstabe. Kommt im Geheimtext H am häufigsten vor, war der Schlüssel wohl 3. Im Internet gibt es übrigens ROT13, das ist Caesar mit dem Schlüssel 13. Zweimal ROT13 ergibt wieder den Klartext, weil 13 + 13 = 26. ::: -`,Ax=`--- +`,jx=`--- titel: Collatz-Folge nach: 11 stufe: 2 @@ -33775,7 +33775,7 @@ lösung: aufgabe-collatz-loesung.visustruct ::: angeberwissen Mit dieser Aufgabe kann man reich werden! Der Mathematiker Paul Erdős setzte für einen Beweis 500 Dollar aus. 2021 legte die japanische Firma Bakuage noch einiges drauf: 120 Millionen Yen, damals umgerechnet rund eine Million Dollar, für einen Beweis oder ein Gegenbeispiel. Abgeholt hat das Geld bis heute niemand. Erfunden hat das Rätsel übrigens der deutsche Mathematiker Lothar Collatz im Jahr 1937. Ich rechne gleich mal los, für so viel Geld gibt es eine Menge Heu. ::: -`,Px=`--- +`,Cx=`--- titel: Einheitenrechner nach: 35 stufe: 2 @@ -33824,7 +33824,7 @@ Zusatz: Ein vierter Knopf **in Fuß** rechnet in die englische Einheit um. Ein F ::: ludwig Tick im [Zahnrad](#zeige-einstellungen) **Echtes Java (mit Swing)** an. Für „abc“ im Feld brauchst du in jedem Zuhörer ein try/catch mit \`NumberFormatException\`, wie beim Taschenrechner. ::: -`,jx=`--- +`,_x=`--- titel: Fibonacci-Zahlen nach: 13 stufe: 2 @@ -33878,7 +33878,7 @@ lösung: aufgabe-fibonacci-loesung.visustruct - [ ] Die Reihenfolge ist egal > Andersherum hätten zahl1 und zahl2 danach denselben Wert. Wie beim Tauschen gilt: Erst retten, dann überschreiben. ::: -`,Cx=`--- +`,Zx=`--- titel: Gerade oder ungerade nach: 8 stufe: 1 @@ -33914,7 +33914,7 @@ tipp: Eine Zahl liest du mit \`int zahl = scanner.nextInt();\` ein. Vorher frags tipp: \`if (zahl % 2 == 0) { … } else { … }\`. Die Ausgabe ist \`System.out.println(zahl + " ist gerade");\`. lösung: aufgabe-gerade-loesung.visustruct ::: -`,_x=`--- +`,Mx=`--- titel: Mehrwertsteuer nach: 6 stufe: 1 @@ -33955,7 +33955,7 @@ lösung: aufgabe-mehrwertsteuer-loesung.visustruct - [ ] Weil man Kommazahlen nur als Konstante speichern kann > Eine Konstante behält ihren Wert. Ändert sich der Steuersatz einmal, passt du nur die eine Zeile mit \`const\` an. ::: -`,Zx=`--- +`,Dx=`--- titel: Notendurchschnitt nach: 13 stufe: 2 @@ -33990,7 +33990,7 @@ tipp: \`for (int i = 0; i < anzahl; i++)\` liest genau so viele Noten ein, wie v tipp: Teile mit \`double schnitt = summe * 1.0 / anzahl;\`. Ohne \`* 1.0\` teilt Java zwei \`int\` ganzzahlig, und aus 1.5 wird 1. lösung: aufgabe-durchschnitt-loesung.visustruct ::: -`,Mx=`--- +`,Bx=`--- titel: PIN prüfen nach: 12 stufe: 2 @@ -34030,7 +34030,7 @@ tipp: \`do { … } while (…);\` fragt mindestens einmal. Hinter \`while (…)\ tipp: Lege vorher \`int pin = 0;\` und \`int versuche = 0;\` an. In der Schleife: \`int eingabe = scanner.nextInt();\`, \`pin = eingabe;\` und \`versuche++;\`. Die Bedingung ist \`pin != 1234 && versuche < 3\`. lösung: aufgabe-pin-java-loesung.visustruct ::: -`,Dx=`--- +`,Wx=`--- titel: Schiffe versenken nach: 16 stufe: 2 @@ -34067,7 +34067,7 @@ tipp: Zwei \`for\`-Schleifen ineinander: außen die Reihe, innen die Spalte, bei tipp: \`if (meer[reihe][spalte]) { System.out.println(spalten[spalte] + (reihe + 1)); }\`. Die Klammer um \`reihe + 1\` sorgt dafür, dass Java erst rechnet. lösung: aufgabe-schiffe-loesung.visustruct ::: -`,Bx=`--- +`,Lx=`--- titel: Speisekarte nach: 10 stufe: 1 @@ -34103,7 +34103,7 @@ tipp: In Java ist das eine Fallauswahl mit \`switch (nummer) { … }\`. tipp: Jeder Fall sieht so aus: \`case 1 -> { System.out.println("…"); }\`. Für alle anderen Nummern gibt es \`default -> { … }\`. lösung: aufgabe-speisekarte-loesung.visustruct ::: -`,Wx=`--- +`,Ex=`--- titel: Summe bilden nach: 2 stufe: 1 @@ -34119,7 +34119,7 @@ tipp: Du brauchst drei Variablen: zwei für die Zahlen und eine für das Ergebni tipp: Eine Variable legst du mit einer Anweisung wie \`int zahl1 = 4\` fest. Für die Ausgabe schreibst du den Namen der Variablen ohne Anführungszeichen. lösung: aufgabe-summe-loesung.visustruct ::: -`,Lx=`--- +`,Nx=`--- titel: Tafeldienst auslosen nach: 15 stufe: 2 @@ -34156,7 +34156,7 @@ lösung: aufgabe-tafeldienst-loesung.visustruct ::: > Mit \`int nummer = (int) (Math.random() * 5) + 1\` kannst du die Losnummer auch vom Zufall ziehen lassen. Für die automatische Prüfung brauchen wir aber eine feste Eingabe. -`,Ex=`--- +`,Fx=`--- titel: Taschenrechner nach: 10 stufe: 2 @@ -34192,7 +34192,7 @@ tipp: Das Rechenzeichen ist ein Text. Du liest es mit \`String zeichen = scanner tipp: \`switch (zeichen) { case "+" -> { … } … default -> { … } }\`. Bei Texten stehen die Fälle in Anführungszeichen. lösung: aufgabe-rechner-loesung.visustruct ::: -`,Nx=`--- +`,Jx=`--- titel: Verleih-Menü nach: 18 stufe: 2 @@ -34227,7 +34227,7 @@ tipp: \`while (true) { … }\` läuft endlos, bis ein \`break;\` kommt. tipp: Nimm in Java hier \`if\`/\`else if\` statt \`switch\`: Ein \`break;\` in einem \`switch\` verlässt nur den \`switch\`, nicht die Schleife. \`if (wahl == 0) { System.out.println("Tschüss"); break; } else if (wahl == 1) { … }\`. lösung: aufgabe-verleih-java-loesung.visustruct ::: -`,Fx=`--- +`,Gx=`--- titel: Vokabeltrainer nach: 27 stufe: 3 @@ -34262,7 +34262,7 @@ tipp: Überspringe die Kopfzeile. In der Schleife zerlegst du jede Zeile mit \`s tipp: Texte vergleichst du mit \`antwort.equals(teile[1])\`, nicht mit \`==\`. Zähle vor der Schleife mit \`int richtig = 0;\` und \`int anzahl = 0;\` mit. lösung: aufgabe-vokabeln-loesung.visustruct ::: -`,Jx=`--- +`,Rx=`--- titel: Volljährig? nach: 8 stufe: 1 @@ -34298,7 +34298,7 @@ tipp: Lies das Alter mit \`int alter = scanner.nextInt();\` ein. tipp: \`if (alter >= 18) { … } else { … }\`, in jedem Zweig ein \`System.out.println(…)\`. lösung: aufgabe-volljaehrig-loesung.visustruct ::: -`,Gx=`--- +`,Hx=`--- titel: Würfeln mit MVC nach: 40 stufe: 3 @@ -34336,7 +34336,7 @@ Zusatz: Ein Knopf **Neues Spiel** setzt alles auf Anfang. Die Methode dafür geh ::: ludwig Denk an die Regel aus Lektion 40: Im Model steht kein einziges \`JLabel\`. Wenn du beim Würfeln die Schriftgröße änderst, gehört das in die View. ::: -`,Rx=`--- +`,Qx=`--- titel: Zahl verdoppeln nach: 2 stufe: 1 @@ -34352,7 +34352,7 @@ tipp: Verdoppeln heißt: mal 2. Das Ergebnis speicherst du wieder in derselben V tipp: \`zahl = zahl * 2\` rechnet mit dem alten Wert und speichert das Ergebnis wieder in \`zahl\`. Text und Variable verbindest du mit \`+\`. lösung: aufgabe-verdoppeln-loesung.visustruct ::: -`,Hx=`--- +`,Vx=`--- titel: Age in a subprogram nach: 18 stufe: 2 @@ -34373,7 +34373,7 @@ tipp: Open the exercise in the editor and build the main program there with the lösung: aufgabe-alter-haupt-loesung.visustruct unterprogramm: aufgabe-alter-unterprogramm-loesung.visustruct ::: -`,Qx=`--- +`,qx=`--- titel: Ball throw results nach: 25 stufe: 2 @@ -34402,7 +34402,7 @@ tipp: You need four variables before the loop: the count, the sum as a \`double\ tipp: In the loop: \`String[] parts = line.split(";");\` and \`int distance = Integer.parseInt(parts[1]);\`. If \`distance > bestDistance\`, remember the distance and the name. To save: \`PrintWriter out = new PrintWriter("winner.txt");\`, \`out.println(…)\` and \`out.close();\`. lösung: aufgabe-ballwurf-loesung.visustruct ::: -`,Vx=`--- +`,Ux=`--- titel: Leaderboard nach: 19 stufe: 2 @@ -34436,7 +34436,7 @@ tipp: Read each number into a variable first and then put it into the array: \`i tipp: The swap needs a temporary variable in Java too: \`int temp = points[i]; points[i] = points[i + 1]; points[i + 1] = temp;\`. lösung: aufgabe-bestenliste-loesung.visustruct ::: -`,qx=`--- +`,$x=`--- titel: Binary number nach: 11 stufe: 3 @@ -34478,7 +34478,7 @@ tipp: Start with \`String binary = "";\`. The loop runs with \`while (number > 0 tipp: In the body: \`int remainder = number % 2;\`, then \`binary = remainder + binary;\` and \`number = number / 2;\`. Because \`binary\` is a String, \`+\` puts the remainder at the front. lösung: aufgabe-binaer-loesung.visustruct ::: -`,Ux=`--- +`,Yx=`--- titel: Caesar cipher nach: 17 stufe: 3 @@ -34612,7 +34612,7 @@ lösung: aufgabe-caesar-entschluesseln-loesung.visustruct ::: angeberwissen Unfortunately, Caesar is not secure. There are only 25 keys, and you can try them all in a few minutes. It is even quicker with a trick: in English, E is the most common letter. If H is the most common letter in the secret text, the key was probably 3. On the internet there is also ROT13, which is Caesar with the key 13. Applying ROT13 twice gives you the plain text again, because 13 + 13 = 26. ::: -`,$x=`--- +`,Xx=`--- titel: Collatz sequence nach: 11 stufe: 2 @@ -34656,7 +34656,7 @@ lösung: aufgabe-collatz-loesung.visustruct ::: angeberwissen This task could make you rich! The mathematician Paul Erdős offered 500 dollars for a proof. In 2021 the Japanese company Bakuage added quite a bit more: 120 million yen, about a million dollars at the time, for a proof or a counterexample. Nobody has collected the money yet. By the way, the puzzle was invented by the German mathematician Lothar Collatz in 1937. I am going to start calculating right now; that much money buys a lot of hay. ::: -`,Yx=`--- +`,Kx=`--- titel: Unit converter nach: 35 stufe: 2 @@ -34705,7 +34705,7 @@ Extra: a fourth button **in feet** converts to the imperial unit. One foot is 0. ::: ludwig Tick **Real Java (with Swing)** in the [gear](#zeige-einstellungen). For "abc" in the field, every listener needs a try/catch with \`NumberFormatException\`, just like the calculator. ::: -`,Xx=`--- +`,eb=`--- titel: Fibonacci numbers nach: 13 stufe: 2 @@ -34759,7 +34759,7 @@ lösung: aufgabe-fibonacci-loesung.visustruct - [ ] The order does not matter > The other way round, number1 and number2 would have the same value afterwards. Just like swapping: first save, then overwrite. ::: -`,Kx=`--- +`,tb=`--- titel: Even or odd nach: 8 stufe: 1 @@ -34795,7 +34795,7 @@ tipp: Read a number with \`int number = scanner.nextInt();\`. Ask with \`System. tipp: \`if (number % 2 == 0) { … } else { … }\`. The output is \`System.out.println(number + " is even");\`. lösung: aufgabe-gerade-loesung.visustruct ::: -`,eb=`--- +`,nb=`--- titel: Sales tax nach: 6 stufe: 1 @@ -34836,7 +34836,7 @@ lösung: aufgabe-mehrwertsteuer-loesung.visustruct - [ ] Because decimal numbers can only be stored as constants > A constant keeps its value. If the tax rate ever changes, you only change the one line with \`const\`. ::: -`,tb=`--- +`,ab=`--- titel: Grade average nach: 13 stufe: 2 @@ -34871,7 +34871,7 @@ tipp: \`for (int i = 0; i < count; i++)\` reads exactly as many grades as were g tipp: Divide with \`double average = sum * 1.0 / count;\`. Without \`* 1.0\`, Java divides two \`int\` values as whole numbers, and 1.5 becomes 1. lösung: aufgabe-durchschnitt-loesung.visustruct ::: -`,nb=`--- +`,ib=`--- titel: Check the PIN nach: 12 stufe: 2 @@ -34911,7 +34911,7 @@ tipp: \`do { … } while (…);\` asks at least once. There is a semicolon after tipp: Create \`int pin = 0;\` and \`int attempts = 0;\` first. In the loop: \`int entered = scanner.nextInt();\`, \`pin = entered;\` and \`attempts++;\`. The condition is \`pin != 1234 && attempts < 3\`. lösung: aufgabe-pin-java-loesung.visustruct ::: -`,ab=`--- +`,sb=`--- titel: Battleship nach: 16 stufe: 2 @@ -34948,7 +34948,7 @@ tipp: Two \`for\` loops inside each other: the row outside, the column inside, b tipp: \`if (sea[row][column]) { System.out.println(columns[column] + (row + 1)); }\`. The brackets around \`row + 1\` make Java calculate first. lösung: aufgabe-schiffe-loesung.visustruct ::: -`,ib=`--- +`,rb=`--- titel: Menu nach: 10 stufe: 1 @@ -34984,7 +34984,7 @@ tipp: In Java this is a switch: \`switch (pick) { … }\`. tipp: Every case looks like this: \`case 1 -> { System.out.println("…"); }\`. All other numbers go to \`default -> { … }\`. lösung: aufgabe-speisekarte-loesung.visustruct ::: -`,sb=`--- +`,ob=`--- titel: Add up nach: 2 stufe: 1 @@ -35000,7 +35000,7 @@ tipp: You need three variables: two for the numbers and one for the result. tipp: You set a variable with a statement such as \`int number1 = 4\`. For the output you write the name of the variable without quotation marks. lösung: aufgabe-summe-loesung.visustruct ::: -`,rb=`--- +`,lb=`--- titel: Draw for board duty nach: 15 stufe: 2 @@ -35037,7 +35037,7 @@ lösung: aufgabe-tafeldienst-loesung.visustruct ::: > With \`int pick = (int) (Math.random() * 5) + 1\` you can also let chance draw the number. But for the automatic check we need a fixed input. -`,ob=`--- +`,ub=`--- titel: Calculator nach: 10 stufe: 2 @@ -35073,7 +35073,7 @@ tipp: The operator is a text. Read it with \`String operator = scanner.next();\` tipp: \`switch (operator) { case "+" -> { … } … default -> { … } }\`. With texts, the cases are in quotation marks. lösung: aufgabe-rechner-loesung.visustruct ::: -`,lb=`--- +`,mb=`--- titel: Rental menu nach: 18 stufe: 2 @@ -35108,7 +35108,7 @@ tipp: \`while (true) { … }\` runs forever until a \`break;\` comes. tipp: In Java, use \`if\`/\`else if\` here instead of \`switch\`: a \`break;\` inside a \`switch\` only leaves the \`switch\`, not the loop. \`if (choice == 0) { System.out.println("Bye"); break; } else if (choice == 1) { … }\`. lösung: aufgabe-verleih-java-loesung.visustruct ::: -`,ub=`--- +`,cb=`--- titel: Vocabulary trainer nach: 27 stufe: 3 @@ -35143,7 +35143,7 @@ tipp: Skip the header line. In the loop, split every line with \`split(";")\`: \ tipp: Compare texts with \`answer.equals(parts[1])\`, not with \`==\`. Count along with \`int right = 0;\` and \`int count = 0;\` before the loop. lösung: aufgabe-vokabeln-loesung.visustruct ::: -`,mb=`--- +`,db=`--- titel: Adult? nach: 8 stufe: 1 @@ -35179,7 +35179,7 @@ tipp: Read the age with \`int age = scanner.nextInt();\`. tipp: \`if (age >= 18) { … } else { … }\`, with a \`System.out.println(…)\` in each branch. lösung: aufgabe-volljaehrig-loesung.visustruct ::: -`,cb=`--- +`,hb=`--- titel: Rolling dice with MVC nach: 40 stufe: 3 @@ -35217,7 +35217,7 @@ Extra: a button **New game** resets everything. The method for that belongs in t ::: ludwig Remember the rule from lesson 40: there isn't a single \`JLabel\` in the model. If you change the font size when rolling, that belongs in the view. ::: -`,db=`--- +`,gb=`--- titel: Double a number nach: 2 stufe: 1 @@ -35233,7 +35233,7 @@ tipp: Doubling means: times 2. You store the result in the same variable again. tipp: \`number = number * 2\` calculates with the old value and stores the result in \`number\` again. You join text and a variable with \`+\`. lösung: aufgabe-verdoppeln-loesung.visustruct ::: -`,hb=`--- +`,pb=`--- titel: Idade num subprograma nach: 18 stufe: 2 @@ -35254,7 +35254,7 @@ tipp: Abre o exercício no editor e constrói lá o programa principal com a cha lösung: aufgabe-alter-haupt-loesung.visustruct unterprogramm: aufgabe-alter-unterprogramm-loesung.visustruct ::: -`,gb=`--- +`,fb=`--- titel: Avaliar o lançamento da bola nach: 25 stufe: 2 @@ -35283,7 +35283,7 @@ tipp: Precisas de quatro variáveis antes do ciclo: a contagem, a soma como \`do tipp: No ciclo: \`String[] partes = linha.split(";");\` e \`int distancia = Integer.parseInt(partes[1]);\`. Se \`distancia > melhorDistancia\`, guarda a distância e o nome. Para guardar: \`PrintWriter saida = new PrintWriter("vencedor.txt");\`, \`saida.println(…)\` e \`saida.close();\`. lösung: aufgabe-ballwurf-loesung.visustruct ::: -`,pb=`--- +`,xb=`--- titel: Classificação nach: 19 stufe: 2 @@ -35317,7 +35317,7 @@ tipp: Lê cada número primeiro para uma variável e depois põe-no no array: \` tipp: A troca também precisa de uma variável auxiliar em Java: \`int aux = pontos[i]; pontos[i] = pontos[i + 1]; pontos[i + 1] = aux;\`. lösung: aufgabe-bestenliste-loesung.visustruct ::: -`,fb=`--- +`,bb=`--- titel: Número binário nach: 11 stufe: 3 @@ -35359,7 +35359,7 @@ tipp: Começa com \`String binario = "";\`. O ciclo corre com \`while (numero > tipp: No corpo: \`int resto = numero % 2;\`, depois \`binario = resto + binario;\` e \`numero = numero / 2;\`. Como \`binario\` é uma String, o \`+\` põe o resto à frente. lösung: aufgabe-binaer-loesung.visustruct ::: -`,xb=`--- +`,yb=`--- titel: Cifra de César nach: 17 stufe: 3 @@ -35493,7 +35493,7 @@ lösung: aufgabe-caesar-entschluesseln-loesung.visustruct ::: angeberwissen Infelizmente, a cifra de César não é segura. Há apenas 25 chaves, e é possível experimentá-las todas em poucos minutos. Com um truque é ainda mais rápido: em português, as letras mais frequentes são o A e o E. Se no texto cifrado o H aparecer muitas vezes, a chave foi provavelmente 3. Na internet existe ainda o ROT13, que é a cifra de César com a chave 13. Aplicar ROT13 duas vezes devolve o texto simples, porque 13 + 13 = 26. ::: -`,bb=`--- +`,vb=`--- titel: Sequência de Collatz nach: 11 stufe: 2 @@ -35537,7 +35537,7 @@ lösung: aufgabe-collatz-loesung.visustruct ::: angeberwissen Esta tarefa pode tornar-te rico! O matemático Paul Erdős ofereceu 500 dólares por uma demonstração. Em 2021, a empresa japonesa Bakuage juntou bastante mais: 120 milhões de ienes, na altura cerca de um milhão de dólares, por uma demonstração ou um contraexemplo. Ainda ninguém foi buscar o dinheiro. Já agora, o enigma foi inventado pelo matemático alemão Lothar Collatz em 1937. Vou já começar a fazer contas; com tanto dinheiro compra-se muito feno. ::: -`,yb=`--- +`,wb=`--- titel: Conversor de unidades nach: 35 stufe: 2 @@ -35586,7 +35586,7 @@ Extra: um quarto botão **em pés** converte para a unidade inglesa. Um pé são ::: ludwig Marca **Java verdadeiro (com Swing)** na [roda dentada](#zeige-einstellungen). Para "abc" no campo, cada ouvinte precisa de um try/catch com \`NumberFormatException\`, tal como na calculadora. ::: -`,vb=`--- +`,zb=`--- titel: Números de Fibonacci nach: 13 stufe: 2 @@ -35640,7 +35640,7 @@ lösung: aufgabe-fibonacci-loesung.visustruct - [ ] A ordem não importa > Ao contrário, numero1 e numero2 ficariam depois com o mesmo valor. Tal como na troca: primeiro guardar, depois substituir. ::: -`,wb=`--- +`,Ib=`--- titel: Par ou ímpar nach: 8 stufe: 1 @@ -35676,7 +35676,7 @@ tipp: Lês um número com \`int numero = scanner.nextInt();\`. Antes disso pergu tipp: \`if (numero % 2 == 0) { … } else { … }\`. A saída é \`System.out.println(numero + " é par");\`. lösung: aufgabe-gerade-loesung.visustruct ::: -`,zb=`--- +`,kb=`--- titel: IVA nach: 6 stufe: 1 @@ -35717,7 +35717,7 @@ lösung: aufgabe-mehrwertsteuer-loesung.visustruct - [ ] Porque os números decimais só podem ser guardados como constantes > Uma constante mantém o seu valor. Se a taxa alguma vez mudar, só alteras a linha com \`const\`. ::: -`,Ib=`--- +`,Sb=`--- titel: Média das notas nach: 13 stufe: 2 @@ -35752,7 +35752,7 @@ tipp: \`for (int i = 0; i < quantidade; i++)\` lê exatamente as notas que foram tipp: Divide com \`double media = soma * 1.0 / quantidade;\`. Sem \`* 1.0\`, o Java divide dois \`int\` como inteiros, e 1.5 passa a 1. lösung: aufgabe-durchschnitt-loesung.visustruct ::: -`,kb=`--- +`,Ob=`--- titel: Verificar o PIN nach: 12 stufe: 2 @@ -35792,7 +35792,7 @@ tipp: \`do { … } while (…);\` pergunta pelo menos uma vez. Depois do \`while tipp: Cria antes \`int pin = 0;\` e \`int tentativas = 0;\`. No ciclo: \`int entrada = scanner.nextInt();\`, \`pin = entrada;\` e \`tentativas++;\`. A condição é \`pin != 1234 && tentativas < 3\`. lösung: aufgabe-pin-java-loesung.visustruct ::: -`,Sb=`--- +`,Tb=`--- titel: Batalha naval nach: 16 stufe: 2 @@ -35829,7 +35829,7 @@ tipp: Dois ciclos \`for\` um dentro do outro: fora a fila, dentro a coluna, ambo tipp: \`if (mar[fila][coluna]) { System.out.println(colunas[coluna] + (fila + 1)); }\`. Os parênteses à volta de \`fila + 1\` fazem o Java calcular primeiro. lösung: aufgabe-schiffe-loesung.visustruct ::: -`,Ob=`--- +`,Ab=`--- titel: Ementa nach: 10 stufe: 1 @@ -35865,7 +35865,7 @@ tipp: Em Java isto é uma seleção com \`switch (prato) { … }\`. tipp: Cada caso é assim: \`case 1 -> { System.out.println("…"); }\`. Para todos os outros números há \`default -> { … }\`. lösung: aufgabe-speisekarte-loesung.visustruct ::: -`,Tb=`--- +`,Pb=`--- titel: Somar nach: 2 stufe: 1 @@ -35881,7 +35881,7 @@ tipp: Precisas de três variáveis: duas para os números e uma para o resultado tipp: Defines uma variável com uma instrução como \`int numero1 = 4\`. Na saída escreves o nome da variável sem aspas. lösung: aufgabe-summe-loesung.visustruct ::: -`,Ab=`--- +`,jb=`--- titel: Sortear quem limpa o quadro nach: 15 stufe: 2 @@ -35918,7 +35918,7 @@ lösung: aufgabe-tafeldienst-loesung.visustruct ::: > Com \`int sorteado = (int) (Math.random() * 5) + 1\` também podes deixar o acaso sortear o número. Mas para a verificação automática precisamos de uma entrada fixa. -`,Pb=`--- +`,Cb=`--- titel: Calculadora nach: 10 stufe: 2 @@ -35954,7 +35954,7 @@ tipp: O operador é um texto. Lês com \`String operador = scanner.next();\`. tipp: \`switch (operador) { case "+" -> { … } … default -> { … } }\`. Com textos, os casos ficam entre aspas. lösung: aufgabe-rechner-loesung.visustruct ::: -`,jb=`--- +`,_b=`--- titel: Menu de aluguer nach: 18 stufe: 2 @@ -35989,7 +35989,7 @@ tipp: \`while (true) { … }\` corre sem fim até aparecer um \`break;\`. tipp: Em Java usa aqui \`if\`/\`else if\` em vez de \`switch\`: um \`break;\` dentro de um \`switch\` só sai do \`switch\`, não do ciclo. \`if (escolha == 0) { System.out.println("Adeus"); break; } else if (escolha == 1) { … }\`. lösung: aufgabe-verleih-java-loesung.visustruct ::: -`,Cb=`--- +`,Zb=`--- titel: Treino de vocabulário nach: 27 stufe: 3 @@ -36024,7 +36024,7 @@ tipp: Salta a linha de cabeçalho. No ciclo, divide cada linha com \`split(";")\ tipp: Os textos comparam-se com \`resposta.equals(partes[1])\`, não com \`==\`. Conta com \`int certas = 0;\` e \`int contagem = 0;\` antes do ciclo. lösung: aufgabe-vokabeln-loesung.visustruct ::: -`,_b=`--- +`,Mb=`--- titel: Maior de idade? nach: 8 stufe: 1 @@ -36060,7 +36060,7 @@ tipp: Lê a idade com \`int idade = scanner.nextInt();\`. tipp: \`if (idade >= 18) { … } else { … }\`, com um \`System.out.println(…)\` em cada ramo. lösung: aufgabe-volljaehrig-loesung.visustruct ::: -`,Zb=`--- +`,Db=`--- titel: Lançar o dado com MVC nach: 40 stufe: 3 @@ -36098,7 +36098,7 @@ Extra: um botão **Novo jogo** põe tudo no início. O método para isso pertenc ::: ludwig Lembra-te da regra da lição 40: no model não há um único \`JLabel\`. Se mudares o tamanho da letra ao lançar, isso pertence à view. ::: -`,Mb=`--- +`,Bb=`--- titel: Duplicar um número nach: 2 stufe: 1 @@ -36114,7 +36114,7 @@ tipp: Duplicar quer dizer: vezes 2. Guardas o resultado outra vez na mesma vari tipp: \`numero = numero * 2\` calcula com o valor antigo e volta a guardar o resultado em \`numero\`. Juntas texto e uma variável com \`+\`. lösung: aufgabe-verdoppeln-loesung.visustruct ::: -`,Db=` +`,Wb=` 111;117;116;112;117;116;58;32;34;87;105;108;108;107;111;109;109;101;110;34; @@ -36126,7 +36126,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;117;102;32;87;105;101;100;101;114;115;101;104;101;110;34; -`,Bb=` +`,Lb=` 105;110;112;117;116;58;32;105;110;116;32;97;108;116;101;114;32;34;87;105;101;32;97;108;116;32;98;105;115;116;32;100;117;63;34; @@ -36145,7 +36145,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Wb=` +`,Eb=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;98;97;108;108;119;117;114;102;46;99;115;118;34;41;41; @@ -36226,7 +36226,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 97;117;115;46;99;108;111;115;101;40;41; -`,Lb=` +`,Nb=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;98;97;108;108;119;117;114;102;46;99;115;118;34;41;41; @@ -36235,7 +36235,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;122;101;105;108;101;32;61;32;108;101;115;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,Eb=` +`,Fb=` 105;110;116;91;93;32;112;117;110;107;116;101;32;61;32;110;101;119;32;105;110;116;91;53;93; @@ -36300,7 +36300,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Nb=` +`,Jb=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;71;97;110;122;101;32;90;97;104;108;32;101;105;110;103;101;98;101;110;34; @@ -36326,7 +36326,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;98;105;110;97;101;114; -`,Fb=` +`,Gb=` 99;104;97;114;91;93;32;97;108;112;104;97;98;101;116;32;61;32;123;39;65;39;44;32;39;66;39;44;32;39;67;39;44;32;39;68;39;44;32;39;69;39;44;32;39;70;39;44;32;39;71;39;44;32;39;72;39;44;32;39;73;39;44;32;39;74;39;44;32;39;75;39;44;32;39;76;39;44;32;39;77;39;44;32;39;78;39;44;32;39;79;39;44;32;39;80;39;44;32;39;81;39;44;32;39;82;39;44;32;39;83;39;44;32;39;84;39;44;32;39;85;39;44;32;39;86;39;44;32;39;87;39;44;32;39;88;39;44;32;39;89;39;44;32;39;90;39;125; @@ -36380,13 +36380,13 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;103;101;104;101;105;109; -`,Jb=` +`,Rb=` 99;104;97;114;91;93;32;97;108;112;104;97;98;101;116;32;61;32;123;39;65;39;44;32;39;66;39;44;32;39;67;39;44;32;39;68;39;44;32;39;69;39;44;32;39;70;39;44;32;39;71;39;44;32;39;72;39;44;32;39;73;39;44;32;39;74;39;44;32;39;75;39;44;32;39;76;39;44;32;39;77;39;44;32;39;78;39;44;32;39;79;39;44;32;39;80;39;44;32;39;81;39;44;32;39;82;39;44;32;39;83;39;44;32;39;84;39;44;32;39;85;39;44;32;39;86;39;44;32;39;87;39;44;32;39;88;39;44;32;39;89;39;44;32;39;90;39;125; -`,Gb=` +`,Hb=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;119;111;114;116;32;34;87;101;108;99;104;101;115;32;87;111;114;116;32;40;110;117;114;32;71;114;111;223;98;117;99;104;115;116;97;98;101;110;41;63;34; @@ -36417,7 +36417,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;103;101;104;101;105;109; -`,Rb=` +`,Qb=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;103;101;104;101;105;109;32;34;87;101;108;99;104;101;114;32;71;101;104;101;105;109;116;101;120;116;63;34; @@ -36448,7 +36448,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;107;108;97;114;116;101;120;116; -`,Hb=` +`,Vb=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;83;116;97;114;116;122;97;104;108;32;101;105;110;103;101;98;101;110;34; @@ -36484,7 +36484,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;99;104;114;105;116;116;101;58;32;34;32;43;32;115;99;104;114;105;116;116;101; -`,Qb=` +`,qb=` 105;110;112;117;116;58;32;105;110;116;32;97;110;122;97;104;108;32;34;87;105;101;32;118;105;101;108;101;32;78;111;116;101;110;63;34; @@ -36512,7 +36512,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;99;104;110;105;116;116; -`,Vb=` +`,Ub=` 105;110;112;117;116;58;32;105;110;116;32;97;110;122;97;104;108;32;34;87;105;101;32;118;105;101;108;101;32;90;97;104;108;101;110;63;34; @@ -36549,7 +36549,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,qb=` +`,$b=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;90;97;104;108;32;101;105;110;103;101;98;101;110;34; @@ -36568,7 +36568,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Ub=` +`,Yb=` 99;111;110;115;116;32;100;111;117;98;108;101;32;77;87;83;84;32;61;32;48;46;49;57; @@ -36589,7 +36589,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;98;114;117;116;116;111;112;114;101;105;115; -`,$b=` +`,Xb=` 105;110;116;32;112;105;110;32;61;32;48; @@ -36625,7 +36625,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Yb=` +`,Kb=` 99;111;110;115;116;32;105;110;116;32;80;73;78;32;61;32;49;50;51;52; @@ -36661,7 +36661,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Xb=` +`,e4=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;49;32;34;69;114;115;116;101;32;90;97;104;108;34; @@ -36705,7 +36705,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Kb=` +`,t4=` 98;111;111;108;101;97;110;91;93;91;93;32;109;101;101;114;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;53;93;91;53;93; @@ -36759,7 +36759,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,e4=` +`,n4=` 98;111;111;108;101;97;110;91;93;91;93;32;109;101;101;114;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;53;93;91;53;93; @@ -36786,7 +36786,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;91;93;32;115;112;97;108;116;101;110;32;61;32;123;34;65;34;44;32;34;66;34;44;32;34;67;34;44;32;34;68;34;44;32;34;69;34;125; -`,t4=` +`,a4=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;109;101;114;32;34;87;101;108;99;104;101;115;32;71;101;114;105;99;104;116;63;32;40;49;44;32;50;32;111;100;101;114;32;51;41;34; @@ -36815,7 +36815,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,n4=` +`,i4=` 105;110;116;32;122;97;104;108;49;32;61;32;52; @@ -36830,7 +36830,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;117;109;109;101; -`,a4=` +`,s4=` 83;116;114;105;110;103;91;93;32;110;97;109;101;110;32;61;32;110;101;119;32;83;116;114;105;110;103;91;53;93; @@ -36852,7 +36852,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;97;102;101;108;100;105;101;110;115;116;58;32;34;32;43;32;110;97;109;101;110;91;110;117;109;109;101;114;32;45;32;49;93; -`,i4=` +`,r4=` 105;110;116;32;122;97;104;108;32;61;32;52; @@ -36864,7 +36864,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;86;101;114;100;111;112;112;101;108;116;101;32;90;97;104;108;58;32;34;32;43;32;122;97;104;108; -`,s4=` +`,o4=` -1; @@ -36911,7 +36911,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,r4=` +`,l4=` @@ -36948,7 +36948,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,o4=` +`,u4=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;118;111;107;97;98;101;108;110;46;99;115;118;34;41;41; @@ -37008,7 +37008,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;114;105;99;104;116;105;103;32;43;32;34;32;118;111;110;32;34;32;43;32;97;110;122;97;104;108;32;43;32;34;32;114;105;99;104;116;105;103;34; -`,l4=` +`,m4=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;118;111;107;97;98;101;108;110;46;99;115;118;34;41;41; @@ -37017,7 +37017,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;122;101;105;108;101;32;61;32;108;101;115;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,u4=` +`,c4=` 105;110;112;117;116;58;32;105;110;116;32;97;108;116;101;114;32;34;87;105;101;32;97;108;116;32;98;105;115;116;32;100;117;63;34; @@ -37036,7 +37036,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,m4=` +`,d4=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;108;111;103;98;117;99;104;46;116;120;116;34;41;41; @@ -37059,7 +37059,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 108;101;115;101;114;46;99;108;111;115;101;40;41; -`,c4=` +`,h4=` 83;116;114;105;110;103;32;122;101;105;108;101;32;61;32;34;90;111;114;97;59;49;59;50;59;50;34; @@ -37077,7 +37077,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;97;109;101;32;43;32;34;32;104;97;116;32;105;110;32;77;97;116;104;101;32;101;105;110;101;32;34;32;43;32;109;97;116;104;101; -`,d4=` +`,g4=` 83;116;114;105;110;103;32;122;101;105;108;101;32;61;32;34;123;92;34;110;97;109;101;92;34;58;32;92;34;90;111;114;97;92;34;44;32;92;34;97;114;116;92;34;58;32;92;34;90;105;101;103;101;92;34;44;32;92;34;97;108;116;101;114;92;34;58;32;54;125;44;34; @@ -37095,7 +37095,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;97;109;101; -`,h4=` +`,p4=` 83;99;97;110;110;101;114;32;100;97;116;101;105;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;101;105;110;107;97;117;102;46;116;120;116;34;41;41; @@ -37115,7 +37115,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 100;97;116;101;105;46;99;108;111;115;101;40;41; -`,g4=` +`,f4=` 111;117;116;112;117;116;58;32;34;87;101;108;99;111;109;101;34; @@ -37127,7 +37127,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;71;111;111;100;98;121;101;34; -`,p4=` +`,x4=` 105;110;112;117;116;58;32;105;110;116;32;97;103;101;32;34;72;111;119;32;111;108;100;32;97;114;101;32;121;111;117;63;34; @@ -37146,7 +37146,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,f4=` +`,b4=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;116;104;114;111;119;46;99;115;118;34;41;41; @@ -37227,7 +37227,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;46;99;108;111;115;101;40;41; -`,x4=` +`,y4=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;116;104;114;111;119;46;99;115;118;34;41;41; @@ -37236,7 +37236,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;101;32;61;32;114;101;97;100;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,b4=` +`,v4=` 105;110;116;91;93;32;112;111;105;110;116;115;32;61;32;110;101;119;32;105;110;116;91;53;93; @@ -37301,7 +37301,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,y4=` +`,w4=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;32;34;69;110;116;101;114;32;97;32;119;104;111;108;101;32;110;117;109;98;101;114;34; @@ -37327,7 +37327,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;98;105;110;97;114;121; -`,v4=` +`,z4=` 99;104;97;114;91;93;32;97;108;112;104;97;98;101;116;32;61;32;123;39;65;39;44;32;39;66;39;44;32;39;67;39;44;32;39;68;39;44;32;39;69;39;44;32;39;70;39;44;32;39;71;39;44;32;39;72;39;44;32;39;73;39;44;32;39;74;39;44;32;39;75;39;44;32;39;76;39;44;32;39;77;39;44;32;39;78;39;44;32;39;79;39;44;32;39;80;39;44;32;39;81;39;44;32;39;82;39;44;32;39;83;39;44;32;39;84;39;44;32;39;85;39;44;32;39;86;39;44;32;39;87;39;44;32;39;88;39;44;32;39;89;39;44;32;39;90;39;125; @@ -37381,13 +37381,13 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;101;99;114;101;116; -`,w4=` +`,I4=` 99;104;97;114;91;93;32;97;108;112;104;97;98;101;116;32;61;32;123;39;65;39;44;32;39;66;39;44;32;39;67;39;44;32;39;68;39;44;32;39;69;39;44;32;39;70;39;44;32;39;71;39;44;32;39;72;39;44;32;39;73;39;44;32;39;74;39;44;32;39;75;39;44;32;39;76;39;44;32;39;77;39;44;32;39;78;39;44;32;39;79;39;44;32;39;80;39;44;32;39;81;39;44;32;39;82;39;44;32;39;83;39;44;32;39;84;39;44;32;39;85;39;44;32;39;86;39;44;32;39;87;39;44;32;39;88;39;44;32;39;89;39;44;32;39;90;39;125; -`,z4=` +`,k4=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;119;111;114;100;32;34;87;104;105;99;104;32;119;111;114;100;32;40;99;97;112;105;116;97;108;32;108;101;116;116;101;114;115;32;111;110;108;121;41;63;34; @@ -37418,7 +37418,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;101;99;114;101;116; -`,I4=` +`,S4=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;115;101;99;114;101;116;32;34;87;104;105;99;104;32;115;101;99;114;101;116;32;116;101;120;116;63;34; @@ -37449,7 +37449,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;112;108;97;105;110; -`,k4=` +`,O4=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;32;34;69;110;116;101;114;32;97;32;115;116;97;114;116;32;110;117;109;98;101;114;34; @@ -37485,7 +37485,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;116;101;112;115;58;32;34;32;43;32;115;116;101;112;115; -`,S4=` +`,T4=` 105;110;112;117;116;58;32;105;110;116;32;99;111;117;110;116;32;34;72;111;119;32;109;97;110;121;32;103;114;97;100;101;115;63;34; @@ -37513,7 +37513,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;97;118;101;114;97;103;101; -`,O4=` +`,A4=` 105;110;112;117;116;58;32;105;110;116;32;99;111;117;110;116;32;34;72;111;119;32;109;97;110;121;32;110;117;109;98;101;114;115;63;34; @@ -37550,7 +37550,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,T4=` +`,P4=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;32;34;69;110;116;101;114;32;97;32;110;117;109;98;101;114;34; @@ -37569,7 +37569,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,A4=` +`,j4=` 99;111;110;115;116;32;100;111;117;98;108;101;32;86;65;84;32;61;32;48;46;49;57; @@ -37590,7 +37590,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;103;114;111;115;115;80;114;105;99;101; -`,P4=` +`,C4=` 105;110;116;32;112;105;110;32;61;32;48; @@ -37626,7 +37626,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,j4=` +`,_4=` 99;111;110;115;116;32;105;110;116;32;80;73;78;32;61;32;49;50;51;52; @@ -37662,7 +37662,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,C4=` +`,Z4=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;49;32;34;70;105;114;115;116;32;110;117;109;98;101;114;34; @@ -37706,7 +37706,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,_4=` +`,M4=` 98;111;111;108;101;97;110;91;93;91;93;32;115;101;97;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;53;93;91;53;93; @@ -37760,7 +37760,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Z4=` +`,D4=` 98;111;111;108;101;97;110;91;93;91;93;32;115;101;97;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;53;93;91;53;93; @@ -37787,7 +37787,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;91;93;32;99;111;108;117;109;110;115;32;61;32;123;34;65;34;44;32;34;66;34;44;32;34;67;34;44;32;34;68;34;44;32;34;69;34;125; -`,M4=` +`,B4=` 105;110;112;117;116;58;32;105;110;116;32;112;105;99;107;32;34;87;104;105;99;104;32;100;105;115;104;63;32;40;49;44;32;50;32;111;114;32;51;41;34; @@ -37816,7 +37816,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,D4=` +`,W4=` 105;110;116;32;110;117;109;98;101;114;49;32;61;32;52; @@ -37831,7 +37831,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;117;109; -`,B4=` +`,L4=` 83;116;114;105;110;103;91;93;32;110;97;109;101;115;32;61;32;110;101;119;32;83;116;114;105;110;103;91;53;93; @@ -37853,7 +37853,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;66;111;97;114;100;32;100;117;116;121;58;32;34;32;43;32;110;97;109;101;115;91;112;105;99;107;32;45;32;49;93; -`,W4=` +`,E4=` 105;110;116;32;110;117;109;98;101;114;32;61;32;52; @@ -37865,7 +37865,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;68;111;117;98;108;101;100;32;110;117;109;98;101;114;58;32;34;32;43;32;110;117;109;98;101;114; -`,L4=` +`,N4=` -1; @@ -37912,7 +37912,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,E4=` +`,F4=` @@ -37949,7 +37949,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,N4=` +`,J4=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;119;111;114;100;115;46;99;115;118;34;41;41; @@ -38009,7 +38009,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;114;105;103;104;116;32;43;32;34;32;111;102;32;34;32;43;32;99;111;117;110;116;32;43;32;34;32;114;105;103;104;116;34; -`,F4=` +`,G4=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;119;111;114;100;115;46;99;115;118;34;41;41; @@ -38018,7 +38018,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;101;32;61;32;114;101;97;100;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,J4=` +`,R4=` 105;110;112;117;116;58;32;105;110;116;32;97;103;101;32;34;72;111;119;32;111;108;100;32;97;114;101;32;121;111;117;63;34; @@ -38037,7 +38037,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,G4=` +`,H4=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;108;111;103;98;111;111;107;46;116;120;116;34;41;41; @@ -38060,7 +38060,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 114;101;97;100;101;114;46;99;108;111;115;101;40;41; -`,R4=` +`,Q4=` 83;116;114;105;110;103;32;108;105;110;101;32;61;32;34;90;111;114;97;59;49;59;50;59;50;34; @@ -38078,7 +38078,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;97;109;101;32;43;32;34;32;103;111;116;32;97;32;34;32;43;32;109;97;116;104;115;32;43;32;34;32;105;110;32;109;97;116;104;115;34; -`,H4=` +`,V4=` 83;116;114;105;110;103;32;108;105;110;101;32;61;32;34;123;92;34;110;97;109;101;92;34;58;32;92;34;90;111;114;97;92;34;44;32;92;34;115;112;101;99;105;101;115;92;34;58;32;92;34;103;111;97;116;92;34;44;32;92;34;97;103;101;92;34;58;32;54;125;44;34; @@ -38096,7 +38096,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;97;109;101; -`,Q4=` +`,q4=` 83;99;97;110;110;101;114;32;102;105;108;101;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;115;104;111;112;112;105;110;103;46;116;120;116;34;41;41; @@ -38116,7 +38116,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 102;105;108;101;46;99;108;111;115;101;40;41; -`,V4=` +`,U4=` 105;110;116;91;93;91;93;32;116;97;98;108;101;32;61;32;110;101;119;32;105;110;116;91;49;48;93;91;49;48;93; @@ -38148,7 +38148,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;97;32;43;32;34;32;183;32;34;32;43;32;98;32;43;32;34;32;61;32;34;32;43;32;116;97;98;108;101;91;97;32;45;32;49;93;91;98;32;45;32;49;93; -`,q4=` +`,$4=` 98;111;111;108;101;97;110;91;93;91;93;32;115;101;97;116;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -38196,7 +38196,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;70;114;101;101;58;32;34;32;43;32;102;114;101;101; -`,U4=` +`,Y4=` 98;111;111;108;101;97;110;91;93;91;93;32;115;101;97;116;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -38211,7 +38211,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 115;101;97;116;115;91;50;93;91;51;93;32;61;32;116;114;117;101; -`,$4=` +`,X4=` 98;111;111;108;101;97;110;91;93;91;93;32;115;101;97;116;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -38245,7 +38245,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Y4=` +`,K4=` 98;111;111;108;101;97;110;91;93;91;93;32;115;101;97;116;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -38263,7 +38263,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 105;110;112;117;116;58;32;105;110;116;32;115;101;97;116;32;34;83;101;97;116;34; -`,X4=` +`,ey=` 98;111;111;108;101;97;110;91;93;91;93;32;115;101;97;116;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -38311,7 +38311,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,K4=` +`,ty=` 98;111;111;108;101;97;110;91;93;91;93;32;115;101;97;116;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -38335,7 +38335,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;82;111;119;32;49;44;32;115;101;97;116;32;50;32;115;111;108;100;63;32;34;32;43;32;115;101;97;116;115;91;49;93;91;50;93; -`,ey=` +`,ny=` 105;110;116;32;115;101;99;111;110;100;115;32;61;32;50;48;48; @@ -38350,7 +38350,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;101;115;32;43;32;34;32;109;105;110;32;34;32;43;32;114;101;115;116;32;43;32;34;32;115;34; -`,ty=` +`,ay=` 105;110;116;32;115;101;99;111;110;100;115;32;61;32;50;48;48; @@ -38365,7 +38365,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;101;115;32;43;32;34;32;109;105;110;32;34;32;43;32;114;101;115;116;32;43;32;34;32;115;34; -`,ny=` +`,iy=` 83;116;114;105;110;103;32;110;97;109;101;32;61;32;34;76;117;100;119;105;103;34; @@ -38383,7 +38383,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;72;101;105;103;104;116;58;32;34;32;43;32;104;101;105;103;104;116;32;43;32;34;32;109;34; -`,ay=` +`,sy=` 105;110;116;32;110;117;109;98;101;114;32;61;32;51; @@ -38398,7 +38398,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;117;109;98;101;114; -`,iy=` +`,ry=` 105;110;116;32;110;117;109;98;101;114;32;61;32;50; @@ -38413,7 +38413,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;117;109;98;101;114; -`,sy=` +`,oy=` 111;117;116;112;117;116;58;32;110;117;109;98;101;114; @@ -38428,7 +38428,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 110;117;109;98;101;114;32;61;32;110;117;109;98;101;114;32;43;32;51; -`,ry=` +`,ly=` 83;116;114;105;110;103;32;108;101;102;116;32;61;32;34;106;117;105;99;101;34; @@ -38452,7 +38452,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;82;105;103;104;116;58;32;34;32;43;32;114;105;103;104;116; -`,oy=` +`,uy=` 83;116;114;105;110;103;32;108;101;102;116;32;61;32;34;106;117;105;99;101;34; @@ -38467,7 +38467,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;82;105;103;104;116;58;32;34;32;43;32;114;105;103;104;116; -`,ly=` +`,my=` 105;110;116;32;97;32;61;32;53; @@ -38491,7 +38491,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;98;32;61;32;34;32;43;32;98; -`,uy=` +`,cy=` 105;110;116;32;97;103;101;32;61;32;49;52; @@ -38509,7 +38509,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;72;101;105;103;104;116;58;32;34;32;43;32;104;101;105;103;104;116;32;43;32;34;32;109;34; -`,my=` +`,dy=` 105;110;116;32;109;105;110;117;116;101;115;32;61;32;49;51;53; @@ -38524,7 +38524,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;104;111;117;114;115;32;43;32;34;32;104;111;117;114;115;32;97;110;100;32;34;32;43;32;114;101;109;97;105;110;100;101;114;32;43;32;34;32;109;105;110;117;116;101;115;34; -`,cy=` +`,hy=` 105;110;116;32;99;111;117;110;116;32;61;32;51; @@ -38539,7 +38539,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;116;111;116;97;108;80;114;105;99;101;32;43;32;34;32;101;117;114;111;115;34; -`,dy=` +`,gy=` 105;110;116;32;99;114;101;100;105;116;32;61;32;50;48; @@ -38554,7 +38554,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;76;101;102;116;58;32;34;32;43;32;99;114;101;100;105;116; -`,hy=` +`,py=` 105;110;116;32;99;114;101;100;105;116;32;61;32;50;48; @@ -38569,7 +38569,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 99;114;101;100;105;116;32;61;32;99;114;101;100;105;116;32;45;32;112;114;105;99;101; -`,gy=` +`,fy=` 105;110;116;32;112;114;105;99;101;32;61;32;57; @@ -38584,7 +38584,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;116;111;116;97;108; -`,py=` +`,xy=` 105;110;116;32;108;101;110;103;116;104;32;61;32;55; @@ -38605,7 +38605,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;101;114;105;109;101;116;101;114;58;32;34;32;43;32;112;101;114;105;109;101;116;101;114; -`,fy=` +`,by=` 105;110;116;32;115;101;99;111;110;100;115;32;61;32;50;48;48; @@ -38620,7 +38620,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;101;115;32;43;32;34;32;109;105;110;117;116;101;115;32;97;110;100;32;34;32;43;32;114;101;109;97;105;110;100;101;114;32;43;32;34;32;115;101;99;111;110;100;115;34; -`,xy=` +`,yy=` 105;110;116;32;115;101;99;111;110;100;115;32;61;32;50;48;48; @@ -38629,7 +38629,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;101;115;32;43;32;34;32;109;105;110;117;116;101;115;32;97;110;100;32;34;32;43;32;114;101;109;97;105;110;100;101;114;32;43;32;34;32;115;101;99;111;110;100;115;34; -`,by=` +`,vy=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;110;97;109;101;32;34;87;104;97;116;32;105;115;32;121;111;117;114;32;110;97;109;101;63;34; @@ -38638,7 +38638,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;72;101;108;108;111;32;34;32;43;32;110;97;109;101;32;43;32;34;33;34; -`,yy=` +`,wy=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;70;105;114;115;116;32;110;117;109;98;101;114;63;34; @@ -38653,7 +38653,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;58;32;34;32;43;32;115;117;109; -`,vy=` +`,zy=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;70;105;114;115;116;32;110;117;109;98;101;114;63;34; @@ -38665,7 +38665,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;58;32;34;32;43;32;40;97;32;43;32;98;41; -`,wy=` +`,Iy=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;70;105;114;115;116;32;110;117;109;98;101;114;63;34; @@ -38677,7 +38677,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;58;32;34;32;43;32;97;32;43;32;98; -`,zy=` +`,ky=` 105;110;112;117;116;58;32;105;110;116;32;121;101;97;114;115;32;34;72;111;119;32;111;108;100;32;97;114;101;32;121;111;117;63;34; @@ -38689,7 +38689,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;104;97;116;32;105;115;32;97;98;111;117;116;32;34;32;43;32;100;97;121;115;32;43;32;34;32;100;97;121;115;46;34; -`,Iy=` +`,Sy=` 105;110;112;117;116;58;32;100;111;117;98;108;101;32;120;32;34;70;105;114;115;116;32;110;117;109;98;101;114;63;34; @@ -38704,7 +38704,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;77;101;97;110;58;32;34;32;43;32;109;101;97;110; -`,ky=` +`,Oy=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;70;105;114;115;116;32;110;117;109;98;101;114;63;34; @@ -38725,7 +38725,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;114;111;100;117;99;116;58;32;34;32;43;32;112;114;111;100;117;99;116; -`,Sy=` +`,Ty=` 105;110;112;117;116;58;32;105;110;116;32;97;103;101;32;34;72;111;119;32;111;108;100;32;97;114;101;32;121;111;117;63;34; @@ -38744,7 +38744,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Oy=` +`,Ay=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;32;34;78;117;109;98;101;114;63;34; @@ -38766,7 +38766,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;117;109;98;101;114; -`,Ty=` +`,Py=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;32;34;78;117;109;98;101;114;63;34; @@ -38785,7 +38785,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Ay=` +`,jy=` 105;110;116;32;112;111;105;110;116;115;32;61;32;48; @@ -38803,7 +38803,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;105;110;116;115;58;32;34;32;43;32;112;111;105;110;116;115; -`,Py=` +`,Cy=` 105;110;116;32;112;111;105;110;116;115;32;61;32;48; @@ -38821,7 +38821,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;105;110;116;115;58;32;34;32;43;32;112;111;105;110;116;115; -`,jy=` +`,_y=` 105;110;116;32;112;114;105;99;101;32;61;32;56; @@ -38839,7 +38839,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;116;111;116;97;108; -`,Cy=` +`,Zy=` 105;110;116;32;112;114;105;99;101;32;61;32;56; @@ -38857,7 +38857,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;116;111;116;97;108; -`,_y=` +`,My=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;70;105;114;115;116;32;110;117;109;98;101;114;63;34; @@ -38879,7 +38879,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Zy=` +`,Dy=` 105;110;112;117;116;58;32;100;111;117;98;108;101;32;112;114;105;99;101;32;34;80;114;105;99;101;32;105;110;32;101;117;114;111;115;63;34; @@ -38901,7 +38901,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;32;112;97;121;58;32;34;32;43;32;112;114;105;99;101;32;43;32;34;32;101;117;114;111;115;34; -`,My=` +`,By=` 105;110;112;117;116;58;32;105;110;116;32;103;114;97;100;101;32;34;71;114;97;100;101;63;34; @@ -38920,7 +38920,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Dy=` +`,Wy=` 105;110;112;117;116;58;32;105;110;116;32;112;111;105;110;116;115;32;34;72;111;119;32;109;97;110;121;32;112;111;105;110;116;115;63;34; @@ -38939,7 +38939,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,By=` +`,Ly=` 105;110;112;117;116;58;32;105;110;116;32;97;103;101;32;34;72;111;119;32;111;108;100;32;97;114;101;32;121;111;117;63;34; @@ -38958,7 +38958,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Wy=` +`,Ey=` 105;110;112;117;116;58;32;105;110;116;32;97;103;101;32;34;72;111;119;32;111;108;100;32;97;114;101;32;121;111;117;63;34; @@ -38977,7 +38977,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Ly=` +`,Ny=` 105;110;112;117;116;58;32;105;110;116;32;97;103;101;32;34;72;111;119;32;111;108;100;32;97;114;101;32;121;111;117;63;34; @@ -38996,7 +38996,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Ey=` +`,Fy=` 105;110;112;117;116;58;32;105;110;116;32;103;114;97;100;101;32;34;71;114;97;100;101;63;34; @@ -39015,7 +39015,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Ny=` +`,Jy=` 105;110;112;117;116;58;32;105;110;116;32;121;101;97;114;32;34;89;101;97;114;63;34; @@ -39034,7 +39034,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Fy=` +`,Gy=` 105;110;112;117;116;58;32;105;110;116;32;100;97;121;32;34;68;97;121;32;40;49;32;116;111;32;55;41;63;34; @@ -39053,7 +39053,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Jy=` +`,Ry=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;99;111;108;111;114;32;34;87;104;97;116;32;99;111;108;111;114;32;105;115;32;116;104;101;32;116;114;97;102;102;105;99;32;108;105;103;104;116;63;34; @@ -39082,7 +39082,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Gy=` +`,Hy=` 105;110;112;117;116;58;32;105;110;116;32;99;104;111;105;99;101;32;34;49;32;119;97;116;101;114;44;32;50;32;106;117;105;99;101;44;32;51;32;99;111;99;111;97;34; @@ -39111,7 +39111,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Ry=` +`,Qy=` 105;110;112;117;116;58;32;105;110;116;32;100;97;121;32;34;87;104;105;99;104;32;100;97;121;32;40;49;32;116;111;32;55;41;63;34; @@ -39130,7 +39130,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Hy=` +`,Vy=` 105;110;112;117;116;58;32;105;110;116;32;100;97;121;32;34;87;104;105;99;104;32;100;97;121;32;40;49;32;116;111;32;55;41;63;34; @@ -39149,7 +39149,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Qy=` +`,qy=` 105;110;112;117;116;58;32;105;110;116;32;104;111;117;114;32;34;87;104;97;116;32;116;105;109;101;32;105;115;32;105;116;32;40;106;117;115;116;32;116;104;101;32;104;111;117;114;41;63;34; @@ -39168,7 +39168,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Vy=` +`,Uy=` 105;110;112;117;116;58;32;105;110;116;32;103;114;97;100;101;32;34;87;104;105;99;104;32;103;114;97;100;101;63;34; @@ -39212,7 +39212,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,qy=` +`,$y=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;70;105;114;115;116;32;110;117;109;98;101;114;34; @@ -39259,7 +39259,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Uy=` +`,Yy=` 105;110;112;117;116;58;32;105;110;116;32;99;104;111;105;99;101;32;34;49;32;119;97;116;101;114;44;32;50;32;106;117;105;99;101;44;32;51;32;99;111;99;111;97;34; @@ -39298,7 +39298,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,$y=` +`,Xy=` 80;117;116;32;97;32;99;117;112;32;111;110;32;116;104;101;32;116;97;98;108;101; @@ -39328,7 +39328,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 68;114;105;110;107;32;116;104;101;32;116;101;97; -`,Yy=` +`,Ky=` 71;101;116;32;117;112; @@ -39343,7 +39343,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 72;97;118;101;32;98;114;101;97;107;102;97;115;116; -`,Xy=` +`,ev=` 70;105;108;108;32;116;104;101;32;107;101;116;116;108;101;32;119;105;116;104;32;119;97;116;101;114; @@ -39364,7 +39364,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 84;97;107;101;32;111;117;116;32;116;104;101;32;116;101;97;32;98;97;103; -`,Ky=` +`,tv=` 73;115;32;105;116;32;114;97;105;110;105;110;103;63; @@ -39383,7 +39383,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 76;101;97;118;101; -`,ev=` +`,nv=` 80;108;97;116;101;32;110;111;116;32;101;109;112;116;121; @@ -39397,7 +39397,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 67;108;101;97;114;32;116;104;101;32;112;108;97;116;101; -`,tv=` +`,av=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;67;111;117;110;116;32;117;112;32;116;111;63;34; @@ -39417,7 +39417,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,nv=` +`,iv=` 105;110;116;32;110;117;109;98;101;114;32;61;32;51; @@ -39437,7 +39437,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;116;97;114;116;33;34; -`,av=` +`,sv=` 105;110;116;32;110;117;109;98;101;114;32;61;32;51; @@ -39454,7 +39454,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;116;97;114;116;33;34; -`,iv=` +`,rv=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;70;97;99;116;111;114;105;97;108;32;111;102;32;119;104;105;99;104;32;110;117;109;98;101;114;63;34; @@ -39480,7 +39480,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;32;43;32;34;33;32;61;32;34;32;43;32;102;97;99;116;111;114;105;97;108; -`,sv=` +`,ov=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;70;105;114;115;116;32;110;117;109;98;101;114;63;34; @@ -39515,7 +39515,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,rv=` +`,lv=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;70;105;114;115;116;32;110;117;109;98;101;114;63;34; @@ -39550,7 +39550,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,ov=` +`,uv=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;32;34;87;104;105;99;104;32;110;117;109;98;101;114;63;34; @@ -39579,7 +39579,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,lv=` +`,mv=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;32;34;83;116;97;114;116;32;110;117;109;98;101;114;34; @@ -39602,7 +39602,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;116;101;112;115; -`,uv=` +`,cv=` 105;110;116;32;110;117;109;98;101;114;32;61;32;48; @@ -39619,7 +39619,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;104;97;110;107;32;121;111;117;33;34; -`,mv=` +`,dv=` 105;110;116;32;105;32;61;32;49;48; @@ -39636,7 +39636,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,cv=` +`,hv=` 105;110;112;117;116;58;32;105;110;116;32;103;111;97;108;32;34;83;97;118;105;110;103;115;32;103;111;97;108;63;34; @@ -39662,7 +39662,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;87;101;101;107;115;58;32;34;32;43;32;119;101;101;107;115; -`,dv=` +`,gv=` 105;110;112;117;116;58;32;105;110;116;32;103;111;97;108;32;34;83;97;118;105;110;103;115;32;103;111;97;108;63;34; @@ -39688,7 +39688,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;87;101;101;107;115;58;32;34;32;43;32;119;101;101;107;115; -`,hv=` +`,pv=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;85;112;32;116;111;32;119;104;101;114;101;63;34; @@ -39708,7 +39708,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,gv=` +`,fv=` 105;110;116;32;103;114;97;100;101;32;61;32;48; @@ -39725,7 +39725,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;89;111;117;114;32;103;114;97;100;101;58;32;34;32;43;32;103;114;97;100;101; -`,pv=` +`,xv=` 105;110;116;32;115;117;109;32;61;32;48; @@ -39748,7 +39748,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;117;109; -`,fv=` +`,bv=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;83;116;97;114;116;32;110;117;109;98;101;114;34; @@ -39767,7 +39767,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;71;111;33;34; -`,xv=` +`,yv=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;32;34;87;104;105;99;104;32;116;105;109;101;115;32;116;97;98;108;101;63;34; @@ -39786,7 +39786,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,bv=` +`,vv=` 105;110;116;32;105;32;61;32;49; @@ -39799,7 +39799,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,yv=` +`,wv=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;32;34;83;116;97;114;116;32;110;117;109;98;101;114;63;34; @@ -39816,7 +39816,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,vv=` +`,zv=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;32;34;83;116;97;114;116;32;110;117;109;98;101;114;63;34; @@ -39833,7 +39833,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,wv=` +`,Iv=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;32;34;83;116;97;114;116;32;110;117;109;98;101;114;63;34; @@ -39850,7 +39850,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,zv=` +`,kv=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;85;112;32;116;111;32;119;104;105;99;104;32;110;117;109;98;101;114;63;34; @@ -39872,7 +39872,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;117;109; -`,Iv=` +`,Sv=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;72;111;119;32;109;97;110;121;32;108;105;110;101;115;63;34; @@ -39901,7 +39901,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,kv=` +`,Ov=` 105;110;116;32;99;111;117;110;116;32;61;32;48; @@ -39933,7 +39933,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;99;111;117;110;116; -`,Sv=` +`,Tv=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;85;112;32;116;111;32;119;104;105;99;104;32;110;117;109;98;101;114;63;34; @@ -39965,7 +39965,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;99;111;117;110;116; -`,Ov=` +`,Av=` 105;110;112;117;116;58;32;105;110;116;32;114;111;119;32;34;87;104;105;99;104;32;116;105;109;101;115;32;116;97;98;108;101;63;34; @@ -39981,7 +39981,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Tv=` +`,Pv=` 105;110;112;117;116;58;32;105;110;116;32;114;111;119;32;34;87;104;105;99;104;32;116;105;109;101;115;32;116;97;98;108;101;63;34; @@ -39997,7 +39997,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Av=` +`,jv=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;85;112;32;116;111;32;119;104;105;99;104;32;110;117;109;98;101;114;63;34; @@ -40013,7 +40013,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Pv=` +`,Cv=` 105;110;112;117;116;58;32;105;110;116;32;119;105;100;116;104;32;34;87;105;100;116;104;34; @@ -40045,7 +40045,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,jv=` +`,_v=` 105;110;116;91;93;32;110;117;109;98;101;114;115;32;61;32;123;50;44;32;52;44;32;54;44;32;56;44;32;49;48;125; @@ -40061,7 +40061,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Cv=` +`,Zv=` 105;110;116;91;93;32;118;97;108;117;101;115;32;61;32;123;52;44;32;56;44;32;49;53;44;32;49;54;44;32;50;51;44;32;52;50;125; @@ -40076,7 +40076,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;118;97;108;117;101;115;46;108;101;110;103;116;104; -`,_v=` +`,Mv=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;85;112;32;116;111;32;119;104;105;99;104;32;110;117;109;98;101;114;63;34; @@ -40108,7 +40108,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;67;111;117;110;116;58;32;34;32;43;32;99;111;117;110;116; -`,Zv=` +`,Dv=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;85;112;32;116;111;32;119;104;105;99;104;32;110;117;109;98;101;114;63;34; @@ -40140,7 +40140,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Mv=` +`,Bv=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;72;111;119;32;109;97;110;121;32;115;116;101;112;115;63;34; @@ -40169,7 +40169,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Dv=` +`,Wv=` 83;116;114;105;110;103;91;93;32;110;97;109;101;115;32;61;32;110;101;119;32;83;116;114;105;110;103;91;51;93; @@ -40188,7 +40188,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;70;105;114;115;116;32;110;97;109;101;58;32;34;32;43;32;110;97;109;101;115;91;48;93; -`,Bv=` +`,Lv=` 105;110;116;91;93;32;110;117;109;98;101;114;115;32;61;32;110;101;119;32;105;110;116;91;52;93; @@ -40214,7 +40214,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Wv=` +`,Ev=` 105;110;116;91;93;32;110;117;109;98;101;114;115;32;61;32;110;101;119;32;105;110;116;91;53;93; @@ -40265,7 +40265,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;77;97;120;105;109;117;109;58;32;34;32;43;32;109;97;120; -`,Lv=` +`,Nv=` 105;110;116;91;93;32;112;111;105;110;116;115;32;61;32;123;49;50;44;32;55;44;32;49;57;44;32;52;125; @@ -40306,7 +40306,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;77;97;120;105;109;117;109;58;32;34;32;43;32;109;97;120; -`,Ev=` +`,Fv=` 105;110;116;32;115;117;109;32;61;32;48; @@ -40329,7 +40329,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;58;32;34;32;43;32;115;117;109; -`,Nv=` +`,Jv=` 105;110;116;32;115;117;109;32;61;32;48; @@ -40359,7 +40359,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;58;32;34;32;43;32;115;117;109; -`,Fv=` +`,Gv=` 105;110;112;117;116;58;32;105;110;116;32;108;101;110;103;116;104;32;34;76;101;110;103;116;104;63;34; @@ -40374,13 +40374,13 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;114;101;97;58;32;34;32;43;32;102; -`,Jv=` +`,Rv=` 114;101;116;117;114;110;32;97;32;42;32;98; -`,Gv=` +`,Hv=` 115;104;111;119;71;114;101;101;116;105;110;103;40;41; @@ -40392,7 +40392,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 115;104;111;119;82;101;115;117;108;116;40;41; -`,Rv=` +`,Qv=` 105;110;116;91;93;32;116;101;109;112;101;114;97;116;117;114;101;115;32;61;32;123;45;53;44;32;45;50;44;32;45;56;44;32;45;51;125; @@ -40424,7 +40424,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;72;105;103;104;101;115;116;32;116;101;109;112;101;114;97;116;117;114;101;58;32;34;32;43;32;109;97;120; -`,Hv=` +`,Vv=` 105;110;116;91;93;32;116;101;109;112;101;114;97;116;117;114;101;115;32;61;32;123;45;53;44;32;45;50;44;32;45;56;44;32;45;51;125; @@ -40456,7 +40456,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;72;105;103;104;101;115;116;32;116;101;109;112;101;114;97;116;117;114;101;58;32;34;32;43;32;109;97;120; -`,Qv=` +`,qv=` 105;110;116;91;93;32;103;114;97;100;101;115;32;61;32;123;50;44;32;51;44;32;49;44;32;52;125; @@ -40478,7 +40478,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;58;32;34;32;43;32;115;117;109; -`,Vv=` +`,Uv=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;32;34;87;104;105;99;104;32;110;117;109;98;101;114;63;34; @@ -40490,7 +40490,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;104;101;32;115;113;117;97;114;101;32;105;115;32;34;32;43;32;113; -`,qv=` +`,$v=` 105;110;116;32;114;101;115;117;108;116;32;61;32;120;32;42;32;120; @@ -40499,7 +40499,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 114;101;116;117;114;110;32;114;101;115;117;108;116; -`,Uv=` +`,Yv=` 115;104;111;119;84;105;116;108;101;40;41; @@ -40511,7 +40511,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;72;101;108;108;111;32;34;32;43;32;110;97;109;101; -`,$v=` +`,Xv=` 111;117;116;112;117;116;58;32;34;87;101;108;99;111;109;101;32;116;111;32;116;104;101;32;113;117;105;122;33;34; @@ -40520,7 +40520,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;89;111;117;32;103;101;116;32;116;104;114;101;101;32;113;117;101;115;116;105;111;110;115;46;34; -`,Yv=` +`,Kv=` 115;104;111;119;83;117;109;40;51;44;32;52;41; @@ -40532,7 +40532,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 115;104;111;119;83;117;109;40;120;44;32;120;32;43;32;49;41; -`,Xv=` +`,e9=` 105;110;116;32;115;117;109;32;61;32;97;32;43;32;98; @@ -40541,7 +40541,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;97;32;43;32;34;32;43;32;34;32;43;32;98;32;43;32;34;32;61;32;34;32;43;32;115;117;109; -`,Kv=` +`,t9=` 105;110;112;117;116;58;32;105;110;116;32;115;116;97;114;116;32;34;83;116;97;114;116;32;118;97;108;117;101;34; @@ -40564,7 +40564,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;71;111;33;34; -`,e9=` +`,n9=` 105;110;112;117;116;58;32;105;110;116;32;115;116;97;114;116;32;34;83;116;97;114;116;32;118;97;108;117;101;34; @@ -40587,7 +40587,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;71;111;34; -`,t9=` +`,a9=` 105;110;116;91;93;91;93;32;112;111;105;110;116;115;32;61;32;123;123;51;44;32;53;44;32;50;125;44;32;123;52;44;32;49;44;32;54;125;125; @@ -40609,7 +40609,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;108;97;121;101;114;32;50;58;32;34;32;43;32;116;111;116;97;108; -`,n9=` +`,i9=` 105;110;116;91;93;91;93;32;112;111;105;110;116;115;32;61;32;123;123;51;44;32;53;44;32;50;125;44;32;123;52;44;32;49;44;32;54;125;125; @@ -40631,7 +40631,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;108;97;121;101;114;32;50;58;32;34;32;43;32;116;111;116;97;108; -`,a9=` +`,s9=` 105;110;116;91;93;91;93;32;112;111;105;110;116;115;32;61;32;123;123;51;44;32;53;125;44;32;123;52;44;32;49;125;44;32;123;50;44;32;50;125;125; @@ -40660,7 +40660,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;58;32;34;32;43;32;115;117;109; -`,i9=` +`,r9=` 105;110;116;32;115;117;109;32;61;32;48; @@ -40683,7 +40683,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;117;109; -`,s9=` +`,o9=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;85;112;32;116;111;32;119;104;105;99;104;32;110;117;109;98;101;114;63;34; @@ -40705,7 +40705,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;117;109; -`,r9=` +`,l9=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;85;112;32;116;111;32;119;104;105;99;104;32;110;117;109;98;101;114;63;34; @@ -40727,7 +40727,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;117;109; -`,o9=` +`,u9=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;32;34;87;104;105;99;104;32;116;105;109;101;115;32;116;97;98;108;101;63;34; @@ -40759,7 +40759,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,l9=` +`,m9=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;69;110;116;101;114;32;97;32;110;117;109;98;101;114;34; @@ -40781,7 +40781,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;102;97;99;116;111;114;105;97;108; -`,u9=` +`,c9=` 83;116;114;105;110;103;32;108;101;116;116;101;114;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;108;101;116;116;101;114;46;116;120;116;34;41;41; @@ -40813,13 +40813,13 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,m9=` +`,d9=` 83;116;114;105;110;103;32;108;101;116;116;101;114;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;108;101;116;116;101;114;46;116;120;116;34;41;41; -`,c9=` +`,h9=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;102;105;114;115;116;32;34;70;105;114;115;116;32;110;97;109;101;63;34; @@ -40831,7 +40831,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;102;105;114;115;116;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;32;34;32;43;32;108;97;115;116;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;34; -`,d9=` +`,g9=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;102;105;114;115;116;32;34;70;105;114;115;116;32;110;97;109;101;63;34; @@ -40843,7 +40843,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;102;105;114;115;116;46;99;104;97;114;65;116;40;49;41;32;43;32;34;46;32;34;32;43;32;108;97;115;116;46;99;104;97;114;65;116;40;49;41;32;43;32;34;46;34; -`,h9=` +`,p9=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;105;110;112;117;116;32;34;80;97;115;115;119;111;114;100;63;34; @@ -40862,7 +40862,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,g9=` +`,f9=` 105;110;112;117;116;58;32;105;110;116;32;97;103;101;32;34;72;111;119;32;111;108;100;32;97;114;101;32;121;111;117;63;34; @@ -40891,7 +40891,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,p9=` +`,x9=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;98;101;114;32;34;83;116;97;114;116;32;118;97;108;117;101;63;34; @@ -40911,7 +40911,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;69;110;100;34; -`,f9=` +`,b9=` 105;110;116;32;116;114;105;101;115;32;61;32;48; @@ -40944,7 +40944,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;114;105;101;115;58;32;34;32;43;32;116;114;105;101;115; -`,x9=` +`,y9=` 105;110;116;32;116;114;105;101;115;32;61;32;48; @@ -40977,7 +40977,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;114;105;101;115;58;32;34;32;43;32;116;114;105;101;115; -`,b9=` +`,v9=` 105;110;116;32;115;117;109;32;61;32;48; @@ -41019,7 +41019,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;115;117;109; -`,y9=` +`,w9=` 105;110;112;117;116;58;32;105;110;116;32;97;103;101;32;34;72;111;119;32;111;108;100;32;97;114;101;32;121;111;117;63;34; @@ -41041,7 +41041,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,v9=` +`,z9=` 105;110;112;117;116;58;32;105;110;116;32;108;105;109;105;116;32;34;85;112;32;116;111;32;119;104;105;99;104;32;110;117;109;98;101;114;63;34; @@ -41057,7 +41057,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,w9=` +`,I9=` 105;110;116;91;93;32;99;97;114;100;115;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -41096,7 +41096,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;115;105;116;105;111;110;58;32;34;32;43;32;112;111;115;105;116;105;111;110; -`,z9=` +`,k9=` 105;110;116;91;93;32;99;97;114;100;115;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -41135,7 +41135,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;115;105;116;105;111;110;58;32;34;32;43;32;112;111;115;105;116;105;111;110; -`,I9=` +`,S9=` 105;110;116;91;93;32;99;97;114;100;115;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -41170,7 +41170,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;67;111;117;110;116;58;32;34;32;43;32;99;111;117;110;116; -`,k9=` +`,O9=` 111;117;116;112;117;116;58;32;34;71;111;111;100;32;109;111;114;110;105;110;103;34; @@ -41179,13 +41179,13 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;100;97;121;32;119;101;32;108;101;97;114;110;32;115;116;114;117;99;116;117;114;101;32;99;104;97;114;116;115;46;34; -`,S9=` +`,T9=` 111;117;116;112;117;116;58;32;34;72;101;108;108;111;32;87;111;114;108;100;34; -`,O9=` +`,A9=` 111;117;116;112;117;116;58;32;34;72;101;108;108;111;34; @@ -41194,7 +41194,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;73;32;97;109;32;108;101;97;114;110;105;110;103;32;115;116;114;117;99;116;117;114;101;32;99;104;97;114;116;115;34; -`,T9=` +`,P9=` 83;99;97;110;110;101;114;32;102;105;108;101;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;115;104;111;112;112;105;110;103;46;116;120;116;34;41;41; @@ -41235,7 +41235,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;99;111;117;110;116;32;43;32;34;32;108;105;110;101;115;32;115;97;118;101;100;34; -`,A9=` +`,j9=` 83;99;97;110;110;101;114;32;102;105;108;101;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;115;104;111;112;112;105;110;103;46;116;120;116;34;41;41; @@ -41244,7 +41244,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 80;114;105;110;116;87;114;105;116;101;114;32;111;117;116;32;61;32;110;101;119;32;80;114;105;110;116;87;114;105;116;101;114;40;34;115;104;111;112;112;105;110;103;45;110;101;119;46;116;120;116;34;41; -`,P9=` +`,C9=` 83;99;97;110;110;101;114;32;102;105;108;101;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;115;104;111;112;112;105;110;103;46;116;120;116;34;41;41; @@ -41270,13 +41270,13 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 102;105;108;101;46;99;108;111;115;101;40;41; -`,j9=` +`,_9=` 83;99;97;110;110;101;114;32;102;105;108;101;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;115;104;111;112;112;105;110;103;46;116;120;116;34;41;41; -`,C9=` +`,Z9=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;108;111;103;98;111;111;107;46;116;120;116;34;41;41; @@ -41315,7 +41315,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;70;111;120;58;32;34;32;43;32;99;111;117;110;116; -`,_9=` +`,M9=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;108;111;103;98;111;111;107;46;116;120;116;34;41;41; @@ -41324,7 +41324,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;101;32;61;32;114;101;97;100;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,Z9=` +`,D9=` 83;116;114;105;110;103;32;116;101;120;116;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;108;111;103;98;111;111;107;46;116;120;116;34;41;41; @@ -41359,7 +41359,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;76;111;110;103;101;115;116;32;101;110;116;114;121;58;32;34;32;43;32;108;111;110;103;101;115;116; -`,M9=` +`,B9=` 83;116;114;105;110;103;32;116;101;120;116;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;108;111;103;98;111;111;107;46;116;120;116;34;41;41; @@ -41368,7 +41368,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;91;93;32;108;105;110;101;115;32;61;32;116;101;120;116;46;115;112;108;105;116;40;34;92;110;34;41; -`,D9=` +`,W9=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;99;108;97;115;115;46;99;115;118;34;41;41; @@ -41422,7 +41422,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;66;101;115;116;32;103;114;97;100;101;32;105;110;32;69;110;103;108;105;115;104;58;32;34;32;43;32;98;101;115;116;78;97;109;101;32;43;32;34;32;40;34;32;43;32;98;101;115;116;71;114;97;100;101;32;43;32;34;41;34; -`,B9=` +`,L9=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;99;108;97;115;115;46;99;115;118;34;41;41; @@ -41431,7 +41431,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;101;32;61;32;114;101;97;100;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,W9=` +`,E9=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;99;108;97;115;115;46;99;115;118;34;41;41; @@ -41472,7 +41472,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;77;97;116;104;115;32;97;118;101;114;97;103;101;58;32;34;32;43;32;115;117;109;32;47;32;99;111;117;110;116; -`,L9=` +`,N9=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;99;108;97;115;115;46;99;115;118;34;41;41; @@ -41481,7 +41481,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;101;32;61;32;114;101;97;100;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,E9=` +`,F9=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;122;111;111;46;106;115;111;110;34;41;41; @@ -41520,7 +41520,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 114;101;97;100;101;114;46;99;108;111;115;101;40;41; -`,N9=` +`,J9=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;122;111;111;46;106;115;111;110;34;41;41; @@ -41529,7 +41529,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;101;32;61;32;114;101;97;100;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,F9=` +`,G9=` 83;116;114;105;110;103;91;93;32;110;97;109;101;115;32;61;32;123;34;76;117;100;119;105;103;34;44;32;34;90;111;114;97;34;44;32;34;70;111;120;34;125; @@ -41579,7 +41579,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;97;109;101;115;46;108;101;110;103;116;104;32;43;32;34;32;101;110;116;114;105;101;115;32;115;97;118;101;100;34; -`,J9=` +`,R9=` 83;116;114;105;110;103;91;93;32;110;97;109;101;115;32;61;32;123;34;76;117;100;119;105;103;34;44;32;34;90;111;114;97;34;44;32;34;70;111;120;34;125; @@ -41597,7 +41597,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;46;99;108;111;115;101;40;41; -`,G9=` +`,H9=` 83;116;114;105;110;103;32;116;101;120;116;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;97;110;105;109;97;108;115;46;99;115;118;34;41;41; @@ -41650,7 +41650,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;40;108;105;110;101;115;46;108;101;110;103;116;104;32;45;32;49;41;32;43;32;34;32;97;110;105;109;97;108;115;32;115;97;118;101;100;34; -`,R9=` +`,Q9=` 83;116;114;105;110;103;32;116;101;120;116;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;97;110;105;109;97;108;115;46;99;115;118;34;41;41; @@ -41671,7 +41671,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;46;99;108;111;115;101;40;41; -`,H9=` +`,V9=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;97;110;105;109;97;108;115;46;99;115;118;34;41;41; @@ -41715,7 +41715,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;99;111;117;110;116;32;43;32;34;32;115;101;110;116;101;110;99;101;115;32;115;97;118;101;100;34; -`,Q9=` +`,q9=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;114;101;97;100;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;97;110;105;109;97;108;115;46;99;115;118;34;41;41; @@ -41736,7 +41736,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;46;99;108;111;115;101;40;41; -`,V9=` +`,U9=` 105;110;112;117;116;58;32;105;110;116;32;99;111;117;110;116;32;34;72;111;119;32;109;97;110;121;32;116;105;99;107;101;116;115;63;34; @@ -41748,7 +41748,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;116;111;116;97;108; -`,q9=` +`,$9=` 105;110;112;117;116;58;32;105;110;116;32;99;111;117;110;116;32;34;72;111;119;32;109;97;110;121;32;116;105;99;107;101;116;115;63;34; @@ -41760,7 +41760,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 100;111;117;98;108;101;32;116;111;116;97;108;32;61;32;99;111;117;110;116;32;42;32;56;46;53; -`,U9=` +`,Y9=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;70;105;114;115;116;32;110;117;109;98;101;114;34; @@ -41784,7 +41784,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;98; -`,$9=` +`,X9=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;70;105;114;115;116;32;110;117;109;98;101;114;34; @@ -41805,7 +41805,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;98; -`,Y9=` +`,K9=` 105;110;116;32;97;32;61;32;51; @@ -41829,7 +41829,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;98;32;61;32;34;32;43;32;98; -`,X9=` +`,e5=` 105;110;116;91;93;32;99;97;114;100;115;32;61;32;110;101;119;32;105;110;116;91;53;93; @@ -41888,7 +41888,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,K9=` +`,t5=` 105;110;116;91;93;32;99;97;114;100;115;32;61;32;110;101;119;32;105;110;116;91;53;93; @@ -41947,7 +41947,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,e5=` +`,n5=` 105;110;116;91;93;32;99;97;114;100;115;32;61;32;123;50;44;32;51;44;32;53;44;32;55;44;32;56;44;32;49;48;44;32;49;50;44;32;49;51;44;32;49;53;44;32;49;56;44;32;50;48;44;32;50;49;44;32;50;52;44;32;50;55;44;32;51;48;125; @@ -42021,7 +42021,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;67;111;109;112;97;114;105;115;111;110;115;58;32;34;32;43;32;99;111;109;112;97;114;105;115;111;110;115; -`,t5=` +`,a5=` 105;110;116;91;93;32;99;97;114;100;115;32;61;32;123;55;44;32;51;44;32;49;48;44;32;53;44;32;50;125; @@ -42070,7 +42070,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,n5=` +`,i5=` 105;110;116;91;93;32;99;97;114;100;115;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -42119,7 +42119,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,a5=` +`,s5=` 105;110;116;91;93;32;99;97;114;100;115;32;61;32;123;50;44;32;51;44;32;53;44;32;55;44;32;56;44;32;49;48;44;32;49;50;44;32;49;51;44;32;49;53;44;32;49;56;44;32;50;48;44;32;50;49;44;32;50;52;44;32;50;55;44;32;51;48;125; @@ -42177,7 +42177,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;67;111;109;112;97;114;105;115;111;110;115;58;32;34;32;43;32;99;111;109;112;97;114;105;115;111;110;115; -`,i5=` +`,r5=` 105;110;116;91;93;32;112;111;105;110;116;115;32;61;32;123;51;44;32;53;44;32;56;125; @@ -42196,7 +42196,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,s5=` +`,o5=` 105;110;116;91;93;32;112;111;105;110;116;115;32;61;32;123;51;44;32;53;44;32;56;125; @@ -42215,7 +42215,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,r5=` +`,l5=` 105;110;116;32;105;32;61;32;48; @@ -42228,7 +42228,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,o5=` +`,u5=` 105;110;116;32;110;117;109;98;101;114;32;61;32;53; @@ -42252,7 +42252,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;102;116;101;114;58;32;34;32;43;32;114;111;119;91;48;93;32;43;32;34;44;32;34;32;43;32;114;111;119;91;49;93; -`,l5=` +`,m5=` 105;110;116;32;105;32;61;32;48; @@ -42265,7 +42265,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,u5=` +`,c5=` 120;32;61;32;120;32;42;32;50; @@ -42274,7 +42274,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;73;110;32;116;104;101;32;115;117;98;112;114;111;103;114;97;109;58;32;120;32;61;32;34;32;43;32;120; -`,m5=` +`,d5=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;102;105;114;115;116;78;97;109;101;32;34;70;105;114;115;116;32;110;97;109;101;34; @@ -42286,7 +42286,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;102;105;114;115;116;78;97;109;101;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;32;34;32;43;32;108;97;115;116;78;97;109;101;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;34; -`,c5=` +`,h5=` 83;116;114;105;110;103;32;119;111;114;100;32;61;32;34;66;105;108;108;121;103;111;97;116;34; @@ -42325,7 +42325,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;116;101;120;116; -`,d5=` +`,g5=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;119;111;114;100;32;34;69;110;116;101;114;32;97;32;119;111;114;100;34; @@ -42347,7 +42347,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;98;97;99;107;119;97;114;100;115; -`,h5=` +`,p5=` 83;116;114;105;110;103;32;108;105;110;101;32;61;32;34;76;117;100;119;105;103;59;98;105;108;108;121;32;103;111;97;116;59;55;34; @@ -42366,7 +42366,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,g5=` +`,f5=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;115;101;110;116;101;110;99;101;32;34;69;110;116;101;114;32;97;32;115;101;110;116;101;110;99;101;34; @@ -42378,7 +42378,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;87;111;114;100;115;58;32;34;32;43;32;119;111;114;100;115;46;108;101;110;103;116;104; -`,p5=` +`,x5=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;119;111;114;100;32;34;69;110;116;101;114;32;97;32;119;111;114;100;34; @@ -42410,7 +42410,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;78;117;109;98;101;114;32;111;102;32;101;58;32;34;32;43;32;99;111;117;110;116; -`,f5=` +`,b5=` 83;116;114;105;110;103;32;119;111;114;100;32;61;32;34;66;105;108;108;121;103;111;97;116;34; @@ -42434,7 +42434,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;119;111;114;100;46;116;111;85;112;112;101;114;67;97;115;101;40;41; -`,x5=` +`,y5=` 105;110;116;91;93;91;93;32;116;97;98;101;108;108;101;32;61;32;110;101;119;32;105;110;116;91;49;48;93;91;49;48;93; @@ -42466,7 +42466,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;97;32;43;32;34;32;183;32;34;32;43;32;98;32;43;32;34;32;61;32;34;32;43;32;116;97;98;101;108;108;101;91;97;32;45;32;49;93;91;98;32;45;32;49;93; -`,b5=` +`,v5=` 98;111;111;108;101;97;110;91;93;91;93;32;115;105;116;122;101;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -42514,7 +42514,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;70;114;101;105;58;32;34;32;43;32;102;114;101;105; -`,y5=` +`,w5=` 98;111;111;108;101;97;110;91;93;91;93;32;115;105;116;122;101;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -42529,7 +42529,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 115;105;116;122;101;91;50;93;91;51;93;32;61;32;116;114;117;101; -`,v5=` +`,z5=` 98;111;111;108;101;97;110;91;93;91;93;32;115;105;116;122;101;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -42563,7 +42563,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,w5=` +`,I5=` 98;111;111;108;101;97;110;91;93;91;93;32;115;105;116;122;101;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -42581,7 +42581,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 105;110;112;117;116;58;32;105;110;116;32;112;108;97;116;122;32;34;80;108;97;116;122;34; -`,z5=` +`,k5=` 98;111;111;108;101;97;110;91;93;91;93;32;115;105;116;122;101;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -42629,7 +42629,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,I5=` +`,S5=` 98;111;111;108;101;97;110;91;93;91;93;32;115;105;116;122;101;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -42653,7 +42653,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;82;101;105;104;101;32;49;44;32;80;108;97;116;122;32;50;32;118;101;114;107;97;117;102;116;63;32;34;32;43;32;115;105;116;122;101;91;49;93;91;50;93; -`,k5=` +`,O5=` 105;110;116;32;115;101;107;117;110;100;101;110;32;61;32;50;48;48; @@ -42668,7 +42668,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;101;110;32;43;32;34;32;109;105;110;32;34;32;43;32;114;101;115;116;32;43;32;34;32;115;34; -`,S5=` +`,T5=` 105;110;116;32;115;101;107;117;110;100;101;110;32;61;32;50;48;48; @@ -42683,7 +42683,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;101;110;32;43;32;34;32;109;105;110;32;34;32;43;32;114;101;115;116;32;43;32;34;32;115;34; -`,O5=` +`,A5=` 83;116;114;105;110;103;32;110;97;109;101;32;61;32;34;76;117;100;119;105;103;34; @@ -42701,7 +42701,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;71;114;246;223;101;58;32;34;32;43;32;103;114;111;101;115;115;101;32;43;32;34;32;109;34; -`,T5=` +`,P5=` 105;110;116;32;122;97;104;108;32;61;32;51; @@ -42716,7 +42716,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;122;97;104;108; -`,A5=` +`,j5=` 105;110;116;32;122;97;104;108;32;61;32;50; @@ -42731,7 +42731,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;122;97;104;108; -`,P5=` +`,C5=` 111;117;116;112;117;116;58;32;122;97;104;108; @@ -42746,7 +42746,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 122;97;104;108;32;61;32;122;97;104;108;32;43;32;51; -`,j5=` +`,_5=` 83;116;114;105;110;103;32;108;105;110;107;115;32;61;32;34;83;97;102;116;34; @@ -42770,7 +42770,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;82;101;99;104;116;115;58;32;34;32;43;32;114;101;99;104;116;115; -`,C5=` +`,Z5=` 83;116;114;105;110;103;32;108;105;110;107;115;32;61;32;34;83;97;102;116;34; @@ -42785,7 +42785,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;82;101;99;104;116;115;58;32;34;32;43;32;114;101;99;104;116;115; -`,_5=` +`,M5=` 105;110;116;32;97;32;61;32;53; @@ -42809,7 +42809,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;98;32;61;32;34;32;43;32;98; -`,Z5=` +`,D5=` 105;110;116;32;97;108;116;101;114;32;61;32;49;52; @@ -42827,7 +42827,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;71;114;246;223;101;58;32;34;32;43;32;103;114;111;101;115;115;101;32;43;32;34;32;109;34; -`,M5=` +`,B5=` 105;110;116;32;109;105;110;117;116;101;110;32;61;32;49;51;53; @@ -42842,7 +42842,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;116;117;110;100;101;110;32;43;32;34;32;83;116;117;110;100;101;110;32;117;110;100;32;34;32;43;32;114;101;115;116;32;43;32;34;32;77;105;110;117;116;101;110;34; -`,D5=` +`,W5=` 105;110;116;32;97;110;122;97;104;108;32;61;32;51; @@ -42857,7 +42857,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;71;101;115;97;109;116;58;32;34;32;43;32;103;101;115;97;109;116;80;114;101;105;115;32;43;32;34;32;69;117;114;111;34; -`,B5=` +`,L5=` 105;110;116;32;103;117;116;104;97;98;101;110;32;61;32;50;48; @@ -42872,7 +42872,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;220;98;114;105;103;58;32;34;32;43;32;103;117;116;104;97;98;101;110; -`,W5=` +`,E5=` 105;110;116;32;103;117;116;104;97;98;101;110;32;61;32;50;48; @@ -42887,7 +42887,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 103;117;116;104;97;98;101;110;32;61;32;103;117;116;104;97;98;101;110;32;45;32;112;114;101;105;115; -`,L5=` +`,N5=` 105;110;116;32;112;114;101;105;115;32;61;32;57; @@ -42902,7 +42902,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;71;101;115;97;109;116;58;32;34;32;43;32;103;101;115;97;109;116; -`,E5=` +`,F5=` 105;110;116;32;108;97;101;110;103;101;32;61;32;55; @@ -42923,7 +42923,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;85;109;102;97;110;103;58;32;34;32;43;32;117;109;102;97;110;103; -`,N5=` +`,J5=` 105;110;116;32;115;101;107;117;110;100;101;110;32;61;32;50;48;48; @@ -42938,7 +42938,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;101;110;32;43;32;34;32;77;105;110;117;116;101;110;32;117;110;100;32;34;32;43;32;114;101;115;116;32;43;32;34;32;83;101;107;117;110;100;101;110;34; -`,F5=` +`,G5=` 105;110;116;32;115;101;107;117;110;100;101;110;32;61;32;50;48;48; @@ -42947,7 +42947,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;101;110;32;43;32;34;32;77;105;110;117;116;101;110;32;117;110;100;32;34;32;43;32;114;101;115;116;32;43;32;34;32;83;101;107;117;110;100;101;110;34; -`,J5=` +`,R5=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;110;97;109;101;32;34;87;105;101;32;104;101;105;223;116;32;100;117;63;34; @@ -42956,7 +42956,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;72;97;108;108;111;32;34;32;43;32;110;97;109;101;32;43;32;34;33;34; -`,G5=` +`,H5=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;69;114;115;116;101;32;90;97;104;108;63;34; @@ -42971,7 +42971,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;109;101;58;32;34;32;43;32;115;117;109;109;101; -`,R5=` +`,Q5=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;69;114;115;116;101;32;90;97;104;108;63;34; @@ -42983,7 +42983,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;109;101;58;32;34;32;43;32;40;97;32;43;32;98;41; -`,H5=` +`,V5=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;69;114;115;116;101;32;90;97;104;108;63;34; @@ -42995,7 +42995,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;109;101;58;32;34;32;43;32;97;32;43;32;98; -`,Q5=` +`,q5=` 105;110;112;117;116;58;32;105;110;116;32;106;97;104;114;101;32;34;87;105;101;32;97;108;116;32;98;105;115;116;32;100;117;63;34; @@ -43007,7 +43007,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;68;97;115;32;115;105;110;100;32;101;116;119;97;32;34;32;43;32;116;97;103;101;32;43;32;34;32;84;97;103;101;46;34; -`,V5=` +`,U5=` 105;110;112;117;116;58;32;100;111;117;98;108;101;32;120;32;34;69;114;115;116;101;32;90;97;104;108;63;34; @@ -43022,7 +43022,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;77;105;116;116;101;108;119;101;114;116;58;32;34;32;43;32;109;105;116;116;101;108; -`,q5=` +`,$5=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;69;114;115;116;101;32;90;97;104;108;63;34; @@ -43043,7 +43043,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;114;111;100;117;107;116;58;32;34;32;43;32;112;114;111;100;117;107;116; -`,U5=` +`,Y5=` 105;110;112;117;116;58;32;105;110;116;32;97;108;116;101;114;32;34;87;105;101;32;97;108;116;32;98;105;115;116;32;100;117;63;34; @@ -43062,7 +43062,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,$5=` +`,X5=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;90;97;104;108;63;34; @@ -43084,7 +43084,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;122;97;104;108; -`,Y5=` +`,K5=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;90;97;104;108;63;34; @@ -43103,7 +43103,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,X5=` +`,ew=` 105;110;116;32;112;117;110;107;116;101;32;61;32;48; @@ -43121,7 +43121,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;117;110;107;116;101;58;32;34;32;43;32;112;117;110;107;116;101; -`,K5=` +`,tw=` 105;110;116;32;112;117;110;107;116;101;32;61;32;48; @@ -43139,7 +43139,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;117;110;107;116;101;58;32;34;32;43;32;112;117;110;107;116;101; -`,ew=` +`,nw=` 105;110;116;32;112;114;101;105;115;32;61;32;56; @@ -43157,7 +43157,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;71;101;115;97;109;116;58;32;34;32;43;32;103;101;115;97;109;116; -`,tw=` +`,aw=` 105;110;116;32;112;114;101;105;115;32;61;32;56; @@ -43175,7 +43175,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;71;101;115;97;109;116;58;32;34;32;43;32;103;101;115;97;109;116; -`,nw=` +`,iw=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;69;114;115;116;101;32;90;97;104;108;63;34; @@ -43197,7 +43197,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,aw=` +`,sw=` 105;110;112;117;116;58;32;100;111;117;98;108;101;32;112;114;101;105;115;32;34;80;114;101;105;115;32;105;110;32;69;117;114;111;63;34; @@ -43219,7 +43219,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;90;117;32;122;97;104;108;101;110;58;32;34;32;43;32;112;114;101;105;115;32;43;32;34;32;69;117;114;111;34; -`,iw=` +`,rw=` 105;110;112;117;116;58;32;105;110;116;32;110;111;116;101;32;34;78;111;116;101;63;34; @@ -43238,7 +43238,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,sw=` +`,ow=` 105;110;112;117;116;58;32;105;110;116;32;112;117;110;107;116;101;32;34;87;105;101;32;118;105;101;108;101;32;80;117;110;107;116;101;63;34; @@ -43257,7 +43257,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,rw=` +`,lw=` 105;110;112;117;116;58;32;105;110;116;32;97;108;116;101;114;32;34;87;105;101;32;97;108;116;32;98;105;115;116;32;100;117;63;34; @@ -43276,7 +43276,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,ow=` +`,uw=` 105;110;112;117;116;58;32;105;110;116;32;97;108;116;101;114;32;34;87;105;101;32;97;108;116;32;98;105;115;116;32;100;117;63;34; @@ -43295,7 +43295,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,lw=` +`,mw=` 105;110;112;117;116;58;32;105;110;116;32;97;108;116;101;114;32;34;87;105;101;32;97;108;116;32;98;105;115;116;32;100;117;63;34; @@ -43314,7 +43314,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,uw=` +`,cw=` 105;110;112;117;116;58;32;105;110;116;32;110;111;116;101;32;34;78;111;116;101;63;34; @@ -43333,7 +43333,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,mw=` +`,dw=` 105;110;112;117;116;58;32;105;110;116;32;106;97;104;114;32;34;74;97;104;114;63;34; @@ -43352,7 +43352,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,cw=` +`,hw=` 105;110;112;117;116;58;32;105;110;116;32;116;97;103;32;34;84;97;103;32;40;49;32;98;105;115;32;55;41;63;34; @@ -43371,7 +43371,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,dw=` +`,gw=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;102;97;114;98;101;32;34;87;101;108;99;104;101;32;70;97;114;98;101;32;104;97;116;32;100;105;101;32;65;109;112;101;108;63;34; @@ -43400,7 +43400,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,hw=` +`,pw=` 105;110;112;117;116;58;32;105;110;116;32;119;97;104;108;32;34;49;32;87;97;115;115;101;114;44;32;50;32;83;97;102;116;44;32;51;32;75;97;107;97;111;34; @@ -43429,7 +43429,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,gw=` +`,fw=` 105;110;112;117;116;58;32;105;110;116;32;116;97;103;32;34;87;101;108;99;104;101;114;32;84;97;103;32;40;49;32;98;105;115;32;55;41;63;34; @@ -43448,7 +43448,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,pw=` +`,xw=` 105;110;112;117;116;58;32;105;110;116;32;116;97;103;32;34;87;101;108;99;104;101;114;32;84;97;103;32;40;49;32;98;105;115;32;55;41;63;34; @@ -43467,7 +43467,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,fw=` +`,bw=` 105;110;112;117;116;58;32;105;110;116;32;115;116;117;110;100;101;32;34;87;105;101;32;115;112;228;116;32;105;115;116;32;101;115;32;40;110;117;114;32;100;105;101;32;83;116;117;110;100;101;41;63;34; @@ -43486,7 +43486,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,xw=` +`,yw=` 105;110;112;117;116;58;32;105;110;116;32;110;111;116;101;32;34;87;101;108;99;104;101;32;78;111;116;101;63;34; @@ -43530,7 +43530,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,bw=` +`,vw=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;69;114;115;116;101;32;90;97;104;108;34; @@ -43577,7 +43577,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,yw=` +`,ww=` 105;110;112;117;116;58;32;105;110;116;32;119;97;104;108;32;34;49;32;87;97;115;115;101;114;44;32;50;32;83;97;102;116;44;32;51;32;75;97;107;97;111;34; @@ -43616,7 +43616,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,vw=` +`,zw=` 84;97;115;115;101;32;97;117;102;32;100;101;110;32;84;105;115;99;104;32;115;116;101;108;108;101;110; @@ -43646,7 +43646,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 84;101;101;32;116;114;105;110;107;101;110; -`,ww=` +`,Iw=` 65;117;102;115;116;101;104;101;110; @@ -43661,7 +43661,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 70;114;252;104;115;116;252;99;107;101;110; -`,zw=` +`,kw=` 87;97;115;115;101;114;32;105;110;32;100;101;110;32;87;97;115;115;101;114;107;111;99;104;101;114;32;102;252;108;108;101;110; @@ -43682,7 +43682,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 84;101;101;98;101;117;116;101;108;32;104;101;114;97;117;115;110;101;104;109;101;110; -`,Iw=` +`,Sw=` 82;101;103;110;101;116;32;101;115;63; @@ -43701,7 +43701,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 76;111;115;103;101;104;101;110; -`,kw=` +`,Ow=` 84;101;108;108;101;114;32;110;105;99;104;116;32;108;101;101;114; @@ -43715,7 +43715,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 84;101;108;108;101;114;32;97;98;114;228;117;109;101;110; -`,Sw=` +`,Tw=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;66;105;115;32;119;111;104;105;110;32;122;228;104;108;101;110;63;34; @@ -43735,7 +43735,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Ow=` +`,Aw=` 105;110;116;32;122;97;104;108;32;61;32;51; @@ -43755,7 +43755,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;116;97;114;116;33;34; -`,Tw=` +`,Pw=` 105;110;116;32;122;97;104;108;32;61;32;51; @@ -43772,7 +43772,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;116;97;114;116;33;34; -`,Aw=` +`,jw=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;70;97;107;117;108;116;228;116;32;118;111;110;32;119;101;108;99;104;101;114;32;90;97;104;108;63;34; @@ -43798,7 +43798,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;32;43;32;34;33;32;61;32;34;32;43;32;102;97;107;117;108;116;97;101;116; -`,Pw=` +`,Cw=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;69;114;115;116;101;32;90;97;104;108;63;34; @@ -43833,7 +43833,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,jw=` +`,_w=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;69;114;115;116;101;32;90;97;104;108;63;34; @@ -43868,7 +43868,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Cw=` +`,Zw=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;87;101;108;99;104;101;32;90;97;104;108;63;34; @@ -43897,7 +43897,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,_w=` +`,Mw=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;83;116;97;114;116;122;97;104;108;34; @@ -43920,7 +43920,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;99;104;114;105;116;116;101; -`,Zw=` +`,Dw=` 105;110;116;32;122;97;104;108;32;61;32;48; @@ -43937,7 +43937,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;68;97;110;107;101;33;34; -`,Mw=` +`,Bw=` 105;110;116;32;105;32;61;32;49;48; @@ -43954,7 +43954,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Dw=` +`,Ww=` 105;110;112;117;116;58;32;105;110;116;32;122;105;101;108;32;34;83;112;97;114;122;105;101;108;63;34; @@ -43980,7 +43980,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;87;111;99;104;101;110;58;32;34;32;43;32;119;111;99;104;101;110; -`,Bw=` +`,Lw=` 105;110;112;117;116;58;32;105;110;116;32;122;105;101;108;32;34;83;112;97;114;122;105;101;108;63;34; @@ -44006,7 +44006,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;87;111;99;104;101;110;58;32;34;32;43;32;119;111;99;104;101;110; -`,Ww=` +`,Ew=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;66;105;115;32;119;111;104;105;110;63;34; @@ -44026,7 +44026,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Lw=` +`,Nw=` 105;110;116;32;110;111;116;101;32;61;32;48; @@ -44043,7 +44043,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;68;101;105;110;101;32;78;111;116;101;58;32;34;32;43;32;110;111;116;101; -`,Ew=` +`,Fw=` 105;110;116;32;115;117;109;109;101;32;61;32;48; @@ -44066,7 +44066,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;117;109;109;101; -`,Nw=` +`,Jw=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;83;116;97;114;116;122;97;104;108;34; @@ -44085,7 +44085,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;76;111;115;33;34; -`,Fw=` +`,Gw=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;87;101;108;99;104;101;32;82;101;105;104;101;63;34; @@ -44104,7 +44104,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Jw=` +`,Rw=` 105;110;116;32;105;32;61;32;49; @@ -44117,7 +44117,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Gw=` +`,Hw=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;83;116;97;114;116;122;97;104;108;63;34; @@ -44134,7 +44134,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Rw=` +`,Qw=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;83;116;97;114;116;122;97;104;108;63;34; @@ -44151,7 +44151,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Hw=` +`,Vw=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;83;116;97;114;116;122;97;104;108;63;34; @@ -44168,7 +44168,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Qw=` +`,qw=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;66;105;115;32;122;117;32;119;101;108;99;104;101;114;32;90;97;104;108;63;34; @@ -44190,7 +44190,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;117;109;109;101; -`,Vw=` +`,Uw=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;87;105;101;32;118;105;101;108;101;32;90;101;105;108;101;110;63;34; @@ -44219,7 +44219,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,qw=` +`,$w=` 105;110;116;32;97;110;122;97;104;108;32;61;32;48; @@ -44251,7 +44251,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;97;110;122;97;104;108; -`,Uw=` +`,Yw=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;66;105;115;32;122;117;32;119;101;108;99;104;101;114;32;90;97;104;108;63;34; @@ -44283,7 +44283,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;97;110;122;97;104;108; -`,$w=` +`,Xw=` 105;110;112;117;116;58;32;105;110;116;32;114;101;105;104;101;32;34;87;101;108;99;104;101;32;82;101;105;104;101;63;34; @@ -44299,7 +44299,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Yw=` +`,Kw=` 105;110;112;117;116;58;32;105;110;116;32;114;101;105;104;101;32;34;87;101;108;99;104;101;32;82;101;105;104;101;63;34; @@ -44315,7 +44315,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Xw=` +`,ez=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;66;105;115;32;122;117;32;119;101;108;99;104;101;114;32;90;97;104;108;63;34; @@ -44331,7 +44331,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Kw=` +`,tz=` 105;110;112;117;116;58;32;105;110;116;32;98;114;101;105;116;101;32;34;66;114;101;105;116;101;34; @@ -44363,7 +44363,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,ez=` +`,nz=` 105;110;116;91;93;32;122;97;104;108;101;110;32;61;32;123;50;44;32;52;44;32;54;44;32;56;44;32;49;48;125; @@ -44379,7 +44379,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,tz=` +`,az=` 105;110;116;91;93;32;119;101;114;116;101;32;61;32;123;52;44;32;56;44;32;49;53;44;32;49;54;44;32;50;51;44;32;52;50;125; @@ -44394,7 +44394,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;119;101;114;116;101;46;108;101;110;103;116;104; -`,nz=` +`,iz=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;66;105;115;32;122;117;32;119;101;108;99;104;101;114;32;90;97;104;108;63;34; @@ -44426,7 +44426,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;110;122;97;104;108;58;32;34;32;43;32;97;110;122;97;104;108; -`,az=` +`,sz=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;66;105;115;32;122;117;32;119;101;108;99;104;101;114;32;90;97;104;108;63;34; @@ -44458,7 +44458,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,iz=` +`,rz=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;87;105;101;32;118;105;101;108;101;32;83;116;117;102;101;110;63;34; @@ -44487,7 +44487,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,sz=` +`,oz=` 83;116;114;105;110;103;91;93;32;110;97;109;101;110;32;61;32;110;101;119;32;83;116;114;105;110;103;91;51;93; @@ -44506,7 +44506,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;69;114;115;116;101;114;32;78;97;109;101;58;32;34;32;43;32;110;97;109;101;110;91;48;93; -`,rz=` +`,lz=` 105;110;116;91;93;32;122;97;104;108;101;110;32;61;32;110;101;119;32;105;110;116;91;52;93; @@ -44532,7 +44532,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,oz=` +`,uz=` 105;110;116;91;93;32;122;97;104;108;101;110;32;61;32;110;101;119;32;105;110;116;91;53;93; @@ -44583,7 +44583,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;77;97;120;105;109;117;109;58;32;34;32;43;32;109;97;120; -`,lz=` +`,mz=` 105;110;116;91;93;32;112;117;110;107;116;101;32;61;32;123;49;50;44;32;55;44;32;49;57;44;32;52;125; @@ -44624,7 +44624,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;77;97;120;105;109;117;109;58;32;34;32;43;32;109;97;120; -`,uz=` +`,cz=` 105;110;116;32;115;117;109;109;101;32;61;32;48; @@ -44647,7 +44647,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;109;101;58;32;34;32;43;32;115;117;109;109;101; -`,mz=` +`,dz=` 105;110;116;32;115;117;109;109;101;32;61;32;48; @@ -44677,7 +44677,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;109;101;58;32;34;32;43;32;115;117;109;109;101; -`,cz=` +`,hz=` 105;110;112;117;116;58;32;105;110;116;32;108;97;101;110;103;101;32;34;76;228;110;103;101;63;34; @@ -44692,13 +44692,13 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;70;108;228;99;104;101;58;32;34;32;43;32;102; -`,dz=` +`,gz=` 114;101;116;117;114;110;32;97;32;42;32;98; -`,hz=` +`,pz=` 122;101;105;103;101;66;101;103;114;117;101;115;115;117;110;103;40;41; @@ -44710,7 +44710,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 122;101;105;103;101;69;114;103;101;98;110;105;115;40;41; -`,gz=` +`,fz=` 105;110;116;91;93;32;116;101;109;112;101;114;97;116;117;114;101;110;32;61;32;123;45;53;44;32;45;50;44;32;45;56;44;32;45;51;125; @@ -44742,7 +44742,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;72;246;99;104;115;116;101;32;84;101;109;112;101;114;97;116;117;114;58;32;34;32;43;32;109;97;120; -`,pz=` +`,xz=` 105;110;116;91;93;32;116;101;109;112;101;114;97;116;117;114;101;110;32;61;32;123;45;53;44;32;45;50;44;32;45;56;44;32;45;51;125; @@ -44774,7 +44774,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;72;246;99;104;115;116;101;32;84;101;109;112;101;114;97;116;117;114;58;32;34;32;43;32;109;97;120; -`,fz=` +`,bz=` 105;110;116;91;93;32;110;111;116;101;110;32;61;32;123;50;44;32;51;44;32;49;44;32;52;125; @@ -44796,7 +44796,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;109;101;58;32;34;32;43;32;115;117;109;109;101; -`,xz=` +`,yz=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;87;101;108;99;104;101;32;90;97;104;108;63;34; @@ -44808,7 +44808,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;68;97;115;32;81;117;97;100;114;97;116;32;105;115;116;32;34;32;43;32;113; -`,bz=` +`,vz=` 105;110;116;32;101;114;103;101;98;110;105;115;32;61;32;120;32;42;32;120; @@ -44817,7 +44817,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 114;101;116;117;114;110;32;101;114;103;101;98;110;105;115; -`,yz=` +`,wz=` 122;101;105;103;101;84;105;116;101;108;40;41; @@ -44829,7 +44829,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;72;97;108;108;111;32;34;32;43;32;110;97;109;101; -`,vz=` +`,zz=` 111;117;116;112;117;116;58;32;34;87;105;108;108;107;111;109;109;101;110;32;122;117;109;32;81;117;105;122;33;34; @@ -44838,7 +44838,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;68;117;32;98;101;107;111;109;109;115;116;32;100;114;101;105;32;70;114;97;103;101;110;46;34; -`,wz=` +`,Iz=` 122;101;105;103;101;83;117;109;109;101;40;51;44;32;52;41; @@ -44850,7 +44850,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 122;101;105;103;101;83;117;109;109;101;40;120;44;32;120;32;43;32;49;41; -`,zz=` +`,kz=` 105;110;116;32;115;117;109;109;101;32;61;32;97;32;43;32;98; @@ -44859,7 +44859,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;97;32;43;32;34;32;43;32;34;32;43;32;98;32;43;32;34;32;61;32;34;32;43;32;115;117;109;109;101; -`,Iz=` +`,Sz=` 105;110;112;117;116;58;32;105;110;116;32;115;116;97;114;116;32;34;83;116;97;114;116;119;101;114;116;34; @@ -44882,7 +44882,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;76;111;115;33;34; -`,kz=` +`,Oz=` 105;110;112;117;116;58;32;105;110;116;32;115;116;97;114;116;32;34;83;116;97;114;116;119;101;114;116;34; @@ -44905,7 +44905,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;76;111;115;34; -`,Sz=` +`,Tz=` 105;110;116;91;93;91;93;32;112;117;110;107;116;101;32;61;32;123;123;51;44;32;53;44;32;50;125;44;32;123;52;44;32;49;44;32;54;125;125; @@ -44927,7 +44927,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;112;105;101;108;101;114;32;50;58;32;34;32;43;32;115;117;109;109;101; -`,Oz=` +`,Az=` 105;110;116;91;93;91;93;32;112;117;110;107;116;101;32;61;32;123;123;51;44;32;53;44;32;50;125;44;32;123;52;44;32;49;44;32;54;125;125; @@ -44949,7 +44949,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;112;105;101;108;101;114;32;50;58;32;34;32;43;32;115;117;109;109;101; -`,Tz=` +`,Pz=` 105;110;116;91;93;91;93;32;112;117;110;107;116;101;32;61;32;123;123;51;44;32;53;125;44;32;123;52;44;32;49;125;44;32;123;50;44;32;50;125;125; @@ -44978,7 +44978,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;117;109;109;101;58;32;34;32;43;32;115;117;109;109;101; -`,Az=` +`,jz=` 105;110;116;32;115;117;109;109;101;32;61;32;48; @@ -45001,7 +45001,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;117;109;109;101; -`,Pz=` +`,Cz=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;66;105;115;32;119;111;104;105;110;63;34; @@ -45023,7 +45023,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;117;109;109;101; -`,jz=` +`,_z=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;66;105;115;32;119;111;104;105;110;63;34; @@ -45045,7 +45045,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;117;109;109;101; -`,Cz=` +`,Zz=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;87;101;108;99;104;101;32;82;101;105;104;101;63;34; @@ -45077,7 +45077,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,_z=` +`,Mz=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;90;97;104;108;32;101;105;110;103;101;98;101;110;34; @@ -45099,7 +45099,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;102;97;107;117;108;116;97;101;116; -`,Zz=` +`,Dz=` 83;116;114;105;110;103;32;98;114;105;101;102;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;98;114;105;101;102;46;116;120;116;34;41;41; @@ -45131,13 +45131,13 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Mz=` +`,Bz=` 83;116;114;105;110;103;32;98;114;105;101;102;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;98;114;105;101;102;46;116;120;116;34;41;41; -`,Dz=` +`,Wz=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;118;111;114;110;97;109;101;32;34;86;111;114;110;97;109;101;63;34; @@ -45149,7 +45149,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;118;111;114;110;97;109;101;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;32;34;32;43;32;110;97;99;104;110;97;109;101;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;34; -`,Bz=` +`,Lz=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;118;111;114;110;97;109;101;32;34;86;111;114;110;97;109;101;63;34; @@ -45161,7 +45161,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;118;111;114;110;97;109;101;46;99;104;97;114;65;116;40;49;41;32;43;32;34;46;32;34;32;43;32;110;97;99;104;110;97;109;101;46;99;104;97;114;65;116;40;49;41;32;43;32;34;46;34; -`,Wz=` +`,Ez=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;101;105;110;103;97;98;101;32;34;80;97;115;115;119;111;114;116;63;34; @@ -45180,7 +45180,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Lz=` +`,Nz=` 105;110;112;117;116;58;32;105;110;116;32;97;108;116;101;114;32;34;87;105;101;32;97;108;116;32;98;105;115;116;32;100;117;63;34; @@ -45209,7 +45209,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Ez=` +`,Fz=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;83;116;97;114;116;119;101;114;116;63;34; @@ -45229,7 +45229,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;69;110;100;101;34; -`,Nz=` +`,Jz=` 105;110;116;32;118;101;114;115;117;99;104;101;32;61;32;48; @@ -45262,7 +45262,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;86;101;114;115;117;99;104;101;58;32;34;32;43;32;118;101;114;115;117;99;104;101; -`,Fz=` +`,Gz=` 105;110;116;32;118;101;114;115;117;99;104;101;32;61;32;48; @@ -45295,7 +45295,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;86;101;114;115;117;99;104;101;58;32;34;32;43;32;118;101;114;115;117;99;104;101; -`,Jz=` +`,Rz=` 105;110;116;32;115;117;109;109;101;32;61;32;48; @@ -45337,7 +45337,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;71;101;115;97;109;116;58;32;34;32;43;32;115;117;109;109;101; -`,Gz=` +`,Hz=` 105;110;112;117;116;58;32;105;110;116;32;97;108;116;101;114;32;34;87;105;101;32;97;108;116;32;98;105;115;116;32;100;117;63;34; @@ -45359,7 +45359,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Rz=` +`,Qz=` 105;110;112;117;116;58;32;105;110;116;32;103;114;101;110;122;101;32;34;66;105;115;32;119;111;104;105;110;63;34; @@ -45375,7 +45375,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Hz=` +`,Vz=` 105;110;116;91;93;32;107;97;114;116;101;110;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -45414,7 +45414,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;115;105;116;105;111;110;58;32;34;32;43;32;112;111;115;105;116;105;111;110; -`,Qz=` +`,qz=` 105;110;116;91;93;32;107;97;114;116;101;110;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -45453,7 +45453,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;115;105;116;105;111;110;58;32;34;32;43;32;112;111;115;105;116;105;111;110; -`,Vz=` +`,Uz=` 105;110;116;91;93;32;107;97;114;116;101;110;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -45488,7 +45488,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;110;122;97;104;108;58;32;34;32;43;32;97;110;122;97;104;108; -`,qz=` +`,$z=` 111;117;116;112;117;116;58;32;34;71;117;116;101;110;32;77;111;114;103;101;110;34; @@ -45497,13 +45497,13 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;72;101;117;116;101;32;108;101;114;110;101;110;32;119;105;114;32;83;116;114;117;107;116;111;103;114;97;109;109;101;46;34; -`,Uz=` +`,Yz=` 111;117;116;112;117;116;58;32;34;72;97;108;108;111;32;87;101;108;116;34; -`,$z=` +`,Xz=` 111;117;116;112;117;116;58;32;34;72;97;108;108;111;34; @@ -45512,7 +45512,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;73;99;104;32;108;101;114;110;101;32;83;116;114;117;107;116;111;103;114;97;109;109;101;34; -`,Yz=` +`,Kz=` 105;110;112;117;116;58;32;105;110;116;32;122;97;104;108;32;34;83;116;97;114;116;122;97;104;108;63;34; @@ -45532,7 +45532,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;116;97;114;116;33;34; -`,Xz=` +`,e6=` 83;99;97;110;110;101;114;32;100;97;116;101;105;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;101;105;110;107;97;117;102;46;116;120;116;34;41;41; @@ -45573,7 +45573,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;97;110;122;97;104;108;32;43;32;34;32;90;101;105;108;101;110;32;103;101;115;112;101;105;99;104;101;114;116;34; -`,Kz=` +`,t6=` 83;99;97;110;110;101;114;32;100;97;116;101;105;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;101;105;110;107;97;117;102;46;116;120;116;34;41;41; @@ -45582,7 +45582,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 80;114;105;110;116;87;114;105;116;101;114;32;97;117;115;32;61;32;110;101;119;32;80;114;105;110;116;87;114;105;116;101;114;40;34;101;105;110;107;97;117;102;45;110;101;117;46;116;120;116;34;41; -`,e6=` +`,n6=` 83;99;97;110;110;101;114;32;100;97;116;101;105;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;101;105;110;107;97;117;102;46;116;120;116;34;41;41; @@ -45608,13 +45608,13 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 100;97;116;101;105;46;99;108;111;115;101;40;41; -`,t6=` +`,a6=` 83;99;97;110;110;101;114;32;100;97;116;101;105;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;101;105;110;107;97;117;102;46;116;120;116;34;41;41; -`,n6=` +`,i6=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;108;111;103;98;117;99;104;46;116;120;116;34;41;41; @@ -45653,7 +45653,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;70;117;99;104;115;58;32;34;32;43;32;97;110;122;97;104;108; -`,a6=` +`,s6=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;108;111;103;98;117;99;104;46;116;120;116;34;41;41; @@ -45662,7 +45662,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;122;101;105;108;101;32;61;32;108;101;115;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,i6=` +`,r6=` 83;116;114;105;110;103;32;116;101;120;116;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;108;111;103;98;117;99;104;46;116;120;116;34;41;41; @@ -45697,7 +45697,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;76;228;110;103;115;116;101;114;32;69;105;110;116;114;97;103;58;32;34;32;43;32;108;97;101;110;103;115;116;101;114; -`,s6=` +`,o6=` 83;116;114;105;110;103;32;116;101;120;116;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;108;111;103;98;117;99;104;46;116;120;116;34;41;41; @@ -45706,7 +45706,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;91;93;32;122;101;105;108;101;110;32;61;32;116;101;120;116;46;115;112;108;105;116;40;34;92;110;34;41; -`,r6=` +`,l6=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;107;108;97;115;115;101;46;99;115;118;34;41;41; @@ -45760,7 +45760,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;66;101;115;116;101;32;78;111;116;101;32;105;110;32;69;110;103;108;105;115;99;104;58;32;34;32;43;32;98;101;115;116;101;114;78;97;109;101;32;43;32;34;32;40;34;32;43;32;98;101;115;116;101;78;111;116;101;32;43;32;34;41;34; -`,o6=` +`,u6=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;107;108;97;115;115;101;46;99;115;118;34;41;41; @@ -45769,7 +45769,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;122;101;105;108;101;32;61;32;108;101;115;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,l6=` +`,m6=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;107;108;97;115;115;101;46;99;115;118;34;41;41; @@ -45810,7 +45810,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;99;104;110;105;116;116;32;77;97;116;104;101;58;32;34;32;43;32;115;117;109;109;101;32;47;32;97;110;122;97;104;108; -`,u6=` +`,c6=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;107;108;97;115;115;101;46;99;115;118;34;41;41; @@ -45819,7 +45819,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;122;101;105;108;101;32;61;32;108;101;115;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,m6=` +`,d6=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;122;111;111;46;106;115;111;110;34;41;41; @@ -45858,7 +45858,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 108;101;115;101;114;46;99;108;111;115;101;40;41; -`,c6=` +`,h6=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;122;111;111;46;106;115;111;110;34;41;41; @@ -45867,7 +45867,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;122;101;105;108;101;32;61;32;108;101;115;101;114;46;114;101;97;100;76;105;110;101;40;41; -`,d6=` +`,g6=` 83;116;114;105;110;103;91;93;32;110;97;109;101;110;32;61;32;123;34;76;117;100;119;105;103;34;44;32;34;90;111;114;97;34;44;32;34;70;117;99;104;115;34;125; @@ -45917,7 +45917,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;97;109;101;110;46;108;101;110;103;116;104;32;43;32;34;32;69;105;110;116;114;228;103;101;32;103;101;115;112;101;105;99;104;101;114;116;34; -`,h6=` +`,p6=` 83;116;114;105;110;103;91;93;32;110;97;109;101;110;32;61;32;123;34;76;117;100;119;105;103;34;44;32;34;90;111;114;97;34;44;32;34;70;117;99;104;115;34;125; @@ -45935,7 +45935,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 97;117;115;46;99;108;111;115;101;40;41; -`,g6=` +`,f6=` 83;116;114;105;110;103;32;116;101;120;116;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;116;105;101;114;101;46;99;115;118;34;41;41; @@ -45988,7 +45988,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;40;122;101;105;108;101;110;46;108;101;110;103;116;104;32;45;32;49;41;32;43;32;34;32;84;105;101;114;101;32;103;101;115;112;101;105;99;104;101;114;116;34; -`,p6=` +`,x6=` 83;116;114;105;110;103;32;116;101;120;116;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;116;105;101;114;101;46;99;115;118;34;41;41; @@ -46009,7 +46009,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 97;117;115;46;99;108;111;115;101;40;41; -`,f6=` +`,b6=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;116;105;101;114;101;46;99;115;118;34;41;41; @@ -46053,7 +46053,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;97;110;122;97;104;108;32;43;32;34;32;83;228;116;122;101;32;103;101;115;112;101;105;99;104;101;114;116;34; -`,x6=` +`,y6=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;115;101;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;116;105;101;114;101;46;99;115;118;34;41;41; @@ -46074,7 +46074,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 97;117;115;46;99;108;111;115;101;40;41; -`,b6=` +`,v6=` 111;117;116;112;117;116;58;32;34;66;101;109;45;118;105;110;100;111;34; @@ -46086,7 +46086,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;100;101;117;115;34; -`,y6=` +`,w6=` 105;110;112;117;116;58;32;105;110;116;32;105;100;97;100;101;32;34;81;117;97;110;116;111;115;32;97;110;111;115;32;116;101;110;115;63;34; @@ -46105,7 +46105,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,v6=` +`,z6=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;108;97;110;99;97;109;101;110;116;111;46;99;115;118;34;41;41; @@ -46186,7 +46186,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 115;97;105;100;97;46;99;108;111;115;101;40;41; -`,w6=` +`,I6=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;108;97;110;99;97;109;101;110;116;111;46;99;115;118;34;41;41; @@ -46195,7 +46195,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;104;97;32;61;32;108;101;105;116;111;114;46;114;101;97;100;76;105;110;101;40;41; -`,z6=` +`,k6=` 105;110;116;91;93;32;112;111;110;116;111;115;32;61;32;110;101;119;32;105;110;116;91;53;93; @@ -46260,7 +46260,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,I6=` +`,S6=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;73;110;116;114;111;100;117;122;32;117;109;32;110;250;109;101;114;111;32;105;110;116;101;105;114;111;34; @@ -46286,7 +46286,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;98;105;110;97;114;105;111; -`,k6=` +`,O6=` 99;104;97;114;91;93;32;97;108;102;97;98;101;116;111;32;61;32;123;39;65;39;44;32;39;66;39;44;32;39;67;39;44;32;39;68;39;44;32;39;69;39;44;32;39;70;39;44;32;39;71;39;44;32;39;72;39;44;32;39;73;39;44;32;39;74;39;44;32;39;75;39;44;32;39;76;39;44;32;39;77;39;44;32;39;78;39;44;32;39;79;39;44;32;39;80;39;44;32;39;81;39;44;32;39;82;39;44;32;39;83;39;44;32;39;84;39;44;32;39;85;39;44;32;39;86;39;44;32;39;87;39;44;32;39;88;39;44;32;39;89;39;44;32;39;90;39;125; @@ -46340,13 +46340,13 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;101;103;114;101;100;111; -`,S6=` +`,T6=` 99;104;97;114;91;93;32;97;108;102;97;98;101;116;111;32;61;32;123;39;65;39;44;32;39;66;39;44;32;39;67;39;44;32;39;68;39;44;32;39;69;39;44;32;39;70;39;44;32;39;71;39;44;32;39;72;39;44;32;39;73;39;44;32;39;74;39;44;32;39;75;39;44;32;39;76;39;44;32;39;77;39;44;32;39;78;39;44;32;39;79;39;44;32;39;80;39;44;32;39;81;39;44;32;39;82;39;44;32;39;83;39;44;32;39;84;39;44;32;39;85;39;44;32;39;86;39;44;32;39;87;39;44;32;39;88;39;44;32;39;89;39;44;32;39;90;39;125; -`,O6=` +`,A6=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;112;97;108;97;118;114;97;32;34;81;117;101;32;112;97;108;97;118;114;97;32;40;115;243;32;109;97;105;250;115;99;117;108;97;115;41;63;34; @@ -46377,7 +46377,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;101;103;114;101;100;111; -`,T6=` +`,P6=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;115;101;103;114;101;100;111;32;34;81;117;97;108;32;233;32;111;32;116;101;120;116;111;32;99;105;102;114;97;100;111;63;34; @@ -46408,7 +46408,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;116;101;120;116;111; -`,A6=` +`,j6=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;73;110;116;114;111;100;117;122;32;117;109;32;110;250;109;101;114;111;32;105;110;105;99;105;97;108;34; @@ -46444,7 +46444,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;97;115;115;111;115;58;32;34;32;43;32;112;97;115;115;111;115; -`,P6=` +`,C6=` 105;110;112;117;116;58;32;105;110;116;32;113;117;97;110;116;105;100;97;100;101;32;34;81;117;97;110;116;97;115;32;110;111;116;97;115;63;34; @@ -46472,7 +46472,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;109;101;100;105;97; -`,j6=` +`,_6=` 105;110;112;117;116;58;32;105;110;116;32;113;117;97;110;116;105;100;97;100;101;32;34;81;117;97;110;116;111;115;32;110;250;109;101;114;111;115;63;34; @@ -46509,7 +46509,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,C6=` +`,Z6=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;73;110;116;114;111;100;117;122;32;117;109;32;110;250;109;101;114;111;34; @@ -46528,7 +46528,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,_6=` +`,M6=` 99;111;110;115;116;32;100;111;117;98;108;101;32;73;86;65;32;61;32;48;46;50;51; @@ -46549,7 +46549,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;112;114;101;99;111;67;111;109;73;118;97; -`,Z6=` +`,D6=` 105;110;116;32;112;105;110;32;61;32;48; @@ -46585,7 +46585,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,M6=` +`,B6=` 99;111;110;115;116;32;105;110;116;32;80;73;78;32;61;32;49;50;51;52; @@ -46621,7 +46621,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,D6=` +`,W6=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;49;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;34; @@ -46665,7 +46665,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,B6=` +`,L6=` 98;111;111;108;101;97;110;91;93;91;93;32;109;97;114;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;53;93;91;53;93; @@ -46719,7 +46719,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,W6=` +`,E6=` 98;111;111;108;101;97;110;91;93;91;93;32;109;97;114;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;53;93;91;53;93; @@ -46746,7 +46746,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;91;93;32;99;111;108;117;110;97;115;32;61;32;123;34;65;34;44;32;34;66;34;44;32;34;67;34;44;32;34;68;34;44;32;34;69;34;125; -`,L6=` +`,N6=` 105;110;112;117;116;58;32;105;110;116;32;112;114;97;116;111;32;34;81;117;101;32;112;114;97;116;111;63;32;40;49;44;32;50;32;111;117;32;51;41;34; @@ -46775,7 +46775,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,E6=` +`,F6=` 105;110;116;32;110;117;109;101;114;111;49;32;61;32;52; @@ -46790,7 +46790,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;111;109;97; -`,N6=` +`,J6=` 83;116;114;105;110;103;91;93;32;110;111;109;101;115;32;61;32;110;101;119;32;83;116;114;105;110;103;91;53;93; @@ -46812,7 +46812,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;76;105;109;112;97;32;111;32;113;117;97;100;114;111;58;32;34;32;43;32;110;111;109;101;115;91;115;111;114;116;101;97;100;111;32;45;32;49;93; -`,F6=` +`,G6=` 105;110;116;32;110;117;109;101;114;111;32;61;32;52; @@ -46824,7 +46824,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;78;250;109;101;114;111;32;100;117;112;108;105;99;97;100;111;58;32;34;32;43;32;110;117;109;101;114;111; -`,J6=` +`,R6=` -1; @@ -46871,7 +46871,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,G6=` +`,H6=` @@ -46908,7 +46908,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,R6=` +`,Q6=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;118;111;99;97;98;117;108;97;114;105;111;46;99;115;118;34;41;41; @@ -46968,7 +46968,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;99;101;114;116;97;115;32;43;32;34;32;100;101;32;34;32;43;32;99;111;110;116;97;103;101;109;32;43;32;34;32;99;101;114;116;97;115;34; -`,H6=` +`,V6=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;118;111;99;97;98;117;108;97;114;105;111;46;99;115;118;34;41;41; @@ -46977,7 +46977,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;104;97;32;61;32;108;101;105;116;111;114;46;114;101;97;100;76;105;110;101;40;41; -`,Q6=` +`,q6=` 105;110;112;117;116;58;32;105;110;116;32;105;100;97;100;101;32;34;81;117;97;110;116;111;115;32;97;110;111;115;32;116;101;110;115;63;34; @@ -46996,7 +46996,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,V6=` +`,U6=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;100;105;97;114;105;111;46;116;120;116;34;41;41; @@ -47019,7 +47019,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 108;101;105;116;111;114;46;99;108;111;115;101;40;41; -`,q6=` +`,$6=` 83;116;114;105;110;103;32;108;105;110;104;97;32;61;32;34;90;111;114;97;59;49;59;50;59;50;34; @@ -47037,7 +47037,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;111;109;101;32;43;32;34;32;116;101;109;32;34;32;43;32;109;97;116;101;109;97;116;105;99;97;32;43;32;34;32;97;32;77;97;116;101;109;225;116;105;99;97;34; -`,U6=` +`,Y6=` 83;116;114;105;110;103;32;108;105;110;104;97;32;61;32;34;123;92;34;110;111;109;101;92;34;58;32;92;34;90;111;114;97;92;34;44;32;92;34;101;115;112;101;99;105;101;92;34;58;32;92;34;99;97;98;114;97;92;34;44;32;92;34;105;100;97;100;101;92;34;58;32;54;125;44;34; @@ -47055,7 +47055,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;111;109;101; -`,$6=` +`,X6=` 83;99;97;110;110;101;114;32;102;105;99;104;101;105;114;111;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;99;111;109;112;114;97;115;46;116;120;116;34;41;41; @@ -47075,7 +47075,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 102;105;99;104;101;105;114;111;46;99;108;111;115;101;40;41; -`,Y6=` +`,K6=` 105;110;116;91;93;91;93;32;116;97;98;101;108;97;32;61;32;110;101;119;32;105;110;116;91;49;48;93;91;49;48;93; @@ -47107,7 +47107,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;97;32;43;32;34;32;183;32;34;32;43;32;98;32;43;32;34;32;61;32;34;32;43;32;116;97;98;101;108;97;91;97;32;45;32;49;93;91;98;32;45;32;49;93; -`,X6=` +`,e7=` 98;111;111;108;101;97;110;91;93;91;93;32;108;117;103;97;114;101;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -47155,7 +47155,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;76;105;118;114;101;115;58;32;34;32;43;32;108;105;118;114;101;115; -`,K6=` +`,t7=` 98;111;111;108;101;97;110;91;93;91;93;32;108;117;103;97;114;101;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -47170,7 +47170,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 108;117;103;97;114;101;115;91;50;93;91;51;93;32;61;32;116;114;117;101; -`,e7=` +`,n7=` 98;111;111;108;101;97;110;91;93;91;93;32;108;117;103;97;114;101;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -47204,7 +47204,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,t7=` +`,a7=` 98;111;111;108;101;97;110;91;93;91;93;32;108;117;103;97;114;101;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -47222,7 +47222,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 105;110;112;117;116;58;32;105;110;116;32;108;117;103;97;114;32;34;76;117;103;97;114;34; -`,n7=` +`,i7=` 98;111;111;108;101;97;110;91;93;91;93;32;108;117;103;97;114;101;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -47270,7 +47270,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,a7=` +`,s7=` 98;111;111;108;101;97;110;91;93;91;93;32;108;117;103;97;114;101;115;32;61;32;110;101;119;32;98;111;111;108;101;97;110;91;51;93;91;53;93; @@ -47294,7 +47294,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;70;105;108;97;32;49;44;32;108;117;103;97;114;32;50;32;118;101;110;100;105;100;111;63;32;34;32;43;32;108;117;103;97;114;101;115;91;49;93;91;50;93; -`,i7=` +`,r7=` 105;110;116;32;115;101;103;117;110;100;111;115;32;61;32;50;48;48; @@ -47309,7 +47309,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;111;115;32;43;32;34;32;109;105;110;32;34;32;43;32;114;101;115;116;111;32;43;32;34;32;115;34; -`,s7=` +`,o7=` 105;110;116;32;115;101;103;117;110;100;111;115;32;61;32;50;48;48; @@ -47324,7 +47324,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;111;115;32;43;32;34;32;109;105;110;32;34;32;43;32;114;101;115;116;111;32;43;32;34;32;115;34; -`,r7=` +`,l7=` 83;116;114;105;110;103;32;110;111;109;101;32;61;32;34;76;117;100;119;105;103;34; @@ -47342,7 +47342,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;108;116;117;114;97;58;32;34;32;43;32;97;108;116;117;114;97;32;43;32;34;32;109;34; -`,o7=` +`,u7=` 105;110;116;32;110;117;109;101;114;111;32;61;32;51; @@ -47357,7 +47357,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;117;109;101;114;111; -`,l7=` +`,m7=` 105;110;116;32;110;117;109;101;114;111;32;61;32;50; @@ -47372,7 +47372,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;117;109;101;114;111; -`,u7=` +`,c7=` 111;117;116;112;117;116;58;32;110;117;109;101;114;111; @@ -47387,7 +47387,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 110;117;109;101;114;111;32;61;32;110;117;109;101;114;111;32;43;32;51; -`,m7=` +`,d7=` 83;116;114;105;110;103;32;101;115;113;117;101;114;100;97;32;61;32;34;115;117;109;111;34; @@ -47411,7 +47411,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;68;105;114;101;105;116;97;58;32;34;32;43;32;100;105;114;101;105;116;97; -`,c7=` +`,h7=` 83;116;114;105;110;103;32;101;115;113;117;101;114;100;97;32;61;32;34;115;117;109;111;34; @@ -47426,7 +47426,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;68;105;114;101;105;116;97;58;32;34;32;43;32;100;105;114;101;105;116;97; -`,d7=` +`,g7=` 105;110;116;32;97;32;61;32;53; @@ -47450,7 +47450,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;98;32;61;32;34;32;43;32;98; -`,h7=` +`,p7=` 105;110;116;32;105;100;97;100;101;32;61;32;49;52; @@ -47468,7 +47468,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;108;116;117;114;97;58;32;34;32;43;32;97;108;116;117;114;97;32;43;32;34;32;109;34; -`,g7=` +`,f7=` 105;110;116;32;109;105;110;117;116;111;115;32;61;32;49;51;53; @@ -47483,7 +47483,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;104;111;114;97;115;32;43;32;34;32;104;111;114;97;115;32;101;32;34;32;43;32;114;101;115;116;111;32;43;32;34;32;109;105;110;117;116;111;115;34; -`,p7=` +`,x7=` 105;110;116;32;113;117;97;110;116;105;100;97;100;101;32;61;32;51; @@ -47498,7 +47498,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;112;114;101;99;111;84;111;116;97;108;32;43;32;34;32;101;117;114;111;115;34; -`,f7=` +`,b7=` 105;110;116;32;115;97;108;100;111;32;61;32;50;48; @@ -47513,7 +47513,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;82;101;115;116;97;58;32;34;32;43;32;115;97;108;100;111; -`,x7=` +`,y7=` 105;110;116;32;115;97;108;100;111;32;61;32;50;48; @@ -47528,7 +47528,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 115;97;108;100;111;32;61;32;115;97;108;100;111;32;45;32;112;114;101;99;111; -`,b7=` +`,v7=` 105;110;116;32;112;114;101;99;111;32;61;32;57; @@ -47543,7 +47543,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;116;111;116;97;108; -`,y7=` +`,w7=` 105;110;116;32;99;111;109;112;114;105;109;101;110;116;111;32;61;32;55; @@ -47564,7 +47564,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;101;114;237;109;101;116;114;111;58;32;34;32;43;32;112;101;114;105;109;101;116;114;111; -`,v7=` +`,z7=` 105;110;116;32;115;101;103;117;110;100;111;115;32;61;32;50;48;48; @@ -47579,7 +47579,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;111;115;32;43;32;34;32;109;105;110;117;116;111;115;32;101;32;34;32;43;32;114;101;115;116;111;32;43;32;34;32;115;101;103;117;110;100;111;115;34; -`,w7=` +`,I7=` 105;110;116;32;115;101;103;117;110;100;111;115;32;61;32;50;48;48; @@ -47588,7 +47588,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;109;105;110;117;116;111;115;32;43;32;34;32;109;105;110;117;116;111;115;32;101;32;34;32;43;32;114;101;115;116;111;32;43;32;34;32;115;101;103;117;110;100;111;115;34; -`,z7=` +`,k7=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;110;111;109;101;32;34;67;111;109;111;32;116;101;32;99;104;97;109;97;115;63;34; @@ -47597,7 +47597,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;79;108;225;32;34;32;43;32;110;111;109;101;32;43;32;34;33;34; -`,I7=` +`,S7=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;63;34; @@ -47612,7 +47612,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;111;109;97;58;32;34;32;43;32;115;111;109;97; -`,k7=` +`,O7=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;63;34; @@ -47624,7 +47624,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;111;109;97;58;32;34;32;43;32;40;97;32;43;32;98;41; -`,S7=` +`,T7=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;63;34; @@ -47636,7 +47636,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;111;109;97;58;32;34;32;43;32;97;32;43;32;98; -`,O7=` +`,A7=` 105;110;112;117;116;58;32;105;110;116;32;97;110;111;115;32;34;81;117;97;110;116;111;115;32;97;110;111;115;32;116;101;110;115;63;34; @@ -47648,7 +47648,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;227;111;32;99;101;114;99;97;32;100;101;32;34;32;43;32;100;105;97;115;32;43;32;34;32;100;105;97;115;46;34; -`,T7=` +`,P7=` 105;110;112;117;116;58;32;100;111;117;98;108;101;32;120;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;63;34; @@ -47663,7 +47663,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;77;233;100;105;97;58;32;34;32;43;32;109;101;100;105;97; -`,A7=` +`,j7=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;63;34; @@ -47684,7 +47684,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;114;111;100;117;116;111;58;32;34;32;43;32;112;114;111;100;117;116;111; -`,P7=` +`,C7=` 105;110;112;117;116;58;32;105;110;116;32;105;100;97;100;101;32;34;81;117;97;110;116;111;115;32;97;110;111;115;32;116;101;110;115;63;34; @@ -47703,7 +47703,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,j7=` +`,_7=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;78;250;109;101;114;111;63;34; @@ -47725,7 +47725,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;117;109;101;114;111; -`,C7=` +`,Z7=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;78;250;109;101;114;111;63;34; @@ -47744,7 +47744,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,_7=` +`,M7=` 105;110;116;32;112;111;110;116;111;115;32;61;32;48; @@ -47762,7 +47762,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;110;116;111;115;58;32;34;32;43;32;112;111;110;116;111;115; -`,Z7=` +`,D7=` 105;110;116;32;112;111;110;116;111;115;32;61;32;48; @@ -47780,7 +47780,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;110;116;111;115;58;32;34;32;43;32;112;111;110;116;111;115; -`,M7=` +`,B7=` 105;110;116;32;112;114;101;99;111;32;61;32;56; @@ -47798,7 +47798,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;116;111;116;97;108; -`,D7=` +`,W7=` 105;110;116;32;112;114;101;99;111;32;61;32;56; @@ -47816,7 +47816,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;116;111;116;97;108; -`,B7=` +`,L7=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;63;34; @@ -47838,7 +47838,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,W7=` +`,E7=` 105;110;112;117;116;58;32;100;111;117;98;108;101;32;112;114;101;99;111;32;34;80;114;101;231;111;32;101;109;32;101;117;114;111;115;63;34; @@ -47860,7 +47860,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;32;112;97;103;97;114;58;32;34;32;43;32;112;114;101;99;111;32;43;32;34;32;101;117;114;111;115;34; -`,L7=` +`,N7=` 105;110;112;117;116;58;32;105;110;116;32;110;111;116;97;32;34;78;111;116;97;63;34; @@ -47879,7 +47879,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,E7=` +`,F7=` 105;110;112;117;116;58;32;105;110;116;32;112;111;110;116;111;115;32;34;81;117;97;110;116;111;115;32;112;111;110;116;111;115;63;34; @@ -47898,7 +47898,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,N7=` +`,J7=` 105;110;112;117;116;58;32;105;110;116;32;105;100;97;100;101;32;34;81;117;101;32;105;100;97;100;101;32;116;101;110;115;63;34; @@ -47917,7 +47917,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,F7=` +`,G7=` 105;110;112;117;116;58;32;105;110;116;32;105;100;97;100;101;32;34;81;117;101;32;105;100;97;100;101;32;116;101;110;115;63;34; @@ -47936,7 +47936,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,J7=` +`,R7=` 105;110;112;117;116;58;32;105;110;116;32;105;100;97;100;101;32;34;81;117;97;110;116;111;115;32;97;110;111;115;32;116;101;110;115;63;34; @@ -47955,7 +47955,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,G7=` +`,H7=` 105;110;112;117;116;58;32;105;110;116;32;110;111;116;97;32;34;78;111;116;97;63;34; @@ -47974,7 +47974,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,R7=` +`,Q7=` 105;110;112;117;116;58;32;105;110;116;32;97;110;111;32;34;65;110;111;63;34; @@ -47993,7 +47993,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,H7=` +`,V7=` 105;110;112;117;116;58;32;105;110;116;32;100;105;97;32;34;68;105;97;32;40;49;32;97;32;55;41;63;34; @@ -48012,7 +48012,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Q7=` +`,q7=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;99;111;114;32;34;68;101;32;113;117;101;32;99;111;114;32;101;115;116;225;32;111;32;115;101;109;225;102;111;114;111;63;34; @@ -48041,7 +48041,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,V7=` +`,U7=` 105;110;112;117;116;58;32;105;110;116;32;101;115;99;111;108;104;97;32;34;49;32;225;103;117;97;44;32;50;32;115;117;109;111;44;32;51;32;99;104;111;99;111;108;97;116;101;32;113;117;101;110;116;101;34; @@ -48070,7 +48070,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,q7=` +`,$7=` 105;110;112;117;116;58;32;105;110;116;32;100;105;97;32;34;81;117;101;32;100;105;97;32;40;49;32;97;32;55;41;63;34; @@ -48089,7 +48089,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,U7=` +`,Y7=` 105;110;112;117;116;58;32;105;110;116;32;100;105;97;32;34;81;117;101;32;100;105;97;32;40;49;32;97;32;55;41;63;34; @@ -48108,7 +48108,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,$7=` +`,X7=` 105;110;112;117;116;58;32;105;110;116;32;104;111;114;97;32;34;81;117;101;32;104;111;114;97;115;32;115;227;111;32;40;115;243;32;97;32;104;111;114;97;41;63;34; @@ -48127,7 +48127,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Y7=` +`,K7=` 105;110;112;117;116;58;32;105;110;116;32;110;111;116;97;32;34;81;117;101;32;110;111;116;97;63;34; @@ -48166,7 +48166,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,X7=` +`,eI=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;34; @@ -48213,7 +48213,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,K7=` +`,tI=` 105;110;112;117;116;58;32;105;110;116;32;101;115;99;111;108;104;97;32;34;49;32;225;103;117;97;44;32;50;32;115;117;109;111;44;32;51;32;99;104;111;99;111;108;97;116;101;32;113;117;101;110;116;101;34; @@ -48252,7 +48252,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,eI=` +`,nI=` 80;244;114;32;117;109;97;32;99;104;225;118;101;110;97;32;110;97;32;109;101;115;97; @@ -48282,7 +48282,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 66;101;98;101;114;32;111;32;99;104;225; -`,tI=` +`,aI=` 76;101;118;97;110;116;97;114; @@ -48297,7 +48297,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 84;111;109;97;114;32;111;32;112;101;113;117;101;110;111;45;97;108;109;111;231;111; -`,nI=` +`,iI=` 69;110;99;104;101;114;32;97;32;99;104;97;108;101;105;114;97;32;99;111;109;32;225;103;117;97; @@ -48318,7 +48318,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 84;105;114;97;114;32;97;32;115;97;113;117;101;116;97;32;100;101;32;99;104;225; -`,aI=` +`,sI=` 69;115;116;225;32;97;32;99;104;111;118;101;114;63; @@ -48337,7 +48337,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;97;105;114; -`,iI=` +`,rI=` 80;114;97;116;111;32;110;227;111;32;118;97;122;105;111; @@ -48351,7 +48351,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 76;101;118;97;110;116;97;114;32;111;32;112;114;97;116;111; -`,sI=` +`,oI=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;67;111;110;116;97;114;32;97;116;233;63;34; @@ -48371,7 +48371,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,rI=` +`,lI=` 105;110;116;32;110;117;109;101;114;111;32;61;32;51; @@ -48391,7 +48391,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;97;114;116;105;100;97;33;34; -`,oI=` +`,uI=` 105;110;116;32;110;117;109;101;114;111;32;61;32;51; @@ -48408,7 +48408,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;97;114;116;105;100;97;33;34; -`,lI=` +`,mI=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;70;97;116;111;114;105;97;108;32;100;101;32;113;117;101;32;110;250;109;101;114;111;63;34; @@ -48434,7 +48434,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;32;43;32;34;33;32;61;32;34;32;43;32;102;97;116;111;114;105;97;108; -`,uI=` +`,cI=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;63;34; @@ -48469,7 +48469,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,mI=` +`,dI=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;63;34; @@ -48504,7 +48504,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,cI=` +`,hI=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;81;117;101;32;110;250;109;101;114;111;63;34; @@ -48533,7 +48533,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,dI=` +`,gI=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;78;250;109;101;114;111;32;105;110;105;99;105;97;108;34; @@ -48556,7 +48556,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;112;97;115;115;111;115; -`,hI=` +`,pI=` 105;110;116;32;110;117;109;101;114;111;32;61;32;48; @@ -48573,7 +48573,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;79;98;114;105;103;97;100;111;33;34; -`,gI=` +`,fI=` 105;110;116;32;105;32;61;32;49;48; @@ -48590,7 +48590,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,pI=` +`,xI=` 105;110;112;117;116;58;32;105;110;116;32;111;98;106;101;116;105;118;111;32;34;79;98;106;101;116;105;118;111;63;34; @@ -48616,7 +48616,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;101;109;97;110;97;115;58;32;34;32;43;32;115;101;109;97;110;97;115; -`,fI=` +`,bI=` 105;110;112;117;116;58;32;105;110;116;32;111;98;106;101;116;105;118;111;32;34;79;98;106;101;116;105;118;111;63;34; @@ -48642,7 +48642,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;101;109;97;110;97;115;58;32;34;32;43;32;115;101;109;97;110;97;115; -`,xI=` +`,yI=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;65;116;233;32;111;110;100;101;63;34; @@ -48662,7 +48662,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,bI=` +`,vI=` 105;110;116;32;110;111;116;97;32;61;32;48; @@ -48679,7 +48679,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;32;116;117;97;32;110;111;116;97;58;32;34;32;43;32;110;111;116;97; -`,yI=` +`,wI=` 105;110;116;32;115;111;109;97;32;61;32;48; @@ -48702,7 +48702,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;111;109;97; -`,vI=` +`,zI=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;78;250;109;101;114;111;32;105;110;105;99;105;97;108;34; @@ -48721,7 +48721,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;74;225;33;34; -`,wI=` +`,II=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;81;117;101;32;116;97;98;117;97;100;97;63;34; @@ -48740,7 +48740,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,zI=` +`,kI=` 105;110;116;32;105;32;61;32;49; @@ -48753,7 +48753,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,II=` +`,SI=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;78;250;109;101;114;111;32;105;110;105;99;105;97;108;63;34; @@ -48770,7 +48770,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,kI=` +`,OI=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;78;250;109;101;114;111;32;105;110;105;99;105;97;108;63;34; @@ -48787,7 +48787,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,SI=` +`,TI=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;78;250;109;101;114;111;32;105;110;105;99;105;97;108;63;34; @@ -48804,7 +48804,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,OI=` +`,AI=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;65;116;233;32;113;117;101;32;110;250;109;101;114;111;63;34; @@ -48826,7 +48826,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;111;109;97; -`,TI=` +`,PI=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;81;117;97;110;116;97;115;32;108;105;110;104;97;115;63;34; @@ -48855,7 +48855,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,AI=` +`,jI=` 105;110;116;32;113;117;97;110;116;105;100;97;100;101;32;61;32;48; @@ -48887,7 +48887,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;113;117;97;110;116;105;100;97;100;101; -`,PI=` +`,CI=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;65;116;233;32;113;117;101;32;110;250;109;101;114;111;63;34; @@ -48919,7 +48919,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;113;117;97;110;116;105;100;97;100;101; -`,jI=` +`,_I=` 105;110;112;117;116;58;32;105;110;116;32;116;97;98;117;97;100;97;32;34;81;117;101;32;116;97;98;117;97;100;97;63;34; @@ -48935,7 +48935,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,CI=` +`,ZI=` 105;110;112;117;116;58;32;105;110;116;32;116;97;98;117;97;100;97;32;34;81;117;101;32;116;97;98;117;97;100;97;63;34; @@ -48951,7 +48951,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,_I=` +`,MI=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;65;116;233;32;113;117;101;32;110;250;109;101;114;111;63;34; @@ -48967,7 +48967,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,ZI=` +`,DI=` 105;110;112;117;116;58;32;105;110;116;32;108;97;114;103;117;114;97;32;34;76;97;114;103;117;114;97;34; @@ -48999,7 +48999,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,MI=` +`,BI=` 105;110;116;91;93;32;110;117;109;101;114;111;115;32;61;32;123;50;44;32;52;44;32;54;44;32;56;44;32;49;48;125; @@ -49015,7 +49015,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,DI=` +`,WI=` 105;110;116;91;93;32;118;97;108;111;114;101;115;32;61;32;123;52;44;32;56;44;32;49;53;44;32;49;54;44;32;50;51;44;32;52;50;125; @@ -49030,7 +49030,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;118;97;108;111;114;101;115;46;108;101;110;103;116;104; -`,BI=` +`,LI=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;65;116;233;32;113;117;101;32;110;250;109;101;114;111;63;34; @@ -49062,7 +49062,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;81;117;97;110;116;105;100;97;100;101;58;32;34;32;43;32;113;117;97;110;116;105;100;97;100;101; -`,WI=` +`,EI=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;65;116;233;32;113;117;101;32;110;250;109;101;114;111;63;34; @@ -49094,7 +49094,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,LI=` +`,NI=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;81;117;97;110;116;111;115;32;100;101;103;114;97;117;115;63;34; @@ -49123,7 +49123,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,EI=` +`,FI=` 83;116;114;105;110;103;91;93;32;110;111;109;101;115;32;61;32;110;101;119;32;83;116;114;105;110;103;91;51;93; @@ -49142,7 +49142,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;114;105;109;101;105;114;111;32;110;111;109;101;58;32;34;32;43;32;110;111;109;101;115;91;48;93; -`,NI=` +`,JI=` 105;110;116;91;93;32;110;117;109;101;114;111;115;32;61;32;110;101;119;32;105;110;116;91;52;93; @@ -49168,7 +49168,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,FI=` +`,GI=` 105;110;116;91;93;32;110;117;109;101;114;111;115;32;61;32;110;101;119;32;105;110;116;91;53;93; @@ -49219,7 +49219,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;77;225;120;105;109;111;58;32;34;32;43;32;109;97;120; -`,JI=` +`,RI=` 105;110;116;91;93;32;112;111;110;116;111;115;32;61;32;123;49;50;44;32;55;44;32;49;57;44;32;52;125; @@ -49260,7 +49260,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;77;225;120;105;109;111;58;32;34;32;43;32;109;97;120; -`,GI=` +`,HI=` 105;110;116;32;115;111;109;97;32;61;32;48; @@ -49283,7 +49283,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;111;109;97;58;32;34;32;43;32;115;111;109;97; -`,RI=` +`,QI=` 105;110;116;32;115;111;109;97;32;61;32;48; @@ -49313,7 +49313,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;111;109;97;58;32;34;32;43;32;115;111;109;97; -`,HI=` +`,VI=` 105;110;112;117;116;58;32;105;110;116;32;99;111;109;112;114;105;109;101;110;116;111;32;34;67;111;109;112;114;105;109;101;110;116;111;63;34; @@ -49328,7 +49328,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;193;114;101;97;58;32;34;32;43;32;102; -`,QI=` +`,qI=` 109;111;115;116;114;97;114;66;111;97;115;86;105;110;100;97;115;40;41; @@ -49340,7 +49340,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 109;111;115;116;114;97;114;82;101;115;117;108;116;97;100;111;40;41; -`,VI=` +`,UI=` 105;110;116;91;93;32;116;101;109;112;101;114;97;116;117;114;97;115;32;61;32;123;45;53;44;32;45;50;44;32;45;56;44;32;45;51;125; @@ -49372,7 +49372,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;101;109;112;101;114;97;116;117;114;97;32;109;97;105;115;32;97;108;116;97;58;32;34;32;43;32;109;97;120; -`,qI=` +`,$I=` 105;110;116;91;93;32;116;101;109;112;101;114;97;116;117;114;97;115;32;61;32;123;45;53;44;32;45;50;44;32;45;56;44;32;45;51;125; @@ -49404,7 +49404,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;101;109;112;101;114;97;116;117;114;97;32;109;97;105;115;32;97;108;116;97;58;32;34;32;43;32;109;97;120; -`,UI=` +`,YI=` 105;110;116;91;93;32;110;111;116;97;115;32;61;32;123;50;44;32;51;44;32;49;44;32;52;125; @@ -49426,7 +49426,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;111;109;97;58;32;34;32;43;32;115;111;109;97; -`,$I=` +`,XI=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;81;117;101;32;110;250;109;101;114;111;63;34; @@ -49438,7 +49438,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;79;32;113;117;97;100;114;97;100;111;32;233;32;34;32;43;32;113; -`,YI=` +`,KI=` 105;110;116;32;114;101;115;117;108;116;97;100;111;32;61;32;120;32;42;32;120; @@ -49447,7 +49447,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 114;101;116;117;114;110;32;114;101;115;117;108;116;97;100;111; -`,XI=` +`,ek=` 109;111;115;116;114;97;114;84;105;116;117;108;111;40;41; @@ -49459,7 +49459,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;79;108;225;32;34;32;43;32;110;111;109;101; -`,KI=` +`,tk=` 111;117;116;112;117;116;58;32;34;66;101;109;45;118;105;110;100;111;32;97;111;32;113;117;105;122;33;34; @@ -49468,7 +49468,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;86;97;105;115;32;116;101;114;32;116;114;234;115;32;112;101;114;103;117;110;116;97;115;46;34; -`,ek=` +`,nk=` 109;111;115;116;114;97;114;83;111;109;97;40;51;44;32;52;41; @@ -49480,7 +49480,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 109;111;115;116;114;97;114;83;111;109;97;40;120;44;32;120;32;43;32;49;41; -`,tk=` +`,ak=` 105;110;116;32;115;111;109;97;32;61;32;97;32;43;32;98; @@ -49489,7 +49489,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;97;32;43;32;34;32;43;32;34;32;43;32;98;32;43;32;34;32;61;32;34;32;43;32;115;111;109;97; -`,nk=` +`,ik=` 105;110;112;117;116;58;32;105;110;116;32;105;110;105;99;105;111;32;34;86;97;108;111;114;32;105;110;105;99;105;97;108;34; @@ -49512,7 +49512,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;74;225;33;34; -`,ak=` +`,sk=` 105;110;112;117;116;58;32;105;110;116;32;105;110;105;99;105;111;32;34;86;97;108;111;114;32;105;110;105;99;105;97;108;34; @@ -49535,7 +49535,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;74;225;34; -`,ik=` +`,rk=` 105;110;116;91;93;91;93;32;112;111;110;116;111;115;32;61;32;123;123;51;44;32;53;44;32;50;125;44;32;123;52;44;32;49;44;32;54;125;125; @@ -49557,7 +49557,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;74;111;103;97;100;111;114;32;50;58;32;34;32;43;32;115;111;109;97; -`,sk=` +`,ok=` 105;110;116;91;93;91;93;32;112;111;110;116;111;115;32;61;32;123;123;51;44;32;53;44;32;50;125;44;32;123;52;44;32;49;44;32;54;125;125; @@ -49579,7 +49579,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;74;111;103;97;100;111;114;32;50;58;32;34;32;43;32;115;111;109;97; -`,rk=` +`,lk=` 105;110;116;91;93;91;93;32;112;111;110;116;111;115;32;61;32;123;123;51;44;32;53;125;44;32;123;52;44;32;49;125;44;32;123;50;44;32;50;125;125; @@ -49608,7 +49608,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;83;111;109;97;58;32;34;32;43;32;115;111;109;97; -`,ok=` +`,uk=` 105;110;116;32;115;111;109;97;32;61;32;48; @@ -49631,7 +49631,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;111;109;97; -`,lk=` +`,mk=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;65;116;233;32;113;117;101;32;110;250;109;101;114;111;63;34; @@ -49653,7 +49653,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;111;109;97; -`,uk=` +`,ck=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;65;116;233;32;113;117;101;32;110;250;109;101;114;111;63;34; @@ -49675,7 +49675,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;115;111;109;97; -`,mk=` +`,dk=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;81;117;101;32;116;97;98;117;97;100;97;63;34; @@ -49707,7 +49707,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,ck=` +`,hk=` 105;110;112;117;116;58;32;105;110;116;32;110;32;34;73;110;116;114;111;100;117;122;32;117;109;32;110;250;109;101;114;111;34; @@ -49729,7 +49729,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;102;97;116;111;114;105;97;108; -`,dk=` +`,gk=` 83;116;114;105;110;103;32;99;97;114;116;97;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;99;97;114;116;97;46;116;120;116;34;41;41; @@ -49761,13 +49761,13 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,hk=` +`,pk=` 83;116;114;105;110;103;32;99;97;114;116;97;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;99;97;114;116;97;46;116;120;116;34;41;41; -`,gk=` +`,fk=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;110;111;109;101;32;34;78;111;109;101;32;112;114;243;112;114;105;111;63;34; @@ -49779,7 +49779,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;111;109;101;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;32;34;32;43;32;97;112;101;108;105;100;111;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;34; -`,pk=` +`,xk=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;110;111;109;101;32;34;78;111;109;101;32;112;114;243;112;114;105;111;63;34; @@ -49791,7 +49791,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;111;109;101;46;99;104;97;114;65;116;40;49;41;32;43;32;34;46;32;34;32;43;32;97;112;101;108;105;100;111;46;99;104;97;114;65;116;40;49;41;32;43;32;34;46;34; -`,fk=` +`,bk=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;101;110;116;114;97;100;97;32;34;80;97;108;97;118;114;97;45;112;97;115;115;101;63;34; @@ -49810,7 +49810,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,xk=` +`,yk=` 105;110;112;117;116;58;32;105;110;116;32;105;100;97;100;101;32;34;81;117;97;110;116;111;115;32;97;110;111;115;32;116;101;110;115;63;34; @@ -49839,7 +49839,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,bk=` +`,vk=` 105;110;112;117;116;58;32;105;110;116;32;110;117;109;101;114;111;32;34;86;97;108;111;114;32;105;110;105;99;105;97;108;63;34; @@ -49859,7 +49859,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;70;105;109;34; -`,yk=` +`,wk=` 105;110;116;32;116;101;110;116;97;116;105;118;97;115;32;61;32;48; @@ -49892,7 +49892,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;101;110;116;97;116;105;118;97;115;58;32;34;32;43;32;116;101;110;116;97;116;105;118;97;115; -`,vk=` +`,zk=` 105;110;116;32;116;101;110;116;97;116;105;118;97;115;32;61;32;48; @@ -49925,7 +49925,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;101;110;116;97;116;105;118;97;115;58;32;34;32;43;32;116;101;110;116;97;116;105;118;97;115; -`,wk=` +`,Ik=` 105;110;116;32;115;111;109;97;32;61;32;48; @@ -49967,7 +49967,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;115;111;109;97; -`,zk=` +`,kk=` 105;110;112;117;116;58;32;105;110;116;32;105;100;97;100;101;32;34;81;117;97;110;116;111;115;32;97;110;111;115;32;116;101;110;115;63;34; @@ -49989,7 +49989,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Ik=` +`,Sk=` 105;110;112;117;116;58;32;105;110;116;32;108;105;109;105;116;101;32;34;65;116;233;32;113;117;101;32;110;250;109;101;114;111;63;34; @@ -50005,7 +50005,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,kk=` +`,Ok=` 105;110;116;91;93;32;99;97;114;116;97;115;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -50044,7 +50044,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;115;105;231;227;111;58;32;34;32;43;32;112;111;115;105;99;97;111; -`,Sk=` +`,Tk=` 105;110;116;91;93;32;99;97;114;116;97;115;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -50083,7 +50083,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;111;115;105;231;227;111;58;32;34;32;43;32;112;111;115;105;99;97;111; -`,Ok=` +`,Ak=` 105;110;116;91;93;32;99;97;114;116;97;115;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -50118,7 +50118,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;81;117;97;110;116;105;100;97;100;101;58;32;34;32;43;32;113;117;97;110;116;105;100;97;100;101; -`,Tk=` +`,Pk=` 111;117;116;112;117;116;58;32;34;66;111;109;32;100;105;97;34; @@ -50127,13 +50127,13 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;72;111;106;101;32;97;112;114;101;110;100;101;109;111;115;32;101;115;116;114;117;116;111;103;114;97;109;97;115;46;34; -`,Ak=` +`,jk=` 111;117;116;112;117;116;58;32;34;79;108;225;32;77;117;110;100;111;34; -`,Pk=` +`,Ck=` 111;117;116;112;117;116;58;32;34;79;108;225;34; @@ -50142,7 +50142,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;69;115;116;111;117;32;97;32;97;112;114;101;110;100;101;114;32;101;115;116;114;117;116;111;103;114;97;109;97;115;34; -`,jk=` +`,_k=` 83;99;97;110;110;101;114;32;102;105;99;104;101;105;114;111;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;99;111;109;112;114;97;115;46;116;120;116;34;41;41; @@ -50183,7 +50183,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;113;117;97;110;116;105;100;97;100;101;32;43;32;34;32;108;105;110;104;97;115;32;103;117;97;114;100;97;100;97;115;34; -`,Ck=` +`,Zk=` 83;99;97;110;110;101;114;32;102;105;99;104;101;105;114;111;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;99;111;109;112;114;97;115;46;116;120;116;34;41;41; @@ -50192,7 +50192,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 80;114;105;110;116;87;114;105;116;101;114;32;115;97;105;100;97;32;61;32;110;101;119;32;80;114;105;110;116;87;114;105;116;101;114;40;34;99;111;109;112;114;97;115;45;110;111;118;97;46;116;120;116;34;41; -`,_k=` +`,Mk=` 83;99;97;110;110;101;114;32;102;105;99;104;101;105;114;111;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;99;111;109;112;114;97;115;46;116;120;116;34;41;41; @@ -50218,13 +50218,13 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 102;105;99;104;101;105;114;111;46;99;108;111;115;101;40;41; -`,Zk=` +`,Dk=` 83;99;97;110;110;101;114;32;102;105;99;104;101;105;114;111;32;61;32;110;101;119;32;83;99;97;110;110;101;114;40;110;101;119;32;70;105;108;101;40;34;99;111;109;112;114;97;115;46;116;120;116;34;41;41; -`,Mk=` +`,Bk=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;100;105;97;114;105;111;46;116;120;116;34;41;41; @@ -50263,7 +50263,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;82;97;112;111;115;97;58;32;34;32;43;32;113;117;97;110;116;105;100;97;100;101; -`,Dk=` +`,Wk=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;100;105;97;114;105;111;46;116;120;116;34;41;41; @@ -50272,7 +50272,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;104;97;32;61;32;108;101;105;116;111;114;46;114;101;97;100;76;105;110;101;40;41; -`,Bk=` +`,Lk=` 83;116;114;105;110;103;32;116;101;120;116;111;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;100;105;97;114;105;111;46;116;120;116;34;41;41; @@ -50307,7 +50307,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;69;110;116;114;97;100;97;32;109;97;105;115;32;108;111;110;103;97;58;32;34;32;43;32;109;97;105;115;76;111;110;103;97; -`,Wk=` +`,Ek=` 83;116;114;105;110;103;32;116;101;120;116;111;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;100;105;97;114;105;111;46;116;120;116;34;41;41; @@ -50316,7 +50316,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;91;93;32;108;105;110;104;97;115;32;61;32;116;101;120;116;111;46;115;112;108;105;116;40;34;92;110;34;41; -`,Lk=` +`,Nk=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;116;117;114;109;97;46;99;115;118;34;41;41; @@ -50370,7 +50370,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;77;101;108;104;111;114;32;110;111;116;97;32;97;32;73;110;103;108;234;115;58;32;34;32;43;32;109;101;108;104;111;114;78;111;109;101;32;43;32;34;32;40;34;32;43;32;109;101;108;104;111;114;78;111;116;97;32;43;32;34;41;34; -`,Ek=` +`,Fk=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;116;117;114;109;97;46;99;115;118;34;41;41; @@ -50379,7 +50379,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;104;97;32;61;32;108;101;105;116;111;114;46;114;101;97;100;76;105;110;101;40;41; -`,Nk=` +`,Jk=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;116;117;114;109;97;46;99;115;118;34;41;41; @@ -50420,7 +50420,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;77;233;100;105;97;32;100;101;32;77;97;116;101;109;225;116;105;99;97;58;32;34;32;43;32;115;111;109;97;32;47;32;113;117;97;110;116;105;100;97;100;101; -`,Fk=` +`,Gk=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;116;117;114;109;97;46;99;115;118;34;41;41; @@ -50429,7 +50429,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;104;97;32;61;32;108;101;105;116;111;114;46;114;101;97;100;76;105;110;101;40;41; -`,Jk=` +`,Rk=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;122;111;111;46;106;115;111;110;34;41;41; @@ -50468,7 +50468,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 108;101;105;116;111;114;46;99;108;111;115;101;40;41; -`,Gk=` +`,Hk=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;122;111;111;46;106;115;111;110;34;41;41; @@ -50477,7 +50477,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 83;116;114;105;110;103;32;108;105;110;104;97;32;61;32;108;101;105;116;111;114;46;114;101;97;100;76;105;110;101;40;41; -`,Rk=` +`,Qk=` 83;116;114;105;110;103;91;93;32;110;111;109;101;115;32;61;32;123;34;76;117;100;119;105;103;34;44;32;34;90;111;114;97;34;44;32;34;82;97;112;111;115;97;34;125; @@ -50527,7 +50527,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;111;109;101;115;46;108;101;110;103;116;104;32;43;32;34;32;101;110;116;114;97;100;97;115;32;103;117;97;114;100;97;100;97;115;34; -`,Hk=` +`,Vk=` 83;116;114;105;110;103;91;93;32;110;111;109;101;115;32;61;32;123;34;76;117;100;119;105;103;34;44;32;34;90;111;114;97;34;44;32;34;82;97;112;111;115;97;34;125; @@ -50545,7 +50545,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 115;97;105;100;97;46;99;108;111;115;101;40;41; -`,Qk=` +`,qk=` 83;116;114;105;110;103;32;116;101;120;116;111;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;97;110;105;109;97;105;115;46;99;115;118;34;41;41; @@ -50598,7 +50598,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;40;108;105;110;104;97;115;46;108;101;110;103;116;104;32;45;32;49;41;32;43;32;34;32;97;110;105;109;97;105;115;32;103;117;97;114;100;97;100;111;115;34; -`,Vk=` +`,Uk=` 83;116;114;105;110;103;32;116;101;120;116;111;32;61;32;70;105;108;101;115;46;114;101;97;100;83;116;114;105;110;103;40;80;97;116;104;46;111;102;40;34;97;110;105;109;97;105;115;46;99;115;118;34;41;41; @@ -50619,7 +50619,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 115;97;105;100;97;46;99;108;111;115;101;40;41; -`,qk=` +`,$k=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;97;110;105;109;97;105;115;46;99;115;118;34;41;41; @@ -50663,7 +50663,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;113;117;97;110;116;105;100;97;100;101;32;43;32;34;32;102;114;97;115;101;115;32;103;117;97;114;100;97;100;97;115;34; -`,Uk=` +`,Yk=` 66;117;102;102;101;114;101;100;82;101;97;100;101;114;32;108;101;105;116;111;114;32;61;32;110;101;119;32;66;117;102;102;101;114;101;100;82;101;97;100;101;114;40;110;101;119;32;70;105;108;101;82;101;97;100;101;114;40;34;97;110;105;109;97;105;115;46;99;115;118;34;41;41; @@ -50684,7 +50684,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 115;97;105;100;97;46;99;108;111;115;101;40;41; -`,$k=` +`,Xk=` 105;110;112;117;116;58;32;105;110;116;32;113;117;97;110;116;105;100;97;100;101;32;34;81;117;97;110;116;111;115;32;98;105;108;104;101;116;101;115;63;34; @@ -50696,7 +50696,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;84;111;116;97;108;58;32;34;32;43;32;116;111;116;97;108; -`,Yk=` +`,Kk=` 105;110;112;117;116;58;32;105;110;116;32;113;117;97;110;116;105;100;97;100;101;32;34;81;117;97;110;116;111;115;32;98;105;108;104;101;116;101;115;63;34; @@ -50708,7 +50708,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 100;111;117;98;108;101;32;116;111;116;97;108;32;61;32;113;117;97;110;116;105;100;97;100;101;32;42;32;56;46;53; -`,Xk=` +`,e8=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;34; @@ -50732,7 +50732,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;98; -`,Kk=` +`,t8=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;80;114;105;109;101;105;114;111;32;110;250;109;101;114;111;34; @@ -50753,7 +50753,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;98; -`,e8=` +`,n8=` 105;110;116;32;97;32;61;32;51; @@ -50777,7 +50777,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;98;32;61;32;34;32;43;32;98; -`,t8=` +`,a8=` 105;110;116;91;93;32;99;97;114;116;97;115;32;61;32;110;101;119;32;105;110;116;91;53;93; @@ -50836,7 +50836,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,n8=` +`,i8=` 105;110;116;91;93;32;99;97;114;116;97;115;32;61;32;110;101;119;32;105;110;116;91;53;93; @@ -50895,7 +50895,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,a8=` +`,s8=` 105;110;116;91;93;32;99;97;114;116;97;115;32;61;32;123;50;44;32;51;44;32;53;44;32;55;44;32;56;44;32;49;48;44;32;49;50;44;32;49;51;44;32;49;53;44;32;49;56;44;32;50;48;44;32;50;49;44;32;50;52;44;32;50;55;44;32;51;48;125; @@ -50969,7 +50969,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;67;111;109;112;97;114;97;231;245;101;115;58;32;34;32;43;32;99;111;109;112;97;114;97;99;111;101;115; -`,i8=` +`,r8=` 105;110;116;91;93;32;99;97;114;116;97;115;32;61;32;123;55;44;32;51;44;32;49;48;44;32;53;44;32;50;125; @@ -51018,7 +51018,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,s8=` +`,o8=` 105;110;116;91;93;32;99;97;114;116;97;115;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -51067,7 +51067,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,r8=` +`,l8=` 105;110;116;91;93;32;99;97;114;116;97;115;32;61;32;123;50;44;32;51;44;32;53;44;32;55;44;32;56;44;32;49;48;44;32;49;50;44;32;49;51;44;32;49;53;44;32;49;56;44;32;50;48;44;32;50;49;44;32;50;52;44;32;50;55;44;32;51;48;125; @@ -51125,7 +51125,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;67;111;109;112;97;114;97;231;245;101;115;58;32;34;32;43;32;99;111;109;112;97;114;97;99;111;101;115; -`,o8=` +`,u8=` 105;110;116;91;93;32;112;111;110;116;111;115;32;61;32;123;51;44;32;53;44;32;56;125; @@ -51144,7 +51144,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,l8=` +`,m8=` 105;110;116;91;93;32;112;111;110;116;111;115;32;61;32;123;51;44;32;53;44;32;56;125; @@ -51163,7 +51163,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,u8=` +`,c8=` 105;110;116;32;105;32;61;32;48; @@ -51176,7 +51176,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,m8=` +`,d8=` 105;110;116;32;110;117;109;101;114;111;32;61;32;53; @@ -51200,7 +51200,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;68;101;112;111;105;115;58;32;34;32;43;32;102;105;108;97;91;48;93;32;43;32;34;44;32;34;32;43;32;102;105;108;97;91;49;93; -`,c8=` +`,h8=` 105;110;116;32;105;32;61;32;48; @@ -51213,7 +51213,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,d8=` +`,g8=` 120;32;61;32;120;32;42;32;50; @@ -51222,7 +51222,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;78;111;32;115;117;98;112;114;111;103;114;97;109;97;58;32;120;32;61;32;34;32;43;32;120; -`,h8=` +`,p8=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;110;111;109;101;32;34;78;111;109;101;32;112;114;243;112;114;105;111;34; @@ -51234,7 +51234,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;110;111;109;101;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;32;34;32;43;32;97;112;101;108;105;100;111;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;34; -`,g8=` +`,f8=` 83;116;114;105;110;103;32;112;97;108;97;118;114;97;32;61;32;34;80;97;115;115;97;116;101;109;112;111;34; @@ -51273,7 +51273,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;116;101;120;116; -`,p8=` +`,x8=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;112;97;108;97;118;114;97;32;34;73;110;116;114;111;100;117;122;32;117;109;97;32;112;97;108;97;118;114;97;34; @@ -51295,7 +51295,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;105;110;118;101;114;116;105;100;97; -`,f8=` +`,b8=` 83;116;114;105;110;103;32;108;105;110;104;97;32;61;32;34;76;117;100;119;105;103;59;98;111;100;101;59;55;34; @@ -51314,7 +51314,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,x8=` +`,y8=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;102;114;97;115;101;32;34;73;110;116;114;111;100;117;122;32;117;109;97;32;102;114;97;115;101;34; @@ -51326,7 +51326,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;80;97;108;97;118;114;97;115;58;32;34;32;43;32;112;97;108;97;118;114;97;115;46;108;101;110;103;116;104; -`,b8=` +`,v8=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;112;97;108;97;118;114;97;32;34;73;110;116;114;111;100;117;122;32;117;109;97;32;112;97;108;97;118;114;97;34; @@ -51358,7 +51358,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;78;250;109;101;114;111;32;100;101;32;97;58;32;34;32;43;32;113;117;97;110;116;105;100;97;100;101; -`,y8=` +`,w8=` 83;116;114;105;110;103;32;112;97;108;97;118;114;97;32;61;32;34;80;97;115;115;97;116;101;109;112;111;34; @@ -51382,7 +51382,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;112;97;108;97;118;114;97;46;116;111;85;112;112;101;114;67;97;115;101;40;41; -`,v8=` +`,z8=` 105;110;112;117;116;58;32;105;110;116;32;97;110;122;97;104;108;32;34;87;105;101;32;118;105;101;108;101;32;75;97;114;116;101;110;63;34; @@ -51394,7 +51394,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;71;101;115;97;109;116;58;32;34;32;43;32;103;101;115;97;109;116; -`,w8=` +`,I8=` 105;110;112;117;116;58;32;105;110;116;32;97;110;122;97;104;108;32;34;87;105;101;32;118;105;101;108;101;32;75;97;114;116;101;110;63;34; @@ -51406,7 +51406,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 100;111;117;98;108;101;32;103;101;115;97;109;116;32;61;32;97;110;122;97;104;108;32;42;32;56;46;53; -`,z8=` +`,k8=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;69;114;115;116;101;32;90;97;104;108;34; @@ -51430,7 +51430,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;98; -`,I8=` +`,S8=` 105;110;112;117;116;58;32;105;110;116;32;97;32;34;69;114;115;116;101;32;90;97;104;108;34; @@ -51451,7 +51451,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;98; -`,k8=` +`,O8=` 105;110;116;32;97;32;61;32;51; @@ -51475,7 +51475,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;98;32;61;32;34;32;43;32;98; -`,S8=` +`,T8=` 105;110;116;91;93;32;107;97;114;116;101;110;32;61;32;110;101;119;32;105;110;116;91;53;93; @@ -51534,7 +51534,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,O8=` +`,A8=` 105;110;116;91;93;32;107;97;114;116;101;110;32;61;32;110;101;119;32;105;110;116;91;53;93; @@ -51593,7 +51593,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,T8=` +`,P8=` 105;110;116;91;93;32;107;97;114;116;101;110;32;61;32;123;50;44;32;51;44;32;53;44;32;55;44;32;56;44;32;49;48;44;32;49;50;44;32;49;51;44;32;49;53;44;32;49;56;44;32;50;48;44;32;50;49;44;32;50;52;44;32;50;55;44;32;51;48;125; @@ -51667,7 +51667,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;86;101;114;103;108;101;105;99;104;101;58;32;34;32;43;32;118;101;114;103;108;101;105;99;104;101; -`,A8=` +`,j8=` 105;110;116;91;93;32;107;97;114;116;101;110;32;61;32;123;55;44;32;51;44;32;49;48;44;32;53;44;32;50;125; @@ -51716,7 +51716,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,P8=` +`,C8=` 105;110;116;91;93;32;107;97;114;116;101;110;32;61;32;123;56;44;32;52;44;32;49;49;44;32;52;44;32;54;125; @@ -51765,7 +51765,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,j8=` +`,_8=` 105;110;116;91;93;32;107;97;114;116;101;110;32;61;32;123;50;44;32;51;44;32;53;44;32;55;44;32;56;44;32;49;48;44;32;49;50;44;32;49;51;44;32;49;53;44;32;49;56;44;32;50;48;44;32;50;49;44;32;50;52;44;32;50;55;44;32;51;48;125; @@ -51823,7 +51823,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;86;101;114;103;108;101;105;99;104;101;58;32;34;32;43;32;118;101;114;103;108;101;105;99;104;101; -`,C8=` +`,Z8=` 105;110;116;91;93;32;112;117;110;107;116;101;32;61;32;123;51;44;32;53;44;32;56;125; @@ -51842,7 +51842,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,_8=` +`,M8=` 105;110;116;91;93;32;112;117;110;107;116;101;32;61;32;123;51;44;32;53;44;32;56;125; @@ -51861,7 +51861,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,Z8=` +`,D8=` 105;110;116;32;105;32;61;32;48; @@ -51874,7 +51874,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,M8=` +`,B8=` 105;110;116;32;122;97;104;108;32;61;32;53; @@ -51898,7 +51898,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;78;97;99;104;104;101;114;58;32;34;32;43;32;114;101;105;104;101;91;48;93;32;43;32;34;44;32;34;32;43;32;114;101;105;104;101;91;49;93; -`,D8=` +`,W8=` 105;110;116;32;105;32;61;32;48; @@ -51911,7 +51911,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,B8=` +`,L8=` 120;32;61;32;120;32;42;32;50; @@ -51920,7 +51920,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;73;109;32;85;110;116;101;114;112;114;111;103;114;97;109;109;58;32;120;32;61;32;34;32;43;32;120; -`,W8=` +`,E8=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;118;111;114;110;97;109;101;32;34;86;111;114;110;97;109;101;34; @@ -51932,7 +51932,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;118;111;114;110;97;109;101;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;32;34;32;43;32;110;97;99;104;110;97;109;101;46;99;104;97;114;65;116;40;48;41;32;43;32;34;46;34; -`,L8=` +`,N8=` 83;116;114;105;110;103;32;119;111;114;116;32;61;32;34;90;105;101;103;101;110;98;111;99;107;34; @@ -51971,7 +51971,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;116;101;120;116; -`,E8=` +`,F8=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;119;111;114;116;32;34;87;111;114;116;32;101;105;110;103;101;98;101;110;34; @@ -51993,7 +51993,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;114;117;101;99;107;119;97;101;114;116;115; -`,N8=` +`,J8=` 83;116;114;105;110;103;32;122;101;105;108;101;32;61;32;34;76;117;100;119;105;103;59;71;101;105;223;98;111;99;107;59;55;34; @@ -52012,7 +52012,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct -`,F8=` +`,G8=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;115;97;116;122;32;34;83;97;116;122;32;101;105;110;103;101;98;101;110;34; @@ -52024,7 +52024,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;87;246;114;116;101;114;58;32;34;32;43;32;119;111;101;114;116;101;114;46;108;101;110;103;116;104; -`,J8=` +`,R8=` 105;110;112;117;116;58;32;83;116;114;105;110;103;32;119;111;114;116;32;34;87;111;114;116;32;101;105;110;103;101;98;101;110;34; @@ -52056,7 +52056,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;34;65;110;122;97;104;108;32;101;58;32;34;32;43;32;97;110;122;97;104;108; -`,G8=` +`,H8=` 83;116;114;105;110;103;32;119;111;114;116;32;61;32;34;71;101;105;223;98;111;99;107;34; @@ -52080,35 +52080,35 @@ lösung: aufgabe-verdoppeln-loesung.visustruct 111;117;116;112;117;116;58;32;119;111;114;116;46;116;111;85;112;112;101;114;67;97;115;101;40;41; -`,R8=""+new URL("aufgabe-mehrwertsteuer-C-TFTrWz.svg",import.meta.url).href,H8=""+new URL("ben-shneiderman-Cev5hrqS.jpg",import.meta.url).href,Q8=""+new URL("caesar-ascii-Bix93F5i.svg",import.meta.url).href,V8=""+new URL("caesar-scheibe-CMRPZI6Y.svg",import.meta.url).href,q8=""+new URL("caesar-verschiebung-DIR-lDbs.svg",import.meta.url).href,U8=""+new URL("aufgabe-mehrwertsteuer-CnrZ00ny.svg",import.meta.url).href,$8=""+new URL("kino-saal-C8zaJk4X.svg",import.meta.url).href,Y8=""+new URL("kino-schleifen-D7sfo9iK.svg",import.meta.url).href,X8="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDkyIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iNDkyIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiPgogICAgPCEtLSBTdGFydCAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjgiIHJ4PSIxNCIgZmlsbD0iI2QxZjJkOSIvPgogICAgPGxpbmUgeDE9IjE1MCIgeTE9IjM4IiB4Mj0iMTUwIiB5Mj0iNTQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gQW53ZWlzdW5nIC0tPgogICAgPHJlY3QgeD0iNTAiIHk9IjU2IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iODYiIHgyPSIxNTAiIHkyPSI5OCIgbWFya2VyLWVuZD0idXJsKCNhKSIvPgogICAgPCEtLSBSYXV0ZSAxIC0tPgogICAgPHBhdGggZD0iTTE1MCAxMDAgTDIzNSAxMjggTDE1MCAxNTYgTDY1IDEyOCBaIiBmaWxsPSIjZmZmNGQ2Ii8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMTU2IiB4Mj0iMTUwIiB5Mj0iMTcyIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8cmVjdCB4PSI1MCIgeT0iMTc0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMjA0IiB4Mj0iMTUwIiB5Mj0iMjUwIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIG5laW4tV2VnIHVtIGRlbiBLYXN0ZW4gaGVydW0gLS0+CiAgICA8cG9seWxpbmUgcG9pbnRzPSIyMzUsMTI4IDI4NSwxMjggMjg1LDIyMiAxNTAsMjIyIiBmaWxsPSJub25lIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIFJhdXRlIDIgLS0+CiAgICA8cGF0aCBkPSJNMTUwIDI1MiBMMjM1IDI4MCBMMTUwIDMwOCBMNjUgMjgwIFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxsaW5lIHgxPSIyMzUiIHkxPSIyODAiIHgyPSIyNjgiIHkyPSIyODAiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjI3MCIgeT0iMjY1IiB3aWR0aD0iMTE1IiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8IS0tIHp1csO8Y2sgenVyIFByw7xmdW5nIC0tPgogICAgPHBvbHlsaW5lIHBvaW50cz0iMzI3LDI2NSAzMjcsMjM4IDE1MCwyMzgiIGZpbGw9Im5vbmUiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzMDgiIHgyPSIxNTAiIHkyPSIzMjYiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjUwIiB5PSIzMjgiIHdpZHRoPSIyMDAiIGhlaWdodD0iMzAiIGZpbGw9IiNlNWYwZmYiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzNTgiIHgyPSIxNTAiIHkyPSIzNzQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gRW5kZSAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMzc2IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjI4IiByeD0iMTQiIGZpbGw9IiNkMWYyZDkiLz4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSI+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI5Ij5TdGFydDwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iNzYiPlB1dCBhIGN1cCBvbiB0aGUgdGFibGU8L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjEzMyI+U3VnYXIgd2FudGVkPzwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTk0Ij5BZGQgc3VnYXI8L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI4NSI+VGVhIHN0aWxsIHRvbyBob3Q/PC90ZXh0PgogICAgPHRleHQgeD0iMzI3LjUiIHk9IjI4NSI+V2FpdCAxIG1pbnV0ZTwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMzQ4Ij5EcmluayB0aGUgdGVhPC90ZXh0PgogICAgPHRleHQgeD0iMTUwIiB5PSIzOTUiPkVuZDwvdGV4dD4KICA8L2c+CiAgPGcgZm9udC1zaXplPSIxMiIgZm9udC13ZWlnaHQ9IjYwMCI+CiAgICA8dGV4dCB4PSIxNTYiIHk9IjE2OCIgZmlsbD0iIzI0OGEzZCI+eWVzPC90ZXh0PgogICAgPHRleHQgeD0iMjQyIiB5PSIxMjIiIGZpbGw9IiNkNzAwMTUiPm5vPC90ZXh0PgogICAgPHRleHQgeD0iMjQwIiB5PSIyNzQiIGZpbGw9IiMyNDhhM2QiPnllczwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1NiIgeT0iMzIwIiBmaWxsPSIjZDcwMDE1Ij5ubzwvdGV4dD4KICA8L2c+CiAgPCEtLSBMZWdlbmRlIC0tPgogIDxsaW5lIHgxPSIxMCIgeTE9IjQxOCIgeDI9IjM5MCIgeTI9IjQxOCIgc3Ryb2tlPSIjZDFkMWQ2Ii8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICA8cmVjdCB4PSI0MCIgeT0iNDMwIiB3aWR0aD0iMzYiIGhlaWdodD0iMTgiIHJ4PSI5IiBmaWxsPSIjZDFmMmQ5Ii8+CiAgICA8cmVjdCB4PSIyMjAiIHk9IjQzMCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjE4IiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8cGF0aCBkPSJNNTggNDU4IEw3NiA0NjkgTDU4IDQ4MCBMNDAgNDY5IFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxwYXRoIGQ9Ik0yMjYgNDYwIEwyNTYgNDYwIEwyNTAgNDc4IEwyMjAgNDc4IFoiIGZpbGw9IiNmMmU2ZmYiLz4KICA8L2c+CiAgPGcgZm9udC1zaXplPSIxMiIgZmlsbD0iIzNhM2EzYyI+CiAgICA8dGV4dCB4PSI4NiIgeT0iNDQzIj5TdGFydCBvciBlbmQ8L3RleHQ+CiAgICA8dGV4dCB4PSIyNjYiIHk9IjQ0MyI+U3RhdGVtZW50PC90ZXh0PgogICAgPHRleHQgeD0iODYiIHk9IjQ3MyI+RGVjaXNpb248L3RleHQ+CiAgICA8dGV4dCB4PSIyNjYiIHk9IjQ3MyI+SW5wdXQgb3Igb3V0cHV0PC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",K8="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE5MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwIiB5PSIyNCIgZm9udC13ZWlnaHQ9IjYwMCI+V2hlcmUgZG9lcyB0aGUgZWxlbWVudCBsYW5kPzwvdGV4dD4KICA8cmVjdCB4PSIyMCIgeT0iNDAiIHdpZHRoPSIxOTAiIGhlaWdodD0iMzUiIGZpbGw9IiNkYmVhZmUiLz4KICA8cmVjdCB4PSIyMCIgeT0iNzUiIHdpZHRoPSIxOTAiIGhlaWdodD0iMzUiIGZpbGw9IiNkY2ZjZTciLz4KICA8bGluZSB4MT0iMjAiIHkxPSI3NSIgeDI9IjIxMCIgeTI9Ijc1IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS1kYXNoYXJyYXk9IjQgMyIvPgogIDxyZWN0IHg9IjIwIiB5PSI0MCIgd2lkdGg9IjE5MCIgaGVpZ2h0PSI3MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIxMTUiIHk9IjYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMWQ0ZWQ4Ij50b3AgaGFsZjwvdGV4dD4KICA8dGV4dCB4PSIxMTUiIHk9Ijk3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMTU4MDNkIj5ib3R0b20gaGFsZjwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9IjYyIj7ihpIgZ29lcyA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+aW4gZnJvbnQ8L3RzcGFuPjwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9Ijk3Ij7ihpIgZ29lcyA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+YWZ0ZXI8L3RzcGFuPjwvdGV4dD4KICA8cmVjdCB4PSIyMCIgeT0iMTMyIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjQwIiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjExNSIgeT0iMTU3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2Ij7DuDwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9IjE1NyI+4oaSIDx0c3BhbiBmb250LXdlaWdodD0iNjAwIj5yZXBsYWNlczwvdHNwYW4+IGl0PC90ZXh0Pgo8L3N2Zz4K",eS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjEwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjIxMCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE2Ij5pbnQgYWdlID0gMTQ8L3RleHQ+CiAgPHBhdGggZD0iTTEzMCA3MCBMMTcwIDUwIEwzMDAgNTAgTDI2MCA3MCBaIiBmaWxsPSIjYzk4YTNjIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxyZWN0IHg9IjE4MCIgeT0iMzQiIHdpZHRoPSI0NCIgaGVpZ2h0PSI1MCIgcng9IjMiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSIyMDIiIHk9IjYwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjIwIiBmb250LXdlaWdodD0iNzAwIj4xNDwvdGV4dD4KICA8cmVjdCB4PSIxMzAiIHk9IjcwIiB3aWR0aD0iMTMwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iI2U5Yjg3MiIgc3Ryb2tlPSIjOGE1YTFmIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBkPSJNMjYwIDcwIEwzMDAgNTAgTDMwMCAxNTAgTDI2MCAxNzAgWiIgZmlsbD0iI2Q0OWE0YyIgc3Ryb2tlPSIjOGE1YTFmIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cmVjdCB4PSIxNTAiIHk9IjEwMCIgd2lkdGg9IjkwIiBoZWlnaHQ9IjMwIiByeD0iNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjOGE1YTFmIi8+CiAgPHRleHQgeD0iMTk1IiB5PSIxMjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPmFnZTwvdGV4dD4KICA8cmVjdCB4PSIxMzgiIHk9IjE0MiIgd2lkdGg9IjM0IiBoZWlnaHQ9IjIwIiByeD0iMTAiIGZpbGw9IiMwMDdhZmYiLz4KICA8dGV4dCB4PSIxNTUiIHk9IjE1NiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMiIgZmlsbD0iI2ZmZmZmZiIgZm9udC13ZWlnaHQ9IjYwMCI+aW50PC90ZXh0PgogIDxnIHN0cm9rZT0iIzZlNmU3MyI+CiAgICA8bGluZSB4MT0iMzEwIiB5MT0iNDgiIHgyPSIyMjYiIHkyPSI1MiIvPgogICAgPGxpbmUgeDE9IjMxMCIgeTE9IjExNSIgeDI9IjI0MiIgeTI9IjExNSIvPgogICAgPGxpbmUgeDE9IjgwIiB5MT0iMTUyIiB4Mj0iMTM0IiB5Mj0iMTUyIi8+CiAgPC9nPgogIDx0ZXh0IHg9IjMxNiIgeT0iNTIiPlZhbHVlPC90ZXh0PgogIDx0ZXh0IHg9IjMxNiIgeT0iMTE5Ij5OYW1lPC90ZXh0PgogIDx0ZXh0IHg9IjgiIHk9IjE1NiI+RGF0YSB0eXBlPC90ZXh0PgogIDx0ZXh0IHg9IjIwMCIgeT0iMTk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5UaGUgbmFtZSBnZXRzIHlvdSB0byB0aGUgdmFsdWUuPC90ZXh0Pgo8L3N2Zz4K",tS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjAwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjAwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjAiPgogICAgPHRleHQgeD0iNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+cG9pbnRzPC90ZXh0PgogICAgPHRleHQgeD0iMTI1IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPj08L3RleHQ+CiAgICA8dGV4dCB4PSIyNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cG9pbnRzICsgNTwvdGV4dD4KICA8L2c+CiAgPHJlY3QgeD0iMTgwIiB5PSI4NiIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjYwIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPuKRoCB3b3JrIG91dCB0aGUgcmlnaHQ6IDEwICsgNSA9IDE1PC90ZXh0PgogIDxwYXRoIGQ9Ik0yNTAgODIgQzIzMCAzMCwgOTAgMzAsIDY0IDg0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDdhZmYiIHN0cm9rZS13aWR0aD0iMi41IiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgPHRleHQgeD0iMTYwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiI+4pGhIHN0b3JlIHRoZSByZXN1bHQgb24gdGhlIGxlZnQ8L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9IjE2NCIgd2lkdGg9IjM2MCIgaGVpZ2h0PSIyNiIgcng9IjYiIGZpbGw9IiNmMmYyZjciLz4KICA8dGV4dCB4PSIyMDAiIHk9IjE4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cG9pbnRzIGJlZm9yZTogPHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiPjEwPC90c3Bhbj4gICDihpIgICBwb2ludHMgYWZ0ZXI6IDx0c3BhbiBmb250LXdlaWdodD0iNzAwIj4xNTwvdHNwYW4+PC90ZXh0Pgo8L3N2Zz4K",nS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjYwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjYwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTQwIDExMCBMNDggMTgwIEwxMDIgMTgwIEwxMTAgMTEwIi8+CiAgICA8cGF0aCBkPSJNMTY1IDExMCBMMTczIDE4MCBMMjI3IDE4MCBMMjM1IDExMCIvPgogICAgPHBhdGggZD0iTTI5MCAxMTAgTDI5OCAxODAgTDM1MiAxODAgTDM2MCAxMTAiLz4KICA8L2c+CiAgPHBhdGggZD0iTTQ0IDEzNSBMNDggMTgwIEwxMDIgMTgwIEwxMDYgMTM1IFoiIGZpbGw9IiNmZGJhNzQiLz4KICA8cGF0aCBkPSJNMjk0IDEzNSBMMjk4IDE4MCBMMzUyIDE4MCBMMzU2IDEzNSBaIiBmaWxsPSIjOTNjNWZkIi8+CiAgPHRleHQgeD0iNzUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+bGVmdDwvdGV4dD4KICA8dGV4dCB4PSI3NSIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5qdWljZTwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+dGVtcDwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+ZW1wdHk8L3RleHQ+CiAgPHRleHQgeD0iMzI1IiB5PSIyMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPnJpZ2h0PC90ZXh0PgogIDx0ZXh0IHg9IjMyNSIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj53YXRlcjwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxwYXRoIGQ9Ik04OCAxMDQgQzExMCA3MCwgMTYwIDcwLCAxODYgMTA0Ii8+CiAgICA8cGF0aCBkPSJNMzE4IDEwNCBDMjcwIDE1LCAxMzAgMTUsIDgyIDEwNCIvPgogICAgPHBhdGggZD0iTTIxNCAxMDQgQzI0MCA3MCwgMjkwIDcwLCAzMTIgMTA0Ii8+CiAgPC9nPgogIDxnIGZvbnQtd2VpZ2h0PSI3MDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgPGNpcmNsZSBjeD0iMTM3IiBjeT0iODAiIHI9IjExIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz48dGV4dCB4PSIxMzciIHk9Ijg1Ij4xPC90ZXh0PgogICAgPGNpcmNsZSBjeD0iMjAwIiBjeT0iMzgiIHI9IjExIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz48dGV4dCB4PSIyMDAiIHk9IjQzIj4yPC90ZXh0PgogICAgPGNpcmNsZSBjeD0iMjYzIiBjeT0iODAiIHI9IjExIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz48dGV4dCB4PSIyNjMiIHk9Ijg1Ij4zPC90ZXh0PgogIDwvZz4KICA8ZyB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxMiI+CiAgICA8dGV4dCB4PSI3MCIgeT0iMjQ3Ij4xOiB0ZW1wID0gbGVmdDwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMjQ3Ij4yOiBsZWZ0ID0gcmlnaHQ8L3RleHQ+CiAgICA8dGV4dCB4PSIzMzAiIHk9IjI0NyI+MzogcmlnaHQgPSB0ZW1wPC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",aS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE1MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDxyZWN0IHg9IjIwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+PHJlY3QgeD0iMzEwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+CiAgPHJlY3QgeD0iOTAiIHk9IjUwIiB3aWR0aD0iMjIwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZGNmY2U3Ii8+CiAgPGxpbmUgeDE9IjIwIiB5MT0iNzQiIHgyPSIzODAiIHkyPSI3NCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8bGluZSB4MT0iNDYiIHkxPSI2OCIgeDI9IjQ2IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iNDYiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4wPC90ZXh0PgogIDxsaW5lIHgxPSI5MCIgeTE9IjY4IiB4Mj0iOTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSI5MCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjE8L3RleHQ+CiAgPGxpbmUgeDE9IjEzNCIgeTE9IjY4IiB4Mj0iMTM0IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMTM0IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MjwvdGV4dD4KICA8bGluZSB4MT0iMTc4IiB5MT0iNjgiIHgyPSIxNzgiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIxNzgiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4zPC90ZXh0PgogIDxsaW5lIHgxPSIyMjIiIHkxPSI2OCIgeDI9IjIyMiIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjIyMiIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjQ8L3RleHQ+CiAgPGxpbmUgeDE9IjI2NiIgeTE9IjY4IiB4Mj0iMjY2IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMjY2IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+NTwvdGV4dD4KICA8bGluZSB4MT0iMzEwIiB5MT0iNjgiIHgyPSIzMTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIzMTAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj42PC90ZXh0PgogIDxsaW5lIHgxPSIzNTQiIHkxPSI2OCIgeDI9IjM1NCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjM1NCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjc8L3RleHQ+CiAgPGNpcmNsZSBjeD0iOTAiIGN5PSI3NCIgcj0iNiIgZmlsbD0iIzE1ODAzZCIvPjxjaXJjbGUgY3g9IjMxMCIgY3k9Ijc0IiByPSI2IiBmaWxsPSIjMTU4MDNkIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI0MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dmFsaWQ8L3RleHQ+CiAgPHRleHQgeD0iNDAiIHk9IjQwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5pbnZhbGlkPC90ZXh0Pjx0ZXh0IHg9IjM2MCIgeT0iNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiIGZvbnQtd2VpZ2h0PSI2MDAiPmludmFsaWQ8L3RleHQ+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgPHRleHQgeD0iMjAwIiB5PSIxMjQiIGZpbGw9IiMxNTgwM2QiPmdyYWRlICZndDs9IDEgJmFtcDsmYW1wOyBncmFkZSAmbHQ7PSA2PC90ZXh0PgogICAgPHRleHQgeD0iMjAwIiB5PSIxNDIiIGZpbGw9IiNiOTFjMWMiPmdyYWRlICZsdDsgMSB8fCBncmFkZSAmZ3Q7IDY8L3RleHQ+CiAgPC9nPgo8L3N2Zz4K",iS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIj5Ib3cgdGhlIHdoaWxlIGxvb3AgcnVuczwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9IjQ0IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjQwIiByeD0iMjAiIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI2OSIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIGNoZWNrIHRoZSBjb25kaXRpb248L3RleHQ+CiAgPHJlY3QgeD0iMTIwIiB5PSIxMjgiIHdpZHRoPSIxNjAiIGhlaWdodD0iNDAiIHJ4PSI2IiBmaWxsPSIjZGJlYWZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMTUzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgcnVuIHRoZSBpbnNpZGU8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iODQiIHgyPSIyMDAiIHkyPSIxMjYiLz4KICAgIDxwYXRoIGQ9Ik0xMjAgMTQ4IEM4MCAxNDgsIDgwIDY0LCAxMTggNjQiLz4KICAgIDxwYXRoIGQ9Ik0yODAgNjQgTDM0MCA2NCBMMzQwIDIwMCBMMjgyIDIwMCIvPgogIDwvZz4KICA8dGV4dCB4PSIyMDgiIHk9IjExMCIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dHJ1ZTwvdGV4dD4KICA8dGV4dCB4PSIzOCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5iYWNrPC90ZXh0PgogIDx0ZXh0IHg9IjM4IiB5PSIxMjYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPnRvIHRoZSB0b3A8L3RleHQ+CiAgPHRleHQgeD0iMzQ4IiB5PSIxMzQiIGZpbGw9IiNiOTFjMWMiIGZvbnQtd2VpZ2h0PSI2MDAiPmZhbHNlPC90ZXh0PgogIDx0ZXh0IHg9IjI3NiIgeT0iMjA1IiB0ZXh0LWFuY2hvcj0iZW5kIj5jb250aW51ZSBiZWxvdyB0aGUgbG9vcDwvdGV4dD4KPC9zdmc+Cg==",sS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+cHJlLXRlc3QgKHdoaWxlKTwvdGV4dD4KICA8dGV4dCB4PSIzMDAiIHk9IjIyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5wb3N0LXRlc3QgKGRvLXdoaWxlKTwvdGV4dD4KICA8bGluZSB4MT0iMjAwIiB5MT0iMTAiIHgyPSIyMDAiIHkyPSIyMjAiIHN0cm9rZT0iI2QxZDFkNiIvPgogIDxyZWN0IHg9IjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjEwMCIgeT0iNjciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoCBjb25kaXRpb248L3RleHQ+CiAgPHJlY3QgeD0iMzUiIHk9IjEyNCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIxNDciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoSBpbnNpZGU8L3RleHQ+CiAgPHJlY3QgeD0iMjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzAwIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIGluc2lkZTwvdGV4dD4KICA8cmVjdCB4PSIyMzUiIHk9IjEyNCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjMwMCIgeT0iMTQ3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgY29uZGl0aW9uPC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjYiIG1hcmtlci1lbmQ9InVybCgjYSkiPgogICAgPGxpbmUgeDE9IjEwMCIgeTE9IjgwIiB4Mj0iMTAwIiB5Mj0iMTIyIi8+CiAgICA8cGF0aCBkPSJNMzUgMTQyIEM4IDE0MiwgOCA2MiwgMzMgNjIiLz4KICAgIDxsaW5lIHgxPSIzMDAiIHkxPSI4MCIgeDI9IjMwMCIgeTI9IjEyMiIvPgogICAgPHBhdGggZD0iTTM2NSAxNDIgQzM5MiAxNDIsIDM5MiA2MiwgMzY3IDYyIi8+CiAgPC9nPgogIDx0ZXh0IHg9IjEwNiIgeT0iMTA2IiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjM4MCIgeT0iMTA2IiB0ZXh0LWFuY2hvcj0iZW5kIiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5JZiB0aGUgY29uZGl0aW9uIGlzIGZhbHNlIGF0IG9uY2UsPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMjA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj50aGUgaW5zaWRlIHJ1bnMgPHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPm5ldmVyPC90c3Bhbj4uPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5UaGUgaW5zaWRlIGFsd2F5cyBydW5zPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMjA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj48dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+YXQgbGVhc3Qgb25jZTwvdHNwYW4+LjwvdGV4dD4KPC9zdmc+Cg==",rS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjUwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTIwIiB5PSIxNCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIFN0YXJ0IDx0c3BhbiBmaWxsPSIjNmU2ZTczIj4ob25seSBvbmNlKTwvdHNwYW4+PC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iNzYiIHdpZHRoPSIxNjAiIGhlaWdodD0iMzQiIHJ4PSIxNyIgZmlsbD0iI2ZlZjNjNyIgc3Ryb2tlPSIjYjQ1MzA5IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgY2hlY2sgdGhlIGNvbmRpdGlvbjwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9IjEzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIxNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoiBydW4gdGhlIGluc2lkZTwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9IjIwMCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIyMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoyBzdGVwLCBlLmcuIGkrKzwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMDAiIHkxPSI0OCIgeDI9IjIwMCIgeTI9Ijc0Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTEwIiB4Mj0iMjAwIiB5Mj0iMTM2Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTcyIiB4Mj0iMjAwIiB5Mj0iMTk4Ii8+CiAgICA8cGF0aCBkPSJNMTIwIDIxNyBDNjAgMjE3LCA2MCA5MywgMTE4IDkzIi8+CiAgICA8cGF0aCBkPSJNMjgwIDkzIEwzMzAgOTMiLz4KICA8L2c+CiAgPHRleHQgeD0iMjA4IiB5PSIxMjkiIGZpbGw9IiMxNTgwM2QiIGZvbnQtd2VpZ2h0PSI2MDAiPnRydWU8L3RleHQ+CiAgPHRleHQgeD0iNDgiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+YmFjazwvdGV4dD4KICA8dGV4dCB4PSI0OCIgeT0iMTc2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj50byDikaE8L3RleHQ+CiAgPHRleHQgeD0iMzAwIiB5PSI4NCIgZmlsbD0iI2I5MWMxYyIgZm9udC13ZWlnaHQ9IjYwMCI+ZmFsc2U8L3RleHQ+CiAgPHRleHQgeD0iMzM2IiB5PSI5OCI+ZG9uZTwvdGV4dD4KPC9zdmc+Cg==",oS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMTkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNCI+aW50W10gbnVtYmVycyA9IHsyLCA0LCA2LCA4LCAxMH08L3RleHQ+CiAgPHRleHQgeD0iMjAiIHk9IjU0IiBmaWxsPSIjNmU2ZTczIiBmb250LXNpemU9IjEyIj5JbmRleDwvdGV4dD4KICA8dGV4dCB4PSI5MCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjA8L3RleHQ+PHJlY3QgeD0iNjAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iOTAiIHk9IjkyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNjAwIj4yPC90ZXh0PgogIDx0ZXh0IHg9IjE1MCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjE8L3RleHQ+PHJlY3QgeD0iMTIwIiB5PSI2MiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjE1MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjQ8L3RleHQ+CiAgPHRleHQgeD0iMjEwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MjwvdGV4dD48cmVjdCB4PSIxODAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMjEwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+NjwvdGV4dD4KICA8dGV4dCB4PSIyNzAiIHk9IjU0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWZmIiBmb250LXdlaWdodD0iNzAwIj4zPC90ZXh0PjxyZWN0IHg9IjI0MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIyNzAiIHk9IjkyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNjAwIj44PC90ZXh0PgogIDx0ZXh0IHg9IjMzMCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjQ8L3RleHQ+PHJlY3QgeD0iMzAwIiB5PSI2MiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjMzMCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjEwPC90ZXh0PgogIDx0ZXh0IHg9IjIwIiB5PSI5MCIgZmlsbD0iIzZlNmU3MyIgZm9udC1zaXplPSIxMiI+VmFsdWU8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDA3YWZmIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+PGxpbmUgeDE9IjkwIiB5MT0iMTQwIiB4Mj0iOTAiIHkyPSIxMTIiLz48bGluZSB4MT0iMzMwIiB5MT0iMTQwIiB4Mj0iMzMwIiB5Mj0iMTEyIi8+PC9nPgogIDxnIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXNpemU9IjEzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj48dGV4dCB4PSI5MCIgeT0iMTU2Ij5udW1iZXJzWzBdIGlzIDI8L3RleHQ+PHRleHQgeD0iMzMwIiB5PSIxNTYiPm51bWJlcnNbNF0gaXMgMTA8L3RleHQ+PC9nPgogIDx0ZXh0IHg9IjIwMCIgeT0iMTgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj41IHNsb3RzLCBjb3VudGluZyBzdGFydHMgYXQgMDogdGhlIGxhc3QgaW5kZXggaXMgNC48L3RleHQ+Cjwvc3ZnPgo=",lS=""+new URL("mvc-klick-BIA_bYzu.svg",import.meta.url).href,uS=""+new URL("ss-binaere-suche-D02W1TH_.svg",import.meta.url).href,mS=""+new URL("ss-bubblesort-CmKEoNfO.svg",import.meta.url).href,cS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDQgMTk2IiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KPHJlY3Qgd2lkdGg9IjQwNCIgaGVpZ2h0PSIxOTYiIGZpbGw9IiNmZmZmZmYiLz4KPHRleHQgeD0iMTQiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIiBmb250LXNpemU9IjE1Ij5Mb29raW5nIGZvciB0aGUgOS4gVGhlIGNhcmRzIGFyZSBtaXhlZCB1cC48L3RleHQ+CjxnPjxyZWN0IHg9IjE0IiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48dGV4dCB4PSIzNC4wIiB5PSI3NS4yIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjZGMyNjI2Ij43PC90ZXh0Pjx0ZXh0IHg9IjM0LjAiIHk9Ijk1LjkxOTk5OTk5OTk5OTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmaWxsPSIjZGMyNjI2Ij7imaU8L3RleHQ+PC9nPgo8dGV4dCB4PSIzNC4wIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiNkYzI2MjYiPuKclzwvdGV4dD4KPHRleHQgeD0iMzQuMCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj4xLjwvdGV4dD4KPGc+PHJlY3QgeD0iNjIiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjx0ZXh0IHg9IjgyLjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPjM8L3RleHQ+PHRleHQgeD0iODIuMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiMxYzFjMWUiPuKZoDwvdGV4dD48L2c+Cjx0ZXh0IHg9IjgyLjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSI4Mi4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjIuPC90ZXh0Pgo8Zz48cmVjdCB4PSIxMTAiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjx0ZXh0IHg9IjEzMC4wIiB5PSI3NS4yIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjZGMyNjI2Ij4xMDwvdGV4dD48dGV4dCB4PSIxMzAuMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiNkYzI2MjYiPuKZpjwvdGV4dD48L2c+Cjx0ZXh0IHg9IjEzMC4wIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiNkYzI2MjYiPuKclzwvdGV4dD4KPHRleHQgeD0iMTMwLjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+My48L3RleHQ+CjxnPjxyZWN0IHg9IjE1OCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iMTc4LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPjU8L3RleHQ+PHRleHQgeD0iMTc4LjAiIHk9Ijk1LjkxOTk5OTk5OTk5OTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmaWxsPSIjMWMxYzFlIj7imaM8L3RleHQ+PC9nPgo8dGV4dCB4PSIxNzguMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjZGMyNjI2Ij7inJc8L3RleHQ+Cjx0ZXh0IHg9IjE3OC4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjQuPC90ZXh0Pgo8Zz48cmVjdCB4PSIyMDYiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiMxNTgwM2QiIHN0cm9rZS13aWR0aD0iMyIvPjx0ZXh0IHg9IjIyNi4wIiB5PSI3NS4yIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjMWMxYzFlIj45PC90ZXh0Pjx0ZXh0IHg9IjIyNi4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzFjMWMxZSI+4pmgPC90ZXh0PjwvZz4KPHRleHQgeD0iMjI2LjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iIzE1ODAzZCI+4pyTPC90ZXh0Pgo8dGV4dCB4PSIyMjYuMCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj41LjwvdGV4dD4KPGc+PHJlY3QgeD0iMjU0IiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iIzFkNGVkOCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48cmVjdCB4PSIyNTgiIHk9IjU0IiB3aWR0aD0iMzIiIGhlaWdodD0iNDgiIHJ4PSIzIiBmaWxsPSJub25lIiBzdHJva2U9IiM5M2M1ZmQiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSIzIDIiLz48L2c+CjxnPjxyZWN0IHg9IjMwMiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiMxZDRlZDgiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHJlY3QgeD0iMzA2IiB5PSI1NCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjQ4IiByeD0iMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTNjNWZkIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWRhc2hhcnJheT0iMyAyIi8+PC9nPgo8Zz48cmVjdCB4PSIzNTAiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjMWQ0ZWQ4IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjxyZWN0IHg9IjM1NCIgeT0iNTQiIHdpZHRoPSIzMiIgaGVpZ2h0PSI0OCIgcng9IjMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzkzYzVmZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMiIvPjwvZz4KPHRleHQgeD0iMTQiIHk9IjE2OCIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzZlNmU3MyI+VHVybiB0aGVtIG92ZXIgZnJvbSBsZWZ0IHRvIHJpZ2h0OjwvdGV4dD48dGV4dCB4PSIxNCIgeT0iMTg4IiBmb250LXNpemU9IjE1IiBmaWxsPSIjNmU2ZTczIj5BZnRlciA1IGNvbXBhcmlzb25zIHRoZSA5IGlzIGZvdW5kLjwvdGV4dD4KPC9zdmc+Cg==",dS=""+new URL("ss-vergleiche-UczNldcC.svg",import.meta.url).href,hS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MjAgNDUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KPGRlZnM+PG1hcmtlciBpZD0iayIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI5IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNiIgbWFya2VySGVpZ2h0PSI2IiBvcmllbnQ9ImF1dG8iPjxwYXRoIGQ9Ik0wIDAgTDEwIDUgTDAgMTAgWiIgZmlsbD0iIzFjMWMxZSIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9ImIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOSIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjYiIG1hcmtlckhlaWdodD0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCAwIEwxMCA1IEwwIDEwIFoiIGZpbGw9IiMxZDRlZDgiLz48L21hcmtlcj48bWFya2VyIGlkPSJvIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI2IiBtYXJrZXJIZWlnaHQ9IjYiIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjYjQ1MzA5Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB3aWR0aD0iNDIwIiBoZWlnaHQ9IjQ1MCIgZmlsbD0iI2ZmZmZmZiIvPgo8dGV4dCB4PSIxMCIgeT0iMjIiIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiPkNhbGwgYnkgdmFsdWU6IGEgY29weTwvdGV4dD4KPHJlY3QgeD0iMTAiIHk9IjM4IiB3aWR0aD0iMTYwIiBoZWlnaHQ9Ijg2IiByeD0iOCIgZmlsbD0iI2VmZjZmZiIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyMCIgeT0iNTgiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPk1haW4gcHJvZ3JhbTwvdGV4dD4KPHRleHQgeD0iMTYiIHk9Ijk4IiBmb250LXNpemU9IjEyIj5udW1iZXI8L3RleHQ+CjxyZWN0IHg9IjcwIiB5PSI3OCIgd2lkdGg9IjU2IiBoZWlnaHQ9IjMwIiByeD0iNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+Cjx0ZXh0IHg9Ijk4IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+NTwvdGV4dD4KPHJlY3QgeD0iMjUwIiB5PSIzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4NiIgcng9IjgiIGZpbGw9IiNmZmY3ZWQiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjYwIiB5PSI1OCIgZm9udC1zaXplPSIxMyIgZmlsbD0iI2I0NTMwOSI+ZG91YmxlSXQ8L3RleHQ+Cjx0ZXh0IHg9IjI2MCIgeT0iOTgiPng8L3RleHQ+CjxyZWN0IHg9IjI4MCIgeT0iNzgiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMCIgcng9IjQiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8dGV4dCB4PSIzMjAiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj48dHNwYW4gZmlsbD0iIzZlNmU3MyIgdGV4dC1kZWNvcmF0aW9uPSJsaW5lLXRocm91Z2giPjU8L3RzcGFuPiA8dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCI+MTA8L3RzcGFuPjwvdGV4dD4KPGxpbmUgeDE9IjEyOCIgeTE9IjkzIiB4Mj0iMjQ4IiB5Mj0iOTMiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNCIgbWFya2VyLWVuZD0idXJsKCNrKSIvPgo8dGV4dCB4PSIyMTAiIHk9Ijg0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5jb3B5PC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iMTUwIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj54IGJlY29tZXMgMTAsIGJ1dCBudW1iZXIgc3RheXMgNS48L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxNjgiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPkxpa2UgYSBwaG90b2NvcHk6IHdyaXRpbmcgb24gdGhlIGNvcHk8L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxODYiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPmRvZXMgbm90IGNoYW5nZSB0aGUgb3JpZ2luYWwuPC90ZXh0Pgo8bGluZSB4MT0iMTAiIHkxPSIyMDgiIHgyPSI0MTAiIHkyPSIyMDgiIHN0cm9rZT0iI2QxZDFkNiIvPgo8dGV4dCB4PSIxMCIgeT0iMjM2IiBmb250LXNpemU9IjE1IiBmb250LXdlaWdodD0iNzAwIj5DYWxsIGJ5IHJlZmVyZW5jZTogdGhlIHNhbWUgYXJyYXk8L3RleHQ+CjxyZWN0IHg9IjEwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZWZmNmZmIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjIwIiB5PSIyNzIiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPk1haW4gcHJvZ3JhbTwvdGV4dD4KPHRleHQgeD0iMjAiIHk9IjMwMCI+cm93PC90ZXh0Pgo8Y2lyY2xlIGN4PSIxNTAiIGN5PSIyOTUiIHI9IjUiIGZpbGw9IiMxZDRlZDgiLz4KPHJlY3QgeD0iMjUwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZmZmN2VkIiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjI2MCIgeT0iMjcyIiBmb250LXNpemU9IjEzIiBmaWxsPSIjYjQ1MzA5Ij5jbGVhcjwvdGV4dD4KPHRleHQgeD0iMjYwIiB5PSIzMDAiPnNlYXRzPC90ZXh0Pgo8Y2lyY2xlIGN4PSIzOTAiIGN5PSIyOTUiIHI9IjUiIGZpbGw9IiNiNDUzMDkiLz4KPHBhdGggZD0iTTE1MCAzMDAgTDE1MCAzNDAgTDE0MCAzNTIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIxLjUiIG1hcmtlci1lbmQ9InVybCgjYikiLz4KPHBhdGggZD0iTTM5MCAzMDAgTDM5MCAzNDAgTDMyMiAzNTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiIG1hcmtlci1lbmQ9InVybCgjbykiLz4KPHJlY3QgeD0iOTAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHJlY3QgeD0iMTUwIiB5PSIzNTgiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+CjxyZWN0IHg9IjIxMCIgeT0iMzU4IiB3aWR0aD0iNjAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8cmVjdCB4PSIyNzAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHRleHQgeD0iMTIwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIxODAiIHk9IjM3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+ZmFsc2U8L3RleHQ+Cjx0ZXh0IHg9IjI0MCIgeT0iMzc5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5mYWxzZTwvdGV4dD4KPHRleHQgeD0iMzAwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iNDE2IiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj5UaGVyZSBpcyBvbmx5IG9uZSBhcnJheS4gV2hhdCBjbGVhciBjaGFuZ2VzIHRocm91Z2ggc2VhdHMsPC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iNDM0IiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj50aGUgbWFpbiBwcm9ncmFtIHNlZXMgdW5kZXIgcm93LjwvdGV4dD4KPC9zdmc+Cg==",gS=""+new URL("zk-zeichen-CgUEhNoK.svg",import.meta.url).href,pS=""+new URL("ike-nassi-D2w47gvX.jpg",import.meta.url).href,fS=""+new URL("kino-saal-CYMOok4_.svg",import.meta.url).href,xS=""+new URL("kino-schleifen-DrTQV7dq.svg",import.meta.url).href,bS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDkyIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iNDkyIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiPgogICAgPCEtLSBTdGFydCAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjgiIHJ4PSIxNCIgZmlsbD0iI2QxZjJkOSIvPgogICAgPGxpbmUgeDE9IjE1MCIgeTE9IjM4IiB4Mj0iMTUwIiB5Mj0iNTQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gQW53ZWlzdW5nIC0tPgogICAgPHJlY3QgeD0iNTAiIHk9IjU2IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iODYiIHgyPSIxNTAiIHkyPSI5OCIgbWFya2VyLWVuZD0idXJsKCNhKSIvPgogICAgPCEtLSBSYXV0ZSAxIC0tPgogICAgPHBhdGggZD0iTTE1MCAxMDAgTDIzNSAxMjggTDE1MCAxNTYgTDY1IDEyOCBaIiBmaWxsPSIjZmZmNGQ2Ii8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMTU2IiB4Mj0iMTUwIiB5Mj0iMTcyIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8cmVjdCB4PSI1MCIgeT0iMTc0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMjA0IiB4Mj0iMTUwIiB5Mj0iMjUwIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIG5laW4tV2VnIHVtIGRlbiBLYXN0ZW4gaGVydW0gLS0+CiAgICA8cG9seWxpbmUgcG9pbnRzPSIyMzUsMTI4IDI4NSwxMjggMjg1LDIyMiAxNTAsMjIyIiBmaWxsPSJub25lIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIFJhdXRlIDIgLS0+CiAgICA8cGF0aCBkPSJNMTUwIDI1MiBMMjM1IDI4MCBMMTUwIDMwOCBMNjUgMjgwIFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxsaW5lIHgxPSIyMzUiIHkxPSIyODAiIHgyPSIyNjgiIHkyPSIyODAiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjI3MCIgeT0iMjY1IiB3aWR0aD0iMTE1IiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8IS0tIHp1csO8Y2sgenVyIFByw7xmdW5nIC0tPgogICAgPHBvbHlsaW5lIHBvaW50cz0iMzI3LDI2NSAzMjcsMjM4IDE1MCwyMzgiIGZpbGw9Im5vbmUiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzMDgiIHgyPSIxNTAiIHkyPSIzMjYiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjUwIiB5PSIzMjgiIHdpZHRoPSIyMDAiIGhlaWdodD0iMzAiIGZpbGw9IiNlNWYwZmYiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzNTgiIHgyPSIxNTAiIHkyPSIzNzQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gRW5kZSAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMzc2IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjI4IiByeD0iMTQiIGZpbGw9IiNkMWYyZDkiLz4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSI+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI5Ij5TdGFydDwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iNzYiPlRhc3NlIGF1ZiBkZW4gVGlzY2ggc3RlbGxlbjwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTMzIj5adWNrZXIgZ2V3w7xuc2NodD88L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjE5NCI+WnVja2VyIGhpbmVpbmdlYmVuPC90ZXh0PgogICAgPHRleHQgeD0iMTUwIiB5PSIyODUiPlRlZSBub2NoIHp1IGhlacOfPzwvdGV4dD4KICAgIDx0ZXh0IHg9IjMyNy41IiB5PSIyODUiPjEgTWludXRlIHdhcnRlbjwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMzQ4Ij5UZWUgdHJpbmtlbjwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMzk1Ij5FbmRlPC90ZXh0PgogIDwvZz4KICA8ZyBmb250LXNpemU9IjEyIiBmb250LXdlaWdodD0iNjAwIj4KICAgIDx0ZXh0IHg9IjE1NiIgeT0iMTY4IiBmaWxsPSIjMjQ4YTNkIj5qYTwvdGV4dD4KICAgIDx0ZXh0IHg9IjI0MiIgeT0iMTIyIiBmaWxsPSIjZDcwMDE1Ij5uZWluPC90ZXh0PgogICAgPHRleHQgeD0iMjQwIiB5PSIyNzQiIGZpbGw9IiMyNDhhM2QiPmphPC90ZXh0PgogICAgPHRleHQgeD0iMTU2IiB5PSIzMjAiIGZpbGw9IiNkNzAwMTUiPm5laW48L3RleHQ+CiAgPC9nPgogIDwhLS0gTGVnZW5kZSAtLT4KICA8bGluZSB4MT0iMTAiIHkxPSI0MTgiIHgyPSIzOTAiIHkyPSI0MTgiIHN0cm9rZT0iI2QxZDFkNiIvPgogIDxnIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjUiPgogICAgPHJlY3QgeD0iNDAiIHk9IjQzMCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjE4IiByeD0iOSIgZmlsbD0iI2QxZjJkOSIvPgogICAgPHJlY3QgeD0iMjIwIiB5PSI0MzAiIHdpZHRoPSIzNiIgaGVpZ2h0PSIxOCIgZmlsbD0iI2U1ZjBmZiIvPgogICAgPHBhdGggZD0iTTU4IDQ1OCBMNzYgNDY5IEw1OCA0ODAgTDQwIDQ2OSBaIiBmaWxsPSIjZmZmNGQ2Ii8+CiAgICA8cGF0aCBkPSJNMjI2IDQ2MCBMMjU2IDQ2MCBMMjUwIDQ3OCBMMjIwIDQ3OCBaIiBmaWxsPSIjZjJlNmZmIi8+CiAgPC9nPgogIDxnIGZvbnQtc2l6ZT0iMTIiIGZpbGw9IiMzYTNhM2MiPgogICAgPHRleHQgeD0iODYiIHk9IjQ0MyI+U3RhcnQgb2RlciBFbmRlPC90ZXh0PgogICAgPHRleHQgeD0iMjY2IiB5PSI0NDMiPkFud2Vpc3VuZzwvdGV4dD4KICAgIDx0ZXh0IHg9Ijg2IiB5PSI0NzMiPlZlcnp3ZWlndW5nPC90ZXh0PgogICAgPHRleHQgeD0iMjY2IiB5PSI0NzMiPkVpbi0gb2RlciBBdXNnYWJlPC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",yS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE5MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwIiB5PSIyNCIgZm9udC13ZWlnaHQ9IjYwMCI+V29oaW4gbGFuZGV0IGRhcyBFbGVtZW50PzwvdGV4dD4KICA8cmVjdCB4PSIyMCIgeT0iNDAiIHdpZHRoPSIxOTAiIGhlaWdodD0iMzUiIGZpbGw9IiNkYmVhZmUiLz4KICA8cmVjdCB4PSIyMCIgeT0iNzUiIHdpZHRoPSIxOTAiIGhlaWdodD0iMzUiIGZpbGw9IiNkY2ZjZTciLz4KICA8bGluZSB4MT0iMjAiIHkxPSI3NSIgeDI9IjIxMCIgeTI9Ijc1IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS1kYXNoYXJyYXk9IjQgMyIvPgogIDxyZWN0IHg9IjIwIiB5PSI0MCIgd2lkdGg9IjE5MCIgaGVpZ2h0PSI3MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIxMTUiIHk9IjYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMWQ0ZWQ4Ij5vYmVyZSBIw6RsZnRlPC90ZXh0PgogIDx0ZXh0IHg9IjExNSIgeT0iOTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPnVudGVyZSBIw6RsZnRlPC90ZXh0PgogIDx0ZXh0IHg9IjIyNCIgeT0iNjIiPuKGkiBrb21tdCA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+ZGF2b3I8L3RzcGFuPjwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9Ijk3Ij7ihpIga29tbXQgPHRzcGFuIGZvbnQtd2VpZ2h0PSI2MDAiPmRhaGludGVyPC90c3Bhbj48L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9IjEzMiIgd2lkdGg9IjE5MCIgaGVpZ2h0PSI0MCIgZmlsbD0iI2ZlZjNjNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIxMTUiIHk9IjE1NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiI+w7g8L3RleHQ+CiAgPHRleHQgeD0iMjI0IiB5PSIxNTciPuKGkiA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+ZXJzZXR6dDwvdHNwYW4+IGRlbiBQbGF0emhhbHRlcjwvdGV4dD4KPC9zdmc+Cg==",vS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjEwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjIxMCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE2Ij5pbnQgYWx0ZXIgPSAxNDwvdGV4dD4KICA8cGF0aCBkPSJNMTMwIDcwIEwxNzAgNTAgTDMwMCA1MCBMMjYwIDcwIFoiIGZpbGw9IiNjOThhM2MiIHN0cm9rZT0iIzhhNWExZiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHJlY3QgeD0iMTgwIiB5PSIzNCIgd2lkdGg9IjQ0IiBoZWlnaHQ9IjUwIiByeD0iMyIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjEuNSIvPgogIDx0ZXh0IHg9IjIwMiIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMjAiIGZvbnQtd2VpZ2h0PSI3MDAiPjE0PC90ZXh0PgogIDxyZWN0IHg9IjEzMCIgeT0iNzAiIHdpZHRoPSIxMzAiIGhlaWdodD0iMTAwIiBmaWxsPSIjZTliODcyIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxwYXRoIGQ9Ik0yNjAgNzAgTDMwMCA1MCBMMzAwIDE1MCBMMjYwIDE3MCBaIiBmaWxsPSIjZDQ5YTRjIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxyZWN0IHg9IjE1MCIgeT0iMTAwIiB3aWR0aD0iOTAiIGhlaWdodD0iMzAiIHJ4PSI0IiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiM4YTVhMWYiLz4KICA8dGV4dCB4PSIxOTUiIHk9IjEyMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+YWx0ZXI8L3RleHQ+CiAgPHJlY3QgeD0iMTM4IiB5PSIxNDIiIHdpZHRoPSIzNCIgaGVpZ2h0PSIyMCIgcng9IjEwIiBmaWxsPSIjMDA3YWZmIi8+CiAgPHRleHQgeD0iMTU1IiB5PSIxNTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTIiIGZpbGw9IiNmZmZmZmYiIGZvbnQtd2VpZ2h0PSI2MDAiPmludDwvdGV4dD4KICA8ZyBzdHJva2U9IiM2ZTZlNzMiPgogICAgPGxpbmUgeDE9IjMxMCIgeTE9IjQ4IiB4Mj0iMjI2IiB5Mj0iNTIiLz4KICAgIDxsaW5lIHgxPSIzMTAiIHkxPSIxMTUiIHgyPSIyNDIiIHkyPSIxMTUiLz4KICAgIDxsaW5lIHgxPSI4MCIgeTE9IjE1MiIgeDI9IjEzNCIgeTI9IjE1MiIvPgogIDwvZz4KICA8dGV4dCB4PSIzMTYiIHk9IjUyIj5XZXJ0PC90ZXh0PgogIDx0ZXh0IHg9IjMxNiIgeT0iMTE5Ij5OYW1lPC90ZXh0PgogIDx0ZXh0IHg9IjgiIHk9IjE1NiI+RGF0ZW50eXA8L3RleHQ+CiAgPHRleHQgeD0iMjAwIiB5PSIxOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPsOcYmVyIGRlbiBOYW1lbiBrb21tc3QgZHUgYW4gZGVuIFdlcnQuPC90ZXh0Pgo8L3N2Zz4K",wS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjAwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjAwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjAiPgogICAgPHRleHQgeD0iNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+cHVua3RlPC90ZXh0PgogICAgPHRleHQgeD0iMTI1IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPj08L3RleHQ+CiAgICA8dGV4dCB4PSIyNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cHVua3RlICsgNTwvdGV4dD4KICA8L2c+CiAgPHJlY3QgeD0iMTgwIiB5PSI4NiIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjYwIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPuKRoCByZWNodHMgYXVzcmVjaG5lbjogMTAgKyA1ID0gMTU8L3RleHQ+CiAgPHBhdGggZD0iTTI1MCA4MiBDMjMwIDMwLCA5MCAzMCwgNjQgODQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwN2FmZiIgc3Ryb2tlLXdpZHRoPSIyLjUiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICA8dGV4dCB4PSIxNjAiIHk9IjM2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWZmIj7ikaEgRXJnZWJuaXMgbGlua3Mgc3BlaWNoZXJuPC90ZXh0PgogIDxyZWN0IHg9IjIwIiB5PSIxNjQiIHdpZHRoPSIzNjAiIGhlaWdodD0iMjYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3Ii8+CiAgPHRleHQgeD0iMjAwIiB5PSIxODIiIHRleHQtYW5jaG9yPSJtaWRkbGUiPnB1bmt0ZSB2b3JoZXI6IDx0c3BhbiBmb250LXdlaWdodD0iNzAwIj4xMDwvdHNwYW4+ICAg4oaSICAgcHVua3RlIG5hY2hoZXI6IDx0c3BhbiBmb250LXdlaWdodD0iNzAwIj4xNTwvdHNwYW4+PC90ZXh0Pgo8L3N2Zz4K",zS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjYwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjYwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTQwIDExMCBMNDggMTgwIEwxMDIgMTgwIEwxMTAgMTEwIi8+CiAgICA8cGF0aCBkPSJNMTY1IDExMCBMMTczIDE4MCBMMjI3IDE4MCBMMjM1IDExMCIvPgogICAgPHBhdGggZD0iTTI5MCAxMTAgTDI5OCAxODAgTDM1MiAxODAgTDM2MCAxMTAiLz4KICA8L2c+CiAgPHBhdGggZD0iTTQ0IDEzNSBMNDggMTgwIEwxMDIgMTgwIEwxMDYgMTM1IFoiIGZpbGw9IiNmZGJhNzQiLz4KICA8cGF0aCBkPSJNMjk0IDEzNSBMMjk4IDE4MCBMMzUyIDE4MCBMMzU2IDEzNSBaIiBmaWxsPSIjOTNjNWZkIi8+CiAgPHRleHQgeD0iNzUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+bGlua3M8L3RleHQ+CiAgPHRleHQgeD0iNzUiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+U2FmdDwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+aGlsZjwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+bGVlcjwvdGV4dD4KICA8dGV4dCB4PSIzMjUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+cmVjaHRzPC90ZXh0PgogIDx0ZXh0IHg9IjMyNSIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5XYXNzZXI8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8cGF0aCBkPSJNODggMTA0IEMxMTAgNzAsIDE2MCA3MCwgMTg2IDEwNCIvPgogICAgPHBhdGggZD0iTTMxOCAxMDQgQzI3MCAxNSwgMTMwIDE1LCA4MiAxMDQiLz4KICAgIDxwYXRoIGQ9Ik0yMTQgMTA0IEMyNDAgNzAsIDI5MCA3MCwgMzEyIDEwNCIvPgogIDwvZz4KICA8ZyBmb250LXdlaWdodD0iNzAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4KICAgIDxjaXJjbGUgY3g9IjEzNyIgY3k9IjgwIiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMTM3IiB5PSI4NSI+MTwvdGV4dD4KICAgIDxjaXJjbGUgY3g9IjIwMCIgY3k9IjM4IiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMjAwIiB5PSI0MyI+MjwvdGV4dD4KICAgIDxjaXJjbGUgY3g9IjI2MyIgY3k9IjgwIiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMjYzIiB5PSI4NSI+MzwvdGV4dD4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTIiPgogICAgPHRleHQgeD0iNzAiIHk9IjI0NyI+MTogaGlsZiA9IGxpbmtzPC90ZXh0PgogICAgPHRleHQgeD0iMjAwIiB5PSIyNDciPjI6IGxpbmtzID0gcmVjaHRzPC90ZXh0PgogICAgPHRleHQgeD0iMzMwIiB5PSIyNDciPjM6IHJlY2h0cyA9IGhpbGY8L3RleHQ+CiAgPC9nPgo8L3N2Zz4K",IS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE1MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDxyZWN0IHg9IjIwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+PHJlY3QgeD0iMzEwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+CiAgPHJlY3QgeD0iOTAiIHk9IjUwIiB3aWR0aD0iMjIwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZGNmY2U3Ii8+CiAgPGxpbmUgeDE9IjIwIiB5MT0iNzQiIHgyPSIzODAiIHkyPSI3NCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8bGluZSB4MT0iNDYiIHkxPSI2OCIgeDI9IjQ2IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iNDYiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4wPC90ZXh0PgogIDxsaW5lIHgxPSI5MCIgeTE9IjY4IiB4Mj0iOTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSI5MCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjE8L3RleHQ+CiAgPGxpbmUgeDE9IjEzNCIgeTE9IjY4IiB4Mj0iMTM0IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMTM0IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MjwvdGV4dD4KICA8bGluZSB4MT0iMTc4IiB5MT0iNjgiIHgyPSIxNzgiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIxNzgiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4zPC90ZXh0PgogIDxsaW5lIHgxPSIyMjIiIHkxPSI2OCIgeDI9IjIyMiIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjIyMiIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjQ8L3RleHQ+CiAgPGxpbmUgeDE9IjI2NiIgeTE9IjY4IiB4Mj0iMjY2IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMjY2IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+NTwvdGV4dD4KICA8bGluZSB4MT0iMzEwIiB5MT0iNjgiIHgyPSIzMTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIzMTAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj42PC90ZXh0PgogIDxsaW5lIHgxPSIzNTQiIHkxPSI2OCIgeDI9IjM1NCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjM1NCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjc8L3RleHQ+CiAgPGNpcmNsZSBjeD0iOTAiIGN5PSI3NCIgcj0iNiIgZmlsbD0iIzE1ODAzZCIvPjxjaXJjbGUgY3g9IjMxMCIgY3k9Ijc0IiByPSI2IiBmaWxsPSIjMTU4MDNkIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI0MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+Z8O8bHRpZzwvdGV4dD4KICA8dGV4dCB4PSI0MCIgeT0iNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiIGZvbnQtd2VpZ2h0PSI2MDAiPnVuZ8O8bHRpZzwvdGV4dD48dGV4dCB4PSIzNjAiIHk9IjQwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj51bmfDvGx0aWc8L3RleHQ+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgPHRleHQgeD0iMjAwIiB5PSIxMjQiIGZpbGw9IiMxNTgwM2QiPm5vdGUgJmd0Oz0gMSAmYW1wOyZhbXA7IG5vdGUgJmx0Oz0gNjwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMTQyIiBmaWxsPSIjYjkxYzFjIj5ub3RlICZsdDsgMSB8fCBub3RlICZndDsgNjwvdGV4dD4KICA8L2c+Cjwvc3ZnPgo=",kS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMTkwIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzFjMWMxZSI+CiAgPHJlY3Qgd2lkdGg9IjQ0MCIgaGVpZ2h0PSIxOTAiIGZpbGw9IiNmZmZmZmYiLz4KICA8cmVjdCB4PSIyMCIgeT0iMTQiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iNjAuMCIgeT0iMzUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI3MDAiPmE8L3RleHQ+CiAgPHJlY3QgeD0iMTAwIiB5PSIxNCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIxNDAuMCIgeT0iMzUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI3MDAiPmI8L3RleHQ+CiAgPHJlY3QgeD0iMTgwIiB5PSIxNCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIyMjAuMCIgeT0iMzUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI3MDAiPmEgJmFtcDsmYW1wOyBiPC90ZXh0PgogIDxyZWN0IHg9IjI2MCIgeT0iMTQiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMzAwLjAiIHk9IjM1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNzAwIj5hIHx8IGI8L3RleHQ+CiAgPHJlY3QgeD0iMzQwIiB5PSIxNCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIzODAuMCIgeT0iMzUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI3MDAiPiFhPC90ZXh0PgogIDxyZWN0IHg9IjIwIiB5PSI0NiIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSI2MC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIxMDAiIHk9IjQ2IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjE0MC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIxODAiIHk9IjQ2IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjIyMC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIyNjAiIHk9IjQ2IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjMwMC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIzNDAiIHk9IjQ2IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjM4MC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9Ijc4IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjYwLjAiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMTU4MDNkIj50cnVlPC90ZXh0PgogIDxyZWN0IHg9IjEwMCIgeT0iNzgiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMTQwLjAiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIj5mYWxzZTwvdGV4dD4KICA8cmVjdCB4PSIxODAiIHk9Ijc4IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjIyMC4wIiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMjYwIiB5PSI3OCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIzMDAuMCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPnRydWU8L3RleHQ+CiAgPHJlY3QgeD0iMzQwIiB5PSI3OCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmVlMmUyIiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIzODAuMCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiPmZhbHNlPC90ZXh0PgogIDxyZWN0IHg9IjIwIiB5PSIxMTAiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iNjAuMCIgeT0iMTMxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIj5mYWxzZTwvdGV4dD4KICA8cmVjdCB4PSIxMDAiIHk9IjExMCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIxNDAuMCIgeT0iMTMxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMTU4MDNkIj50cnVlPC90ZXh0PgogIDxyZWN0IHg9IjE4MCIgeT0iMTEwIiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjIyMC4wIiB5PSIxMzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiPmZhbHNlPC90ZXh0PgogIDxyZWN0IHg9IjI2MCIgeT0iMTEwIiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjMwMC4wIiB5PSIxMzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPnRydWU8L3RleHQ+CiAgPHJlY3QgeD0iMzQwIiB5PSIxMTAiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2RjZmNlNyIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMzgwLjAiIHk9IjEzMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIyMCIgeT0iMTQyIiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjYwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMTAwIiB5PSIxNDIiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMTQwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMTgwIiB5PSIxNDIiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMjIwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMjYwIiB5PSIxNDIiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMzAwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMzQwIiB5PSIxNDIiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2RjZmNlNyIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMzgwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8bGluZSB4MT0iMTgwIiB5MT0iMTQiIHgyPSIxODAiIHkyPSIxNzQiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIzIi8+Cjwvc3ZnPgo=",SS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIj5BYmxhdWYgZGVyIFdoaWxlLVNjaGxlaWZlPC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iNDQiIHdpZHRoPSIxNjAiIGhlaWdodD0iNDAiIHJ4PSIyMCIgZmlsbD0iI2ZlZjNjNyIgc3Ryb2tlPSIjYjQ1MzA5IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9IjY5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaAgQmVkaW5ndW5nIHByw7xmZW48L3RleHQ+CiAgPHJlY3QgeD0iMTIwIiB5PSIxMjgiIHdpZHRoPSIxNjAiIGhlaWdodD0iNDAiIHJ4PSI2IiBmaWxsPSIjZGJlYWZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMTUzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgSW5oYWx0IGF1c2bDvGhyZW48L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iODQiIHgyPSIyMDAiIHkyPSIxMjYiLz4KICAgIDxwYXRoIGQ9Ik0xMjAgMTQ4IEM4MCAxNDgsIDgwIDY0LCAxMTggNjQiLz4KICAgIDxwYXRoIGQ9Ik0yODAgNjQgTDM0MCA2NCBMMzQwIDIwMCBMMjgyIDIwMCIvPgogIDwvZz4KICA8dGV4dCB4PSIyMDgiIHk9IjExMCIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dHJ1ZTwvdGV4dD4KICA8dGV4dCB4PSIzOCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj53aWVkZXI8L3RleHQ+CiAgPHRleHQgeD0iMzgiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+bmFjaCBvYmVuPC90ZXh0PgogIDx0ZXh0IHg9IjM0OCIgeT0iMTM0IiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5mYWxzZTwvdGV4dD4KICA8dGV4dCB4PSIyNzYiIHk9IjIwNSIgdGV4dC1hbmNob3I9ImVuZCI+d2VpdGVyIHVudGVyIGRlciBTY2hsZWlmZTwvdGV4dD4KPC9zdmc+Cg==",OS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+a29wZmdlc3RldWVydCAoV2hpbGUpPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPmZ1w59nZXN0ZXVlcnQgKERvLXdoaWxlKTwvdGV4dD4KICA8bGluZSB4MT0iMjAwIiB5MT0iMTAiIHgyPSIyMDAiIHkyPSIyMjAiIHN0cm9rZT0iI2QxZDFkNiIvPgogIDxyZWN0IHg9IjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjEwMCIgeT0iNjciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoCBCZWRpbmd1bmc8L3RleHQ+CiAgPHJlY3QgeD0iMzUiIHk9IjEyNCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIxNDciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoSBJbmhhbHQ8L3RleHQ+CiAgPHJlY3QgeD0iMjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzAwIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIEluaGFsdDwvdGV4dD4KICA8cmVjdCB4PSIyMzUiIHk9IjEyNCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjMwMCIgeT0iMTQ3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgQmVkaW5ndW5nPC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjYiIG1hcmtlci1lbmQ9InVybCgjYSkiPgogICAgPGxpbmUgeDE9IjEwMCIgeTE9IjgwIiB4Mj0iMTAwIiB5Mj0iMTIyIi8+CiAgICA8cGF0aCBkPSJNMzUgMTQyIEM4IDE0MiwgOCA2MiwgMzMgNjIiLz4KICAgIDxsaW5lIHgxPSIzMDAiIHkxPSI4MCIgeDI9IjMwMCIgeTI9IjEyMiIvPgogICAgPHBhdGggZD0iTTM2NSAxNDIgQzM5MiAxNDIsIDM5MiA2MiwgMzY3IDYyIi8+CiAgPC9nPgogIDx0ZXh0IHg9IjEwNiIgeT0iMTA2IiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjM4MCIgeT0iMTA2IiB0ZXh0LWFuY2hvcj0iZW5kIiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5Jc3QgZGllIEJlZGluZ3VuZyBnbGVpY2ggZmFsc2UsPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMjA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5sw6R1ZnQgZGVyIEluaGFsdCA8dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+bmllPC90c3Bhbj4uPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5EZXIgSW5oYWx0IGzDpHVmdCBpbW1lcjwvdGV4dD4KICA8dGV4dCB4PSIzMDAiIHk9IjIwNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+PHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPm1pbmRlc3RlbnMgZWlubWFsPC90c3Bhbj4uPC90ZXh0Pgo8L3N2Zz4K",TS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjUwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTIwIiB5PSIxNCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIFN0YXJ0IDx0c3BhbiBmaWxsPSIjNmU2ZTczIj4obnVyIGVpbm1hbCk8L3RzcGFuPjwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9Ijc2IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjM0IiByeD0iMTciIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGhIEJlZGluZ3VuZyBwcsO8ZmVuPC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iMTM4IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjM0IiByeD0iNiIgZmlsbD0iI2RiZWFmZSIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGiIEluaGFsdCBhdXNmw7xocmVuPC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iMjAwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjM0IiByeD0iNiIgZmlsbD0iI2RjZmNlNyIgc3Ryb2tlPSIjMTU4MDNkIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9IjIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGjIFNjaHJpdHQsIHouIEIuIGkrKzwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMDAiIHkxPSI0OCIgeDI9IjIwMCIgeTI9Ijc0Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTEwIiB4Mj0iMjAwIiB5Mj0iMTM2Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTcyIiB4Mj0iMjAwIiB5Mj0iMTk4Ii8+CiAgICA8cGF0aCBkPSJNMTIwIDIxNyBDNjAgMjE3LCA2MCA5MywgMTE4IDkzIi8+CiAgICA8cGF0aCBkPSJNMjgwIDkzIEwzMzAgOTMiLz4KICA8L2c+CiAgPHRleHQgeD0iMjA4IiB5PSIxMjkiIGZpbGw9IiMxNTgwM2QiIGZvbnQtd2VpZ2h0PSI2MDAiPnRydWU8L3RleHQ+CiAgPHRleHQgeD0iNDgiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+enVyw7xjazwvdGV4dD4KICA8dGV4dCB4PSI0OCIgeT0iMTc2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj56dSDikaE8L3RleHQ+CiAgPHRleHQgeD0iMzAwIiB5PSI4NCIgZmlsbD0iI2I5MWMxYyIgZm9udC13ZWlnaHQ9IjYwMCI+ZmFsc2U8L3RleHQ+CiAgPHRleHQgeD0iMzM2IiB5PSI5OCI+ZmVydGlnPC90ZXh0Pgo8L3N2Zz4K",AS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMTkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNCI+aW50W10gemFobGVuID0gezIsIDQsIDYsIDgsIDEwfTwvdGV4dD4KICA8dGV4dCB4PSIyMCIgeT0iNTQiIGZpbGw9IiM2ZTZlNzMiIGZvbnQtc2l6ZT0iMTIiPkluZGV4PC90ZXh0PgogIDx0ZXh0IHg9IjkwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MDwvdGV4dD48cmVjdCB4PSI2MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSI5MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjI8L3RleHQ+CiAgPHRleHQgeD0iMTUwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MTwvdGV4dD48cmVjdCB4PSIxMjAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMTUwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+NDwvdGV4dD4KICA8dGV4dCB4PSIyMTAiIHk9IjU0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWZmIiBmb250LXdlaWdodD0iNzAwIj4yPC90ZXh0PjxyZWN0IHg9IjE4MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIyMTAiIHk9IjkyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNjAwIj42PC90ZXh0PgogIDx0ZXh0IHg9IjI3MCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjM8L3RleHQ+PHJlY3QgeD0iMjQwIiB5PSI2MiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjI3MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjg8L3RleHQ+CiAgPHRleHQgeD0iMzMwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+NDwvdGV4dD48cmVjdCB4PSIzMDAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMzMwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+MTA8L3RleHQ+CiAgPHRleHQgeD0iMjAiIHk9IjkwIiBmaWxsPSIjNmU2ZTczIiBmb250LXNpemU9IjEyIj5XZXJ0PC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwN2FmZiIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgjYSkiPjxsaW5lIHgxPSI5MCIgeTE9IjE0MCIgeDI9IjkwIiB5Mj0iMTEyIi8+PGxpbmUgeDE9IjMzMCIgeTE9IjE0MCIgeDI9IjMzMCIgeTI9IjExMiIvPjwvZz4KICA8ZyBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxMyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+PHRleHQgeD0iOTAiIHk9IjE1NiI+emFobGVuWzBdIGlzdCAyPC90ZXh0Pjx0ZXh0IHg9IjMzMCIgeT0iMTU2Ij56YWhsZW5bNF0gaXN0IDEwPC90ZXh0PjwvZz4KICA8dGV4dCB4PSIyMDAiIHk9IjE4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+NSBGw6RjaGVyLCBnZXrDpGhsdCB3aXJkIGFiIDA6IGRlciBsZXR6dGUgSW5kZXggaXN0IDQuPC90ZXh0Pgo8L3N2Zz4K",PS=""+new URL("mvc-klick-KmFKqxH-.svg",import.meta.url).href,jS=""+new URL("aufgabe-mehrwertsteuer-KUkerRBd.svg",import.meta.url).href,CS=""+new URL("kino-saal-BOvcmdzb.svg",import.meta.url).href,_S=""+new URL("kino-schleifen-Ci9yPnbo.svg",import.meta.url).href,ZS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDkyIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iNDkyIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiPgogICAgPCEtLSBTdGFydCAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjgiIHJ4PSIxNCIgZmlsbD0iI2QxZjJkOSIvPgogICAgPGxpbmUgeDE9IjE1MCIgeTE9IjM4IiB4Mj0iMTUwIiB5Mj0iNTQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gQW53ZWlzdW5nIC0tPgogICAgPHJlY3QgeD0iNTAiIHk9IjU2IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iODYiIHgyPSIxNTAiIHkyPSI5OCIgbWFya2VyLWVuZD0idXJsKCNhKSIvPgogICAgPCEtLSBSYXV0ZSAxIC0tPgogICAgPHBhdGggZD0iTTE1MCAxMDAgTDIzNSAxMjggTDE1MCAxNTYgTDY1IDEyOCBaIiBmaWxsPSIjZmZmNGQ2Ii8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMTU2IiB4Mj0iMTUwIiB5Mj0iMTcyIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8cmVjdCB4PSI1MCIgeT0iMTc0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMjA0IiB4Mj0iMTUwIiB5Mj0iMjUwIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIG5laW4tV2VnIHVtIGRlbiBLYXN0ZW4gaGVydW0gLS0+CiAgICA8cG9seWxpbmUgcG9pbnRzPSIyMzUsMTI4IDI4NSwxMjggMjg1LDIyMiAxNTAsMjIyIiBmaWxsPSJub25lIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIFJhdXRlIDIgLS0+CiAgICA8cGF0aCBkPSJNMTUwIDI1MiBMMjM1IDI4MCBMMTUwIDMwOCBMNjUgMjgwIFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxsaW5lIHgxPSIyMzUiIHkxPSIyODAiIHgyPSIyNjgiIHkyPSIyODAiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjI3MCIgeT0iMjY1IiB3aWR0aD0iMTE1IiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8IS0tIHp1csO8Y2sgenVyIFByw7xmdW5nIC0tPgogICAgPHBvbHlsaW5lIHBvaW50cz0iMzI3LDI2NSAzMjcsMjM4IDE1MCwyMzgiIGZpbGw9Im5vbmUiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzMDgiIHgyPSIxNTAiIHkyPSIzMjYiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjUwIiB5PSIzMjgiIHdpZHRoPSIyMDAiIGhlaWdodD0iMzAiIGZpbGw9IiNlNWYwZmYiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzNTgiIHgyPSIxNTAiIHkyPSIzNzQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gRW5kZSAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMzc2IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjI4IiByeD0iMTQiIGZpbGw9IiNkMWYyZDkiLz4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSI+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI5Ij5JbsOtY2lvPC90ZXh0PgogICAgPHRleHQgeD0iMTUwIiB5PSI3NiI+UMO0ciB1bWEgY2jDoXZlbmEgbmEgbWVzYTwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTMzIj5RdWVyIGHDp8O6Y2FyPzwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTk0Ij5KdW50YXIgYcOnw7pjYXI8L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI4NSI+Q2jDoSBtdWl0byBxdWVudGU/PC90ZXh0PgogICAgPHRleHQgeD0iMzI3LjUiIHk9IjI4NSI+RXNwZXJhciAxIG1pbnV0bzwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMzQ4Ij5CZWJlciBvIGNow6E8L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjM5NSI+RmltPC90ZXh0PgogIDwvZz4KICA8ZyBmb250LXNpemU9IjEyIiBmb250LXdlaWdodD0iNjAwIj4KICAgIDx0ZXh0IHg9IjE1NiIgeT0iMTY4IiBmaWxsPSIjMjQ4YTNkIj5zaW08L3RleHQ+CiAgICA8dGV4dCB4PSIyNDIiIHk9IjEyMiIgZmlsbD0iI2Q3MDAxNSI+bsOjbzwvdGV4dD4KICAgIDx0ZXh0IHg9IjI0MCIgeT0iMjc0IiBmaWxsPSIjMjQ4YTNkIj5zaW08L3RleHQ+CiAgICA8dGV4dCB4PSIxNTYiIHk9IjMyMCIgZmlsbD0iI2Q3MDAxNSI+bsOjbzwvdGV4dD4KICA8L2c+CiAgPCEtLSBMZWdlbmRlIC0tPgogIDxsaW5lIHgxPSIxMCIgeTE9IjQxOCIgeDI9IjM5MCIgeTI9IjQxOCIgc3Ryb2tlPSIjZDFkMWQ2Ii8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICA8cmVjdCB4PSI0MCIgeT0iNDMwIiB3aWR0aD0iMzYiIGhlaWdodD0iMTgiIHJ4PSI5IiBmaWxsPSIjZDFmMmQ5Ii8+CiAgICA8cmVjdCB4PSIyMjAiIHk9IjQzMCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjE4IiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8cGF0aCBkPSJNNTggNDU4IEw3NiA0NjkgTDU4IDQ4MCBMNDAgNDY5IFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxwYXRoIGQ9Ik0yMjYgNDYwIEwyNTYgNDYwIEwyNTAgNDc4IEwyMjAgNDc4IFoiIGZpbGw9IiNmMmU2ZmYiLz4KICA8L2c+CiAgPGcgZm9udC1zaXplPSIxMiIgZmlsbD0iIzNhM2EzYyI+CiAgICA8dGV4dCB4PSI4NiIgeT0iNDQzIj5JbsOtY2lvIG91IGZpbTwvdGV4dD4KICAgIDx0ZXh0IHg9IjI2NiIgeT0iNDQzIj5JbnN0cnXDp8OjbzwvdGV4dD4KICAgIDx0ZXh0IHg9Ijg2IiB5PSI0NzMiPkRlY2lzw6NvPC90ZXh0PgogICAgPHRleHQgeD0iMjY2IiB5PSI0NzMiPkVudHJhZGEgb3Ugc2HDrWRhPC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",MS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE5MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwIiB5PSIyNCIgZm9udC13ZWlnaHQ9IjYwMCI+T25kZSBmaWNhIG8gZWxlbWVudG8/PC90ZXh0PgogIDxyZWN0IHg9IjIwIiB5PSI0MCIgd2lkdGg9IjE5MCIgaGVpZ2h0PSIzNSIgZmlsbD0iI2RiZWFmZSIvPgogIDxyZWN0IHg9IjIwIiB5PSI3NSIgd2lkdGg9IjE5MCIgaGVpZ2h0PSIzNSIgZmlsbD0iI2RjZmNlNyIvPgogIDxsaW5lIHgxPSIyMCIgeTE9Ijc1IiB4Mj0iMjEwIiB5Mj0iNzUiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLWRhc2hhcnJheT0iNCAzIi8+CiAgPHJlY3QgeD0iMjAiIHk9IjQwIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjcwIiBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjExNSIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxZDRlZDgiPm1ldGFkZSBkZSBjaW1hPC90ZXh0PgogIDx0ZXh0IHg9IjExNSIgeT0iOTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPm1ldGFkZSBkZSBiYWl4bzwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9IjYyIj7ihpIgZmljYSA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+YW50ZXM8L3RzcGFuPjwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9Ijk3Ij7ihpIgZmljYSA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+ZGVwb2lzPC90c3Bhbj48L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9IjEzMiIgd2lkdGg9IjE5MCIgaGVpZ2h0PSI0MCIgZmlsbD0iI2ZlZjNjNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIxMTUiIHk9IjE1NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiI+w7g8L3RleHQ+CiAgPHRleHQgeD0iMjI0IiB5PSIxNTciPuKGkiA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+c3Vic3RpdHVpLW88L3RzcGFuPjwvdGV4dD4KPC9zdmc+Cg==",DS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjEwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjIxMCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE2Ij5pbnQgaWRhZGUgPSAxNDwvdGV4dD4KICA8cGF0aCBkPSJNMTMwIDcwIEwxNzAgNTAgTDMwMCA1MCBMMjYwIDcwIFoiIGZpbGw9IiNjOThhM2MiIHN0cm9rZT0iIzhhNWExZiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHJlY3QgeD0iMTgwIiB5PSIzNCIgd2lkdGg9IjQ0IiBoZWlnaHQ9IjUwIiByeD0iMyIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjEuNSIvPgogIDx0ZXh0IHg9IjIwMiIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMjAiIGZvbnQtd2VpZ2h0PSI3MDAiPjE0PC90ZXh0PgogIDxyZWN0IHg9IjEzMCIgeT0iNzAiIHdpZHRoPSIxMzAiIGhlaWdodD0iMTAwIiBmaWxsPSIjZTliODcyIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxwYXRoIGQ9Ik0yNjAgNzAgTDMwMCA1MCBMMzAwIDE1MCBMMjYwIDE3MCBaIiBmaWxsPSIjZDQ5YTRjIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxyZWN0IHg9IjE1MCIgeT0iMTAwIiB3aWR0aD0iOTAiIGhlaWdodD0iMzAiIHJ4PSI0IiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiM4YTVhMWYiLz4KICA8dGV4dCB4PSIxOTUiIHk9IjEyMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+aWRhZGU8L3RleHQ+CiAgPHJlY3QgeD0iMTM4IiB5PSIxNDIiIHdpZHRoPSIzNCIgaGVpZ2h0PSIyMCIgcng9IjEwIiBmaWxsPSIjMDA3YWZmIi8+CiAgPHRleHQgeD0iMTU1IiB5PSIxNTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTIiIGZpbGw9IiNmZmZmZmYiIGZvbnQtd2VpZ2h0PSI2MDAiPmludDwvdGV4dD4KICA8ZyBzdHJva2U9IiM2ZTZlNzMiPgogICAgPGxpbmUgeDE9IjMxMCIgeTE9IjQ4IiB4Mj0iMjI2IiB5Mj0iNTIiLz4KICAgIDxsaW5lIHgxPSIzMTAiIHkxPSIxMTUiIHgyPSIyNDIiIHkyPSIxMTUiLz4KICAgIDxsaW5lIHgxPSI4MCIgeTE9IjE1MiIgeDI9IjEzNCIgeTI9IjE1MiIvPgogIDwvZz4KICA8dGV4dCB4PSIzMTYiIHk9IjUyIj5WYWxvcjwvdGV4dD4KICA8dGV4dCB4PSIzMTYiIHk9IjExOSI+Tm9tZTwvdGV4dD4KICA8dGV4dCB4PSI4IiB5PSIxNTYiPlRpcG8gZGUgZGFkb3M8L3RleHQ+CiAgPHRleHQgeD0iMjAwIiB5PSIxOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPlBlbG8gbm9tZSBjaGVnYXMgYW8gdmFsb3IuPC90ZXh0Pgo8L3N2Zz4K",BS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjAwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjAwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjAiPgogICAgPHRleHQgeD0iNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+cG9udG9zPC90ZXh0PgogICAgPHRleHQgeD0iMTI1IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPj08L3RleHQ+CiAgICA8dGV4dCB4PSIyNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cG9udG9zICsgNTwvdGV4dD4KICA8L2c+CiAgPHJlY3QgeD0iMTgwIiB5PSI4NiIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjYwIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPuKRoCBjYWxjdWxhciBhIGRpcmVpdGE6IDEwICsgNSA9IDE1PC90ZXh0PgogIDxwYXRoIGQ9Ik0yNTAgODIgQzIzMCAzMCwgOTAgMzAsIDY0IDg0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDdhZmYiIHN0cm9rZS13aWR0aD0iMi41IiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgPHRleHQgeD0iMTYwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiI+4pGhIGd1YXJkYXIgbyByZXN1bHRhZG8gw6AgZXNxdWVyZGE8L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9IjE2NCIgd2lkdGg9IjM2MCIgaGVpZ2h0PSIyNiIgcng9IjYiIGZpbGw9IiNmMmYyZjciLz4KICA8dGV4dCB4PSIyMDAiIHk9IjE4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cG9udG9zIGFudGVzOiA8dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCI+MTA8L3RzcGFuPiAgIOKGkiAgIHBvbnRvcyBkZXBvaXM6IDx0c3BhbiBmb250LXdlaWdodD0iNzAwIj4xNTwvdHNwYW4+PC90ZXh0Pgo8L3N2Zz4K",WS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMzAwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMzAwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTQwIDExMCBMNDggMTgwIEwxMDIgMTgwIEwxMTAgMTEwIi8+CiAgICA8cGF0aCBkPSJNMTY1IDExMCBMMTczIDE4MCBMMjI3IDE4MCBMMjM1IDExMCIvPgogICAgPHBhdGggZD0iTTI5MCAxMTAgTDI5OCAxODAgTDM1MiAxODAgTDM2MCAxMTAiLz4KICA8L2c+CiAgPHBhdGggZD0iTTQ0IDEzNSBMNDggMTgwIEwxMDIgMTgwIEwxMDYgMTM1IFoiIGZpbGw9IiNmZGJhNzQiLz4KICA8cGF0aCBkPSJNMjk0IDEzNSBMMjk4IDE4MCBMMzUyIDE4MCBMMzU2IDEzNSBaIiBmaWxsPSIjOTNjNWZkIi8+CiAgPHRleHQgeD0iNzUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+ZXNxdWVyZGE8L3RleHQ+CiAgPHRleHQgeD0iNzUiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+c3VtbzwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+YXV4PC90ZXh0PgogIDx0ZXh0IHg9IjIwMCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj52YXppbzwvdGV4dD4KICA8dGV4dCB4PSIzMjUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+ZGlyZWl0YTwvdGV4dD4KICA8dGV4dCB4PSIzMjUiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+w6FndWE8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8cGF0aCBkPSJNODggMTA0IEMxMTAgNzAsIDE2MCA3MCwgMTg2IDEwNCIvPgogICAgPHBhdGggZD0iTTMxOCAxMDQgQzI3MCAxNSwgMTMwIDE1LCA4MiAxMDQiLz4KICAgIDxwYXRoIGQ9Ik0yMTQgMTA0IEMyNDAgNzAsIDI5MCA3MCwgMzEyIDEwNCIvPgogIDwvZz4KICA8ZyBmb250LXdlaWdodD0iNzAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4KICAgIDxjaXJjbGUgY3g9IjEzNyIgY3k9IjgwIiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMTM3IiB5PSI4NSI+MTwvdGV4dD4KICAgIDxjaXJjbGUgY3g9IjIwMCIgY3k9IjM4IiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMjAwIiB5PSI0MyI+MjwvdGV4dD4KICAgIDxjaXJjbGUgY3g9IjI2MyIgY3k9IjgwIiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMjYzIiB5PSI4NSI+MzwvdGV4dD4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTIiPgogICAgPHRleHQgeD0iMjAwIiB5PSIyNTAiPjE6IGF1eCA9IGVzcXVlcmRhPC90ZXh0PgogICAgPHRleHQgeD0iMjAwIiB5PSIyNjgiPjI6IGVzcXVlcmRhID0gZGlyZWl0YTwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMjg2Ij4zOiBkaXJlaXRhID0gYXV4PC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",LS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE1MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDxyZWN0IHg9IjIwIiB5PSI1MCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+PHJlY3QgeD0iMzAwIiB5PSI1MCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+CiAgPHJlY3QgeD0iMTAwIiB5PSI1MCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyNCIgZmlsbD0iI2RjZmNlNyIvPgogIDxsaW5lIHgxPSIyMCIgeTE9Ijc0IiB4Mj0iMzgwIiB5Mj0iNzQiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPGxpbmUgeDE9IjUwIiB5MT0iNjgiIHgyPSI1MCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjUwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MDwvdGV4dD4KICA8bGluZSB4MT0iMTAwIiB5MT0iNjgiIHgyPSIxMDAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIxMDAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4xPC90ZXh0PgogIDxsaW5lIHgxPSIxNTAiIHkxPSI2OCIgeDI9IjE1MCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjE1MCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjI8L3RleHQ+CiAgPGxpbmUgeDE9IjIwMCIgeTE9IjY4IiB4Mj0iMjAwIiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMjAwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MzwvdGV4dD4KICA8bGluZSB4MT0iMjUwIiB5MT0iNjgiIHgyPSIyNTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIyNTAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj40PC90ZXh0PgogIDxsaW5lIHgxPSIzMDAiIHkxPSI2OCIgeDI9IjMwMCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjMwMCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjU8L3RleHQ+CiAgPGxpbmUgeDE9IjM1MCIgeTE9IjY4IiB4Mj0iMzUwIiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMzUwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+NjwvdGV4dD4KICA8Y2lyY2xlIGN4PSIxMDAiIGN5PSI3NCIgcj0iNiIgZmlsbD0iIzE1ODAzZCIvPjxjaXJjbGUgY3g9IjMwMCIgY3k9Ijc0IiByPSI2IiBmaWxsPSIjMTU4MDNkIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI0MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dsOhbGlkYTwvdGV4dD4KICA8dGV4dCB4PSI1MCIgeT0iNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiIGZvbnQtd2VpZ2h0PSI2MDAiPmludsOhbGlkYTwvdGV4dD48dGV4dCB4PSIzNTAiIHk9IjQwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5pbnbDoWxpZGE8L3RleHQ+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgPHRleHQgeD0iMjAwIiB5PSIxMjQiIGZpbGw9IiMxNTgwM2QiPm5vdGEgJmd0Oz0gMSAmYW1wOyZhbXA7IG5vdGEgJmx0Oz0gNTwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMTQyIiBmaWxsPSIjYjkxYzFjIj5ub3RhICZsdDsgMSB8fCBub3RhICZndDsgNTwvdGV4dD4KICA8L2c+Cjwvc3ZnPgo=",ES="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIj5Db21vIGZ1bmNpb25hIG8gY2ljbG8gd2hpbGU8L3RleHQ+CiAgPHJlY3QgeD0iMTIwIiB5PSI0NCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI0MCIgcng9IjIwIiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iNjkiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoCB2ZXJpZmljYXIgYSBjb25kacOnw6NvPC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iMTI4IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjQwIiByeD0iNiIgZmlsbD0iI2RiZWFmZSIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9IjE1MyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGhIGV4ZWN1dGFyIG8gaW50ZXJpb3I8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iODQiIHgyPSIyMDAiIHkyPSIxMjYiLz4KICAgIDxwYXRoIGQ9Ik0xMjAgMTQ4IEM4MCAxNDgsIDgwIDY0LCAxMTggNjQiLz4KICAgIDxwYXRoIGQ9Ik0yODAgNjQgTDM0MCA2NCBMMzQwIDIwMCBMMjgyIDIwMCIvPgogIDwvZz4KICA8dGV4dCB4PSIyMDgiIHk9IjExMCIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dHJ1ZTwvdGV4dD4KICA8dGV4dCB4PSIzOCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj52b2x0YXI8L3RleHQ+CiAgPHRleHQgeD0iMzgiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+cGFyYSBjaW1hPC90ZXh0PgogIDx0ZXh0IHg9IjM0OCIgeT0iMTM0IiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5mYWxzZTwvdGV4dD4KICA8dGV4dCB4PSIyNzYiIHk9IjIwNSIgdGV4dC1hbmNob3I9ImVuZCI+Y29udGludWFyIHBvciBiYWl4byBkbyBjaWNsbzwvdGV4dD4KPC9zdmc+Cg==",NS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+cHLDqS10ZXN0ZSAod2hpbGUpPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPnDDs3MtdGVzdGUgKGRvLXdoaWxlKTwvdGV4dD4KICA8bGluZSB4MT0iMjAwIiB5MT0iMTAiIHgyPSIyMDAiIHkyPSIyMjAiIHN0cm9rZT0iI2QxZDFkNiIvPgogIDxyZWN0IHg9IjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjEwMCIgeT0iNjciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoCBjb25kacOnw6NvPC90ZXh0PgogIDxyZWN0IHg9IjM1IiB5PSIxMjQiIHdpZHRoPSIxMzAiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZGJlYWZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjEwMCIgeT0iMTQ3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgaW50ZXJpb3I8L3RleHQ+CiAgPHJlY3QgeD0iMjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzAwIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIGludGVyaW9yPC90ZXh0PgogIDxyZWN0IHg9IjIzNSIgeT0iMTI0IiB3aWR0aD0iMTMwIiBoZWlnaHQ9IjM2IiByeD0iMTgiIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzAwIiB5PSIxNDciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoSBjb25kacOnw6NvPC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjYiIG1hcmtlci1lbmQ9InVybCgjYSkiPgogICAgPGxpbmUgeDE9IjEwMCIgeTE9IjgwIiB4Mj0iMTAwIiB5Mj0iMTIyIi8+CiAgICA8cGF0aCBkPSJNMzUgMTQyIEM4IDE0MiwgOCA2MiwgMzMgNjIiLz4KICAgIDxsaW5lIHgxPSIzMDAiIHkxPSI4MCIgeDI9IjMwMCIgeTI9IjEyMiIvPgogICAgPHBhdGggZD0iTTM2NSAxNDIgQzM5MiAxNDIsIDM5MiA2MiwgMzY3IDYyIi8+CiAgPC9nPgogIDx0ZXh0IHg9IjEwNiIgeT0iMTA2IiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjM4MCIgeT0iMTA2IiB0ZXh0LWFuY2hvcj0iZW5kIiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5TZSBhIGNvbmRpw6fDo28gZm9yIGxvZ28gZmFsc2EsPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMjA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5vIGludGVyaW9yIDx0c3BhbiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjMWMxYzFlIj5udW5jYTwvdHNwYW4+IMOpIGV4ZWN1dGFkby48L3RleHQ+CiAgPHRleHQgeD0iMzAwIiB5PSIxOTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPk8gaW50ZXJpb3Igw6kgc2VtcHJlIGV4ZWN1dGFkbzwvdGV4dD4KICA8dGV4dCB4PSIzMDAiIHk9IjIwNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+PHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPnBlbG8gbWVub3MgdW1hIHZlejwvdHNwYW4+LjwvdGV4dD4KPC9zdmc+Cg==",FS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjUwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTIwIiB5PSIxNCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIEluw61jaW8gPHRzcGFuIGZpbGw9IiM2ZTZlNzMiPihzw7MgdW1hIHZleik8L3RzcGFuPjwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9Ijc2IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjM0IiByeD0iMTciIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGhIHZlcmlmaWNhciBhIGNvbmRpw6fDo288L3RleHQ+CiAgPHJlY3QgeD0iMTIwIiB5PSIxMzgiIHdpZHRoPSIxNjAiIGhlaWdodD0iMzQiIHJ4PSI2IiBmaWxsPSIjZGJlYWZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMTYwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaIgZXhlY3V0YXIgbyBpbnRlcmlvcjwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9IjIwMCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIyMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoyBwYXNzbywgcC4gZXguIGkrKzwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMDAiIHkxPSI0OCIgeDI9IjIwMCIgeTI9Ijc0Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTEwIiB4Mj0iMjAwIiB5Mj0iMTM2Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTcyIiB4Mj0iMjAwIiB5Mj0iMTk4Ii8+CiAgICA8cGF0aCBkPSJNMTIwIDIxNyBDNjAgMjE3LCA2MCA5MywgMTE4IDkzIi8+CiAgICA8cGF0aCBkPSJNMjgwIDkzIEwzMzAgOTMiLz4KICA8L2c+CiAgPHRleHQgeD0iMjA4IiB5PSIxMjkiIGZpbGw9IiMxNTgwM2QiIGZvbnQtd2VpZ2h0PSI2MDAiPnRydWU8L3RleHQ+CiAgPHRleHQgeD0iNDgiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+dm9sdGFyPC90ZXh0PgogIDx0ZXh0IHg9IjQ4IiB5PSIxNzYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPmFvIOKRoTwvdGV4dD4KICA8dGV4dCB4PSIzMDAiIHk9Ijg0IiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5mYWxzZTwvdGV4dD4KICA8dGV4dCB4PSIzMzYiIHk9Ijk4Ij5maW08L3RleHQ+Cjwvc3ZnPgo=",JS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMTkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNCI+aW50W10gbnVtZXJvcyA9IHsyLCA0LCA2LCA4LCAxMH08L3RleHQ+CiAgPHRleHQgeD0iMjAiIHk9IjU0IiBmaWxsPSIjNmU2ZTczIiBmb250LXNpemU9IjEyIj7DjW5kaWNlPC90ZXh0PgogIDx0ZXh0IHg9IjkwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MDwvdGV4dD48cmVjdCB4PSI2MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSI5MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjI8L3RleHQ+CiAgPHRleHQgeD0iMTUwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MTwvdGV4dD48cmVjdCB4PSIxMjAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMTUwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+NDwvdGV4dD4KICA8dGV4dCB4PSIyMTAiIHk9IjU0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWZmIiBmb250LXdlaWdodD0iNzAwIj4yPC90ZXh0PjxyZWN0IHg9IjE4MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIyMTAiIHk9IjkyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNjAwIj42PC90ZXh0PgogIDx0ZXh0IHg9IjI3MCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjM8L3RleHQ+PHJlY3QgeD0iMjQwIiB5PSI2MiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjI3MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjg8L3RleHQ+CiAgPHRleHQgeD0iMzMwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+NDwvdGV4dD48cmVjdCB4PSIzMDAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMzMwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+MTA8L3RleHQ+CiAgPHRleHQgeD0iMjAiIHk9IjkwIiBmaWxsPSIjNmU2ZTczIiBmb250LXNpemU9IjEyIj5WYWxvcjwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMwMDdhZmYiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj48bGluZSB4MT0iOTAiIHkxPSIxNDAiIHgyPSI5MCIgeTI9IjExMiIvPjxsaW5lIHgxPSIzMzAiIHkxPSIxNDAiIHgyPSIzMzAiIHkyPSIxMTIiLz48L2c+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjx0ZXh0IHg9IjkwIiB5PSIxNTYiPm51bWVyb3NbMF0gw6kgMjwvdGV4dD48dGV4dCB4PSIzMzAiIHk9IjE1NiI+bnVtZXJvc1s0XSDDqSAxMDwvdGV4dD48L2c+CiAgPHRleHQgeD0iMjAwIiB5PSIxODIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPjUgcG9zacOnw7VlcywgY29udGEtc2UgYSBwYXJ0aXIgZGUgMDogbyDDumx0aW1vIMOtbmRpY2Ugw6kgNC48L3RleHQ+Cjwvc3ZnPgo=",GS=""+new URL("mvc-klick-DKonBpbs.svg",import.meta.url).href,RS=""+new URL("schiffe-versenken-iEBDHIxD.svg",import.meta.url).href,HS=""+new URL("ss-binaere-suche-DVVS2SNc.svg",import.meta.url).href,QS=""+new URL("ss-bubblesort-AFDcFDah.svg",import.meta.url).href,VS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDQgMTk2IiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KPHJlY3Qgd2lkdGg9IjQwNCIgaGVpZ2h0PSIxOTYiIGZpbGw9IiNmZmZmZmYiLz4KPHRleHQgeD0iMTQiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIiBmb250LXNpemU9IjE1Ij5Qcm9jdXJhLXNlIG8gOS4gQXMgY2FydGFzIGVzdMOjbyBiYXJhbGhhZGFzLjwvdGV4dD4KPGc+PHJlY3QgeD0iMTQiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjx0ZXh0IHg9IjM0LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNkYzI2MjYiPjc8L3RleHQ+PHRleHQgeD0iMzQuMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiNkYzI2MjYiPuKZpTwvdGV4dD48L2c+Cjx0ZXh0IHg9IjM0LjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSIzNC4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjEuPC90ZXh0Pgo8Zz48cmVjdCB4PSI2MiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iODIuMCIgeT0iNzUuMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+MzwvdGV4dD48dGV4dCB4PSI4Mi4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzFjMWMxZSI+4pmgPC90ZXh0PjwvZz4KPHRleHQgeD0iODIuMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjZGMyNjI2Ij7inJc8L3RleHQ+Cjx0ZXh0IHg9IjgyLjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+Mi48L3RleHQ+CjxnPjxyZWN0IHg9IjExMCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iMTMwLjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNkYzI2MjYiPjEwPC90ZXh0Pjx0ZXh0IHg9IjEzMC4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iI2RjMjYyNiI+4pmmPC90ZXh0PjwvZz4KPHRleHQgeD0iMTMwLjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSIxMzAuMCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj4zLjwvdGV4dD4KPGc+PHJlY3QgeD0iMTU4IiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48dGV4dCB4PSIxNzguMCIgeT0iNzUuMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+NTwvdGV4dD48dGV4dCB4PSIxNzguMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiMxYzFjMWUiPuKZozwvdGV4dD48L2c+Cjx0ZXh0IHg9IjE3OC4wIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiNkYzI2MjYiPuKclzwvdGV4dD4KPHRleHQgeD0iMTc4LjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+NC48L3RleHQ+CjxnPjxyZWN0IHg9IjIwNiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgeD0iMjI2LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPjk8L3RleHQ+PHRleHQgeD0iMjI2LjAiIHk9Ijk1LjkxOTk5OTk5OTk5OTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmaWxsPSIjMWMxYzFlIj7imaA8L3RleHQ+PC9nPgo8dGV4dCB4PSIyMjYuMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjMTU4MDNkIj7inJM8L3RleHQ+Cjx0ZXh0IHg9IjIyNi4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjUuPC90ZXh0Pgo8Zz48cmVjdCB4PSIyNTQiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjMWQ0ZWQ4IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjxyZWN0IHg9IjI1OCIgeT0iNTQiIHdpZHRoPSIzMiIgaGVpZ2h0PSI0OCIgcng9IjMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzkzYzVmZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMiIvPjwvZz4KPGc+PHJlY3QgeD0iMzAyIiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iIzFkNGVkOCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48cmVjdCB4PSIzMDYiIHk9IjU0IiB3aWR0aD0iMzIiIGhlaWdodD0iNDgiIHJ4PSIzIiBmaWxsPSJub25lIiBzdHJva2U9IiM5M2M1ZmQiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSIzIDIiLz48L2c+CjxnPjxyZWN0IHg9IjM1MCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiMxZDRlZDgiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHJlY3QgeD0iMzU0IiB5PSI1NCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjQ4IiByeD0iMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTNjNWZkIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWRhc2hhcnJheT0iMyAyIi8+PC9nPgo8dGV4dCB4PSIxNCIgeT0iMTY4IiBmb250LXNpemU9IjE1IiBmaWxsPSIjNmU2ZTczIj5WaXJhciBkYSBlc3F1ZXJkYSBwYXJhIGEgZGlyZWl0YTo8L3RleHQ+PHRleHQgeD0iMTQiIHk9IjE4OCIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzZlNmU3MyI+QXDDs3MgNSBjb21wYXJhw6fDtWVzLCBvIDkgw6kgZW5jb250cmFkby48L3RleHQ+Cjwvc3ZnPgo=",qS=""+new URL("ss-vergleiche-DWgkIvLr.svg",import.meta.url).href,US="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MjAgNDUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KPGRlZnM+PG1hcmtlciBpZD0iayIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI5IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNiIgbWFya2VySGVpZ2h0PSI2IiBvcmllbnQ9ImF1dG8iPjxwYXRoIGQ9Ik0wIDAgTDEwIDUgTDAgMTAgWiIgZmlsbD0iIzFjMWMxZSIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9ImIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOSIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjYiIG1hcmtlckhlaWdodD0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCAwIEwxMCA1IEwwIDEwIFoiIGZpbGw9IiMxZDRlZDgiLz48L21hcmtlcj48bWFya2VyIGlkPSJvIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI2IiBtYXJrZXJIZWlnaHQ9IjYiIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjYjQ1MzA5Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB3aWR0aD0iNDIwIiBoZWlnaHQ9IjQ1MCIgZmlsbD0iI2ZmZmZmZiIvPgo8dGV4dCB4PSIxMCIgeT0iMjIiIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiPlBhc3NhZ2VtIHBvciB2YWxvcjogdW1hIGPDs3BpYTwvdGV4dD4KPHJlY3QgeD0iMTAiIHk9IjM4IiB3aWR0aD0iMTYwIiBoZWlnaHQ9Ijg2IiByeD0iOCIgZmlsbD0iI2VmZjZmZiIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyMCIgeT0iNTgiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPlByb2dyYW1hIHByaW5jaXBhbDwvdGV4dD4KPHRleHQgeD0iMTYiIHk9Ijk4IiBmb250LXNpemU9IjEyIj5udW1lcm88L3RleHQ+CjxyZWN0IHg9IjcwIiB5PSI3OCIgd2lkdGg9IjU2IiBoZWlnaHQ9IjMwIiByeD0iNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+Cjx0ZXh0IHg9Ijk4IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+NTwvdGV4dD4KPHJlY3QgeD0iMjUwIiB5PSIzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4NiIgcng9IjgiIGZpbGw9IiNmZmY3ZWQiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjYwIiB5PSI1OCIgZm9udC1zaXplPSIxMyIgZmlsbD0iI2I0NTMwOSI+ZHVwbGljYXI8L3RleHQ+Cjx0ZXh0IHg9IjI2MCIgeT0iOTgiPng8L3RleHQ+CjxyZWN0IHg9IjI4MCIgeT0iNzgiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMCIgcng9IjQiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8dGV4dCB4PSIzMjAiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj48dHNwYW4gZmlsbD0iIzZlNmU3MyIgdGV4dC1kZWNvcmF0aW9uPSJsaW5lLXRocm91Z2giPjU8L3RzcGFuPiA8dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCI+MTA8L3RzcGFuPjwvdGV4dD4KPGxpbmUgeDE9IjEyOCIgeTE9IjkzIiB4Mj0iMjQ4IiB5Mj0iOTMiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNCIgbWFya2VyLWVuZD0idXJsKCNrKSIvPgo8dGV4dCB4PSIyMTAiIHk9Ijg0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5jw7NwaWE8L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxNTAiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPnggcGFzc2EgYSAxMCwgbWFzIG51bWVybyBmaWNhIDUuPC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iMTY4IiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj5Db21vIHVtYSBmb3RvY8OzcGlhOiBlc2NyZXZlciBuYSBjw7NwaWE8L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxODYiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPm7Do28gYWx0ZXJhIG8gb3JpZ2luYWwuPC90ZXh0Pgo8bGluZSB4MT0iMTAiIHkxPSIyMDgiIHgyPSI0MTAiIHkyPSIyMDgiIHN0cm9rZT0iI2QxZDFkNiIvPgo8dGV4dCB4PSIxMCIgeT0iMjM2IiBmb250LXNpemU9IjE1IiBmb250LXdlaWdodD0iNzAwIj5QYXNzYWdlbSBwb3IgcmVmZXLDqm5jaWE6IG8gbWVzbW8gYXJyYXk8L3RleHQ+CjxyZWN0IHg9IjEwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZWZmNmZmIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjIwIiB5PSIyNzIiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPlByb2dyYW1hIHByaW5jaXBhbDwvdGV4dD4KPHRleHQgeD0iMjAiIHk9IjMwMCI+ZmlsYTwvdGV4dD4KPGNpcmNsZSBjeD0iMTUwIiBjeT0iMjk1IiByPSI1IiBmaWxsPSIjMWQ0ZWQ4Ii8+CjxyZWN0IHg9IjI1MCIgeT0iMjUyIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjYyIiByeD0iOCIgZmlsbD0iI2ZmZjdlZCIgc3Ryb2tlPSIjYjQ1MzA5IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyNjAiIHk9IjI3MiIgZm9udC1zaXplPSIxMyIgZmlsbD0iI2I0NTMwOSI+bGltcGFyPC90ZXh0Pgo8dGV4dCB4PSIyNjAiIHk9IjMwMCI+bHVnYXJlczwvdGV4dD4KPGNpcmNsZSBjeD0iMzkwIiBjeT0iMjk1IiByPSI1IiBmaWxsPSIjYjQ1MzA5Ii8+CjxwYXRoIGQ9Ik0xNTAgMzAwIEwxNTAgMzQwIEwxNDAgMzUyIiBmaWxsPSJub25lIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMS41IiBtYXJrZXItZW5kPSJ1cmwoI2IpIi8+CjxwYXRoIGQ9Ik0zOTAgMzAwIEwzOTAgMzQwIEwzMjIgMzU0IiBmaWxsPSJub25lIiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMS41IiBtYXJrZXItZW5kPSJ1cmwoI28pIi8+CjxyZWN0IHg9IjkwIiB5PSIzNTgiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+CjxyZWN0IHg9IjE1MCIgeT0iMzU4IiB3aWR0aD0iNjAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8cmVjdCB4PSIyMTAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHJlY3QgeD0iMjcwIiB5PSIzNTgiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+Cjx0ZXh0IHg9IjEyMCIgeT0iMzc5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5mYWxzZTwvdGV4dD4KPHRleHQgeD0iMTgwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIyNDAiIHk9IjM3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+ZmFsc2U8L3RleHQ+Cjx0ZXh0IHg9IjMwMCIgeT0iMzc5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5mYWxzZTwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjQxNiIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+U8OzIGjDoSB1bSBhcnJheS4gTyBxdWUgbGltcGFyIGFsdGVyYSBhdHJhdsOpcyBkZSBsdWdhcmVzLDwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjQzNCIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+byBwcm9ncmFtYSBwcmluY2lwYWwgdsOqIGVtIGZpbGEuPC90ZXh0Pgo8L3N2Zz4K",$S=""+new URL("zk-zeichen-8efNmpGx.svg",import.meta.url).href,YS=""+new URL("schiffe-versenken-CXt1SF0S.svg",import.meta.url).href,XS=""+new URL("ss-binaere-suche-CPsLGldq.svg",import.meta.url).href,KS=""+new URL("ss-bubblesort-Dic2ZfaT.svg",import.meta.url).href,eO="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDQgMTk2IiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KPHJlY3Qgd2lkdGg9IjQwNCIgaGVpZ2h0PSIxOTYiIGZpbGw9IiNmZmZmZmYiLz4KPHRleHQgeD0iMTQiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIiBmb250LXNpemU9IjE1Ij5HZXN1Y2h0OiBkaWUgOS4gRGllIEthcnRlbiBzaW5kIGdlbWlzY2h0LjwvdGV4dD4KPGc+PHJlY3QgeD0iMTQiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjx0ZXh0IHg9IjM0LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNkYzI2MjYiPjc8L3RleHQ+PHRleHQgeD0iMzQuMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiNkYzI2MjYiPuKZpTwvdGV4dD48L2c+Cjx0ZXh0IHg9IjM0LjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSIzNC4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjEuPC90ZXh0Pgo8Zz48cmVjdCB4PSI2MiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iODIuMCIgeT0iNzUuMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+MzwvdGV4dD48dGV4dCB4PSI4Mi4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzFjMWMxZSI+4pmgPC90ZXh0PjwvZz4KPHRleHQgeD0iODIuMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjZGMyNjI2Ij7inJc8L3RleHQ+Cjx0ZXh0IHg9IjgyLjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+Mi48L3RleHQ+CjxnPjxyZWN0IHg9IjExMCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iMTMwLjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNkYzI2MjYiPjEwPC90ZXh0Pjx0ZXh0IHg9IjEzMC4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iI2RjMjYyNiI+4pmmPC90ZXh0PjwvZz4KPHRleHQgeD0iMTMwLjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSIxMzAuMCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj4zLjwvdGV4dD4KPGc+PHJlY3QgeD0iMTU4IiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48dGV4dCB4PSIxNzguMCIgeT0iNzUuMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+NTwvdGV4dD48dGV4dCB4PSIxNzguMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiMxYzFjMWUiPuKZozwvdGV4dD48L2c+Cjx0ZXh0IHg9IjE3OC4wIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiNkYzI2MjYiPuKclzwvdGV4dD4KPHRleHQgeD0iMTc4LjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+NC48L3RleHQ+CjxnPjxyZWN0IHg9IjIwNiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgeD0iMjI2LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPjk8L3RleHQ+PHRleHQgeD0iMjI2LjAiIHk9Ijk1LjkxOTk5OTk5OTk5OTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmaWxsPSIjMWMxYzFlIj7imaA8L3RleHQ+PC9nPgo8dGV4dCB4PSIyMjYuMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjMTU4MDNkIj7inJM8L3RleHQ+Cjx0ZXh0IHg9IjIyNi4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjUuPC90ZXh0Pgo8Zz48cmVjdCB4PSIyNTQiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjMWQ0ZWQ4IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjxyZWN0IHg9IjI1OCIgeT0iNTQiIHdpZHRoPSIzMiIgaGVpZ2h0PSI0OCIgcng9IjMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzkzYzVmZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMiIvPjwvZz4KPGc+PHJlY3QgeD0iMzAyIiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iIzFkNGVkOCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48cmVjdCB4PSIzMDYiIHk9IjU0IiB3aWR0aD0iMzIiIGhlaWdodD0iNDgiIHJ4PSIzIiBmaWxsPSJub25lIiBzdHJva2U9IiM5M2M1ZmQiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSIzIDIiLz48L2c+CjxnPjxyZWN0IHg9IjM1MCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiMxZDRlZDgiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHJlY3QgeD0iMzU0IiB5PSI1NCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjQ4IiByeD0iMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTNjNWZkIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWRhc2hhcnJheT0iMyAyIi8+PC9nPgo8dGV4dCB4PSIxNCIgeT0iMTY4IiBmb250LXNpemU9IjE1IiBmaWxsPSIjNmU2ZTczIj5Wb24gbGlua3MgbmFjaCByZWNodHMgdW1kcmVoZW46PC90ZXh0Pjx0ZXh0IHg9IjE0IiB5PSIxODgiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiM2ZTZlNzMiPk5hY2ggNSBWZXJnbGVpY2hlbiBpc3QgZGllIDkgZ2VmdW5kZW4uPC90ZXh0Pgo8L3N2Zz4K",tO=""+new URL("ss-vergleiche-DRqzU2TZ.svg",import.meta.url).href,nO="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MjAgNDUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KPGRlZnM+PG1hcmtlciBpZD0iayIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI5IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNiIgbWFya2VySGVpZ2h0PSI2IiBvcmllbnQ9ImF1dG8iPjxwYXRoIGQ9Ik0wIDAgTDEwIDUgTDAgMTAgWiIgZmlsbD0iIzFjMWMxZSIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9ImIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOSIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjYiIG1hcmtlckhlaWdodD0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCAwIEwxMCA1IEwwIDEwIFoiIGZpbGw9IiMxZDRlZDgiLz48L21hcmtlcj48bWFya2VyIGlkPSJvIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI2IiBtYXJrZXJIZWlnaHQ9IjYiIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjYjQ1MzA5Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB3aWR0aD0iNDIwIiBoZWlnaHQ9IjQ1MCIgZmlsbD0iI2ZmZmZmZiIvPgo8dGV4dCB4PSIxMCIgeT0iMjIiIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiPldlcnTDvGJlcmdhYmU6IGVpbmUgS29waWU8L3RleHQ+CjxyZWN0IHg9IjEwIiB5PSIzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4NiIgcng9IjgiIGZpbGw9IiNlZmY2ZmYiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjAiIHk9IjU4IiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWQ0ZWQ4Ij5IYXVwdHByb2dyYW1tPC90ZXh0Pgo8dGV4dCB4PSIyMCIgeT0iOTgiPnphaGw8L3RleHQ+CjxyZWN0IHg9IjcwIiB5PSI3OCIgd2lkdGg9IjU2IiBoZWlnaHQ9IjMwIiByeD0iNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+Cjx0ZXh0IHg9Ijk4IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+NTwvdGV4dD4KPHJlY3QgeD0iMjUwIiB5PSIzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4NiIgcng9IjgiIGZpbGw9IiNmZmY3ZWQiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjYwIiB5PSI1OCIgZm9udC1zaXplPSIxMyIgZmlsbD0iI2I0NTMwOSI+dmVyZG9wcGxlPC90ZXh0Pgo8dGV4dCB4PSIyNjAiIHk9Ijk4Ij54PC90ZXh0Pgo8cmVjdCB4PSIyODAiIHk9Ijc4IiB3aWR0aD0iODAiIGhlaWdodD0iMzAiIHJ4PSI0IiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHRleHQgeD0iMzIwIiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSI+PHRzcGFuIGZpbGw9IiM2ZTZlNzMiIHRleHQtZGVjb3JhdGlvbj0ibGluZS10aHJvdWdoIj41PC90c3Bhbj4gPHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiPjEwPC90c3Bhbj48L3RleHQ+CjxsaW5lIHgxPSIxMjgiIHkxPSI5MyIgeDI9IjI0OCIgeTI9IjkzIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtZGFzaGFycmF5PSI1IDQiIG1hcmtlci1lbmQ9InVybCgjaykiLz4KPHRleHQgeD0iMjEwIiB5PSI4NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+S29waWU8L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxNTAiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPnggd2lyZCAxMCwgYWJlciB6YWhsIGJsZWlidCA1LjwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjE2OCIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+V2llIGJlaSBlaW5lciBGb3Rva29waWU6IFdlciBhdWYgZGVyIEtvcGllIHNjaHJlaWJ0LDwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjE4NiIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+w6RuZGVydCBkYXMgT3JpZ2luYWwgbmljaHQuPC90ZXh0Pgo8bGluZSB4MT0iMTAiIHkxPSIyMDgiIHgyPSI0MTAiIHkyPSIyMDgiIHN0cm9rZT0iI2QxZDFkNiIvPgo8dGV4dCB4PSIxMCIgeT0iMjM2IiBmb250LXNpemU9IjE1IiBmb250LXdlaWdodD0iNzAwIj5SZWZlcmVuesO8YmVyZ2FiZTogZGFzc2VsYmUgQXJyYXk8L3RleHQ+CjxyZWN0IHg9IjEwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZWZmNmZmIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjIwIiB5PSIyNzIiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPkhhdXB0cHJvZ3JhbW08L3RleHQ+Cjx0ZXh0IHg9IjIwIiB5PSIzMDAiPnJlaWhlPC90ZXh0Pgo8Y2lyY2xlIGN4PSIxNTAiIGN5PSIyOTUiIHI9IjUiIGZpbGw9IiMxZDRlZDgiLz4KPHJlY3QgeD0iMjUwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZmZmN2VkIiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjI2MCIgeT0iMjcyIiBmb250LXNpemU9IjEzIiBmaWxsPSIjYjQ1MzA5Ij5sZWVyZW48L3RleHQ+Cjx0ZXh0IHg9IjI2MCIgeT0iMzAwIj5wbGFldHplPC90ZXh0Pgo8Y2lyY2xlIGN4PSIzOTAiIGN5PSIyOTUiIHI9IjUiIGZpbGw9IiNiNDUzMDkiLz4KPHBhdGggZD0iTTE1MCAzMDAgTDE1MCAzNDAgTDE0MCAzNTIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIxLjUiIG1hcmtlci1lbmQ9InVybCgjYikiLz4KPHBhdGggZD0iTTM5MCAzMDAgTDM5MCAzNDAgTDMyMiAzNTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiIG1hcmtlci1lbmQ9InVybCgjbykiLz4KPHJlY3QgeD0iOTAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHJlY3QgeD0iMTUwIiB5PSIzNTgiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+CjxyZWN0IHg9IjIxMCIgeT0iMzU4IiB3aWR0aD0iNjAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8cmVjdCB4PSIyNzAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHRleHQgeD0iMTIwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIxODAiIHk9IjM3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+ZmFsc2U8L3RleHQ+Cjx0ZXh0IHg9IjI0MCIgeT0iMzc5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5mYWxzZTwvdGV4dD4KPHRleHQgeD0iMzAwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iNDE2IiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj5FcyBnaWJ0IG51ciBlaW4gQXJyYXkuIFdhcyBsZWVyZW4gw7xiZXIgcGxhZXR6ZSDDpG5kZXJ0LDwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjQzNCIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+c2llaHQgZGFzIEhhdXB0cHJvZ3JhbW0gdW50ZXIgcmVpaGUuPC90ZXh0Pgo8L3N2Zz4K",aO=""+new URL("zk-zeichen-vYvc3iJg.svg",import.meta.url).href;function iO(i){const e=[];for(const t of i.replace(/\r\n/g,` +`,Q8=""+new URL("aufgabe-mehrwertsteuer-C-TFTrWz.svg",import.meta.url).href,V8=""+new URL("ben-shneiderman-Cev5hrqS.jpg",import.meta.url).href,q8=""+new URL("caesar-ascii-Bix93F5i.svg",import.meta.url).href,U8=""+new URL("caesar-scheibe-CMRPZI6Y.svg",import.meta.url).href,$8=""+new URL("caesar-verschiebung-DIR-lDbs.svg",import.meta.url).href,Y8=""+new URL("aufgabe-mehrwertsteuer-CnrZ00ny.svg",import.meta.url).href,X8=""+new URL("kino-saal-C8zaJk4X.svg",import.meta.url).href,K8=""+new URL("kino-schleifen-D7sfo9iK.svg",import.meta.url).href,eS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDkyIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iNDkyIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiPgogICAgPCEtLSBTdGFydCAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjgiIHJ4PSIxNCIgZmlsbD0iI2QxZjJkOSIvPgogICAgPGxpbmUgeDE9IjE1MCIgeTE9IjM4IiB4Mj0iMTUwIiB5Mj0iNTQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gQW53ZWlzdW5nIC0tPgogICAgPHJlY3QgeD0iNTAiIHk9IjU2IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iODYiIHgyPSIxNTAiIHkyPSI5OCIgbWFya2VyLWVuZD0idXJsKCNhKSIvPgogICAgPCEtLSBSYXV0ZSAxIC0tPgogICAgPHBhdGggZD0iTTE1MCAxMDAgTDIzNSAxMjggTDE1MCAxNTYgTDY1IDEyOCBaIiBmaWxsPSIjZmZmNGQ2Ii8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMTU2IiB4Mj0iMTUwIiB5Mj0iMTcyIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8cmVjdCB4PSI1MCIgeT0iMTc0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMjA0IiB4Mj0iMTUwIiB5Mj0iMjUwIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIG5laW4tV2VnIHVtIGRlbiBLYXN0ZW4gaGVydW0gLS0+CiAgICA8cG9seWxpbmUgcG9pbnRzPSIyMzUsMTI4IDI4NSwxMjggMjg1LDIyMiAxNTAsMjIyIiBmaWxsPSJub25lIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIFJhdXRlIDIgLS0+CiAgICA8cGF0aCBkPSJNMTUwIDI1MiBMMjM1IDI4MCBMMTUwIDMwOCBMNjUgMjgwIFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxsaW5lIHgxPSIyMzUiIHkxPSIyODAiIHgyPSIyNjgiIHkyPSIyODAiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjI3MCIgeT0iMjY1IiB3aWR0aD0iMTE1IiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8IS0tIHp1csO8Y2sgenVyIFByw7xmdW5nIC0tPgogICAgPHBvbHlsaW5lIHBvaW50cz0iMzI3LDI2NSAzMjcsMjM4IDE1MCwyMzgiIGZpbGw9Im5vbmUiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzMDgiIHgyPSIxNTAiIHkyPSIzMjYiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjUwIiB5PSIzMjgiIHdpZHRoPSIyMDAiIGhlaWdodD0iMzAiIGZpbGw9IiNlNWYwZmYiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzNTgiIHgyPSIxNTAiIHkyPSIzNzQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gRW5kZSAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMzc2IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjI4IiByeD0iMTQiIGZpbGw9IiNkMWYyZDkiLz4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSI+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI5Ij5TdGFydDwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iNzYiPlB1dCBhIGN1cCBvbiB0aGUgdGFibGU8L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjEzMyI+U3VnYXIgd2FudGVkPzwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTk0Ij5BZGQgc3VnYXI8L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI4NSI+VGVhIHN0aWxsIHRvbyBob3Q/PC90ZXh0PgogICAgPHRleHQgeD0iMzI3LjUiIHk9IjI4NSI+V2FpdCAxIG1pbnV0ZTwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMzQ4Ij5EcmluayB0aGUgdGVhPC90ZXh0PgogICAgPHRleHQgeD0iMTUwIiB5PSIzOTUiPkVuZDwvdGV4dD4KICA8L2c+CiAgPGcgZm9udC1zaXplPSIxMiIgZm9udC13ZWlnaHQ9IjYwMCI+CiAgICA8dGV4dCB4PSIxNTYiIHk9IjE2OCIgZmlsbD0iIzI0OGEzZCI+eWVzPC90ZXh0PgogICAgPHRleHQgeD0iMjQyIiB5PSIxMjIiIGZpbGw9IiNkNzAwMTUiPm5vPC90ZXh0PgogICAgPHRleHQgeD0iMjQwIiB5PSIyNzQiIGZpbGw9IiMyNDhhM2QiPnllczwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1NiIgeT0iMzIwIiBmaWxsPSIjZDcwMDE1Ij5ubzwvdGV4dD4KICA8L2c+CiAgPCEtLSBMZWdlbmRlIC0tPgogIDxsaW5lIHgxPSIxMCIgeTE9IjQxOCIgeDI9IjM5MCIgeTI9IjQxOCIgc3Ryb2tlPSIjZDFkMWQ2Ii8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICA8cmVjdCB4PSI0MCIgeT0iNDMwIiB3aWR0aD0iMzYiIGhlaWdodD0iMTgiIHJ4PSI5IiBmaWxsPSIjZDFmMmQ5Ii8+CiAgICA8cmVjdCB4PSIyMjAiIHk9IjQzMCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjE4IiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8cGF0aCBkPSJNNTggNDU4IEw3NiA0NjkgTDU4IDQ4MCBMNDAgNDY5IFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxwYXRoIGQ9Ik0yMjYgNDYwIEwyNTYgNDYwIEwyNTAgNDc4IEwyMjAgNDc4IFoiIGZpbGw9IiNmMmU2ZmYiLz4KICA8L2c+CiAgPGcgZm9udC1zaXplPSIxMiIgZmlsbD0iIzNhM2EzYyI+CiAgICA8dGV4dCB4PSI4NiIgeT0iNDQzIj5TdGFydCBvciBlbmQ8L3RleHQ+CiAgICA8dGV4dCB4PSIyNjYiIHk9IjQ0MyI+U3RhdGVtZW50PC90ZXh0PgogICAgPHRleHQgeD0iODYiIHk9IjQ3MyI+RGVjaXNpb248L3RleHQ+CiAgICA8dGV4dCB4PSIyNjYiIHk9IjQ3MyI+SW5wdXQgb3Igb3V0cHV0PC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",tS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE5MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwIiB5PSIyNCIgZm9udC13ZWlnaHQ9IjYwMCI+V2hlcmUgZG9lcyB0aGUgZWxlbWVudCBsYW5kPzwvdGV4dD4KICA8cmVjdCB4PSIyMCIgeT0iNDAiIHdpZHRoPSIxOTAiIGhlaWdodD0iMzUiIGZpbGw9IiNkYmVhZmUiLz4KICA8cmVjdCB4PSIyMCIgeT0iNzUiIHdpZHRoPSIxOTAiIGhlaWdodD0iMzUiIGZpbGw9IiNkY2ZjZTciLz4KICA8bGluZSB4MT0iMjAiIHkxPSI3NSIgeDI9IjIxMCIgeTI9Ijc1IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS1kYXNoYXJyYXk9IjQgMyIvPgogIDxyZWN0IHg9IjIwIiB5PSI0MCIgd2lkdGg9IjE5MCIgaGVpZ2h0PSI3MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIxMTUiIHk9IjYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMWQ0ZWQ4Ij50b3AgaGFsZjwvdGV4dD4KICA8dGV4dCB4PSIxMTUiIHk9Ijk3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMTU4MDNkIj5ib3R0b20gaGFsZjwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9IjYyIj7ihpIgZ29lcyA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+aW4gZnJvbnQ8L3RzcGFuPjwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9Ijk3Ij7ihpIgZ29lcyA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+YWZ0ZXI8L3RzcGFuPjwvdGV4dD4KICA8cmVjdCB4PSIyMCIgeT0iMTMyIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjQwIiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjExNSIgeT0iMTU3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2Ij7DuDwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9IjE1NyI+4oaSIDx0c3BhbiBmb250LXdlaWdodD0iNjAwIj5yZXBsYWNlczwvdHNwYW4+IGl0PC90ZXh0Pgo8L3N2Zz4K",nS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjEwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjIxMCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE2Ij5pbnQgYWdlID0gMTQ8L3RleHQ+CiAgPHBhdGggZD0iTTEzMCA3MCBMMTcwIDUwIEwzMDAgNTAgTDI2MCA3MCBaIiBmaWxsPSIjYzk4YTNjIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxyZWN0IHg9IjE4MCIgeT0iMzQiIHdpZHRoPSI0NCIgaGVpZ2h0PSI1MCIgcng9IjMiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICA8dGV4dCB4PSIyMDIiIHk9IjYwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjIwIiBmb250LXdlaWdodD0iNzAwIj4xNDwvdGV4dD4KICA8cmVjdCB4PSIxMzAiIHk9IjcwIiB3aWR0aD0iMTMwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iI2U5Yjg3MiIgc3Ryb2tlPSIjOGE1YTFmIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBkPSJNMjYwIDcwIEwzMDAgNTAgTDMwMCAxNTAgTDI2MCAxNzAgWiIgZmlsbD0iI2Q0OWE0YyIgc3Ryb2tlPSIjOGE1YTFmIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cmVjdCB4PSIxNTAiIHk9IjEwMCIgd2lkdGg9IjkwIiBoZWlnaHQ9IjMwIiByeD0iNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjOGE1YTFmIi8+CiAgPHRleHQgeD0iMTk1IiB5PSIxMjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPmFnZTwvdGV4dD4KICA8cmVjdCB4PSIxMzgiIHk9IjE0MiIgd2lkdGg9IjM0IiBoZWlnaHQ9IjIwIiByeD0iMTAiIGZpbGw9IiMwMDdhZmYiLz4KICA8dGV4dCB4PSIxNTUiIHk9IjE1NiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMiIgZmlsbD0iI2ZmZmZmZiIgZm9udC13ZWlnaHQ9IjYwMCI+aW50PC90ZXh0PgogIDxnIHN0cm9rZT0iIzZlNmU3MyI+CiAgICA8bGluZSB4MT0iMzEwIiB5MT0iNDgiIHgyPSIyMjYiIHkyPSI1MiIvPgogICAgPGxpbmUgeDE9IjMxMCIgeTE9IjExNSIgeDI9IjI0MiIgeTI9IjExNSIvPgogICAgPGxpbmUgeDE9IjgwIiB5MT0iMTUyIiB4Mj0iMTM0IiB5Mj0iMTUyIi8+CiAgPC9nPgogIDx0ZXh0IHg9IjMxNiIgeT0iNTIiPlZhbHVlPC90ZXh0PgogIDx0ZXh0IHg9IjMxNiIgeT0iMTE5Ij5OYW1lPC90ZXh0PgogIDx0ZXh0IHg9IjgiIHk9IjE1NiI+RGF0YSB0eXBlPC90ZXh0PgogIDx0ZXh0IHg9IjIwMCIgeT0iMTk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5UaGUgbmFtZSBnZXRzIHlvdSB0byB0aGUgdmFsdWUuPC90ZXh0Pgo8L3N2Zz4K",aS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjAwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjAwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjAiPgogICAgPHRleHQgeD0iNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+cG9pbnRzPC90ZXh0PgogICAgPHRleHQgeD0iMTI1IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPj08L3RleHQ+CiAgICA8dGV4dCB4PSIyNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cG9pbnRzICsgNTwvdGV4dD4KICA8L2c+CiAgPHJlY3QgeD0iMTgwIiB5PSI4NiIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjYwIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPuKRoCB3b3JrIG91dCB0aGUgcmlnaHQ6IDEwICsgNSA9IDE1PC90ZXh0PgogIDxwYXRoIGQ9Ik0yNTAgODIgQzIzMCAzMCwgOTAgMzAsIDY0IDg0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDdhZmYiIHN0cm9rZS13aWR0aD0iMi41IiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgPHRleHQgeD0iMTYwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiI+4pGhIHN0b3JlIHRoZSByZXN1bHQgb24gdGhlIGxlZnQ8L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9IjE2NCIgd2lkdGg9IjM2MCIgaGVpZ2h0PSIyNiIgcng9IjYiIGZpbGw9IiNmMmYyZjciLz4KICA8dGV4dCB4PSIyMDAiIHk9IjE4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cG9pbnRzIGJlZm9yZTogPHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiPjEwPC90c3Bhbj4gICDihpIgICBwb2ludHMgYWZ0ZXI6IDx0c3BhbiBmb250LXdlaWdodD0iNzAwIj4xNTwvdHNwYW4+PC90ZXh0Pgo8L3N2Zz4K",iS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjYwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjYwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTQwIDExMCBMNDggMTgwIEwxMDIgMTgwIEwxMTAgMTEwIi8+CiAgICA8cGF0aCBkPSJNMTY1IDExMCBMMTczIDE4MCBMMjI3IDE4MCBMMjM1IDExMCIvPgogICAgPHBhdGggZD0iTTI5MCAxMTAgTDI5OCAxODAgTDM1MiAxODAgTDM2MCAxMTAiLz4KICA8L2c+CiAgPHBhdGggZD0iTTQ0IDEzNSBMNDggMTgwIEwxMDIgMTgwIEwxMDYgMTM1IFoiIGZpbGw9IiNmZGJhNzQiLz4KICA8cGF0aCBkPSJNMjk0IDEzNSBMMjk4IDE4MCBMMzUyIDE4MCBMMzU2IDEzNSBaIiBmaWxsPSIjOTNjNWZkIi8+CiAgPHRleHQgeD0iNzUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+bGVmdDwvdGV4dD4KICA8dGV4dCB4PSI3NSIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5qdWljZTwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+dGVtcDwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+ZW1wdHk8L3RleHQ+CiAgPHRleHQgeD0iMzI1IiB5PSIyMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPnJpZ2h0PC90ZXh0PgogIDx0ZXh0IHg9IjMyNSIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj53YXRlcjwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxwYXRoIGQ9Ik04OCAxMDQgQzExMCA3MCwgMTYwIDcwLCAxODYgMTA0Ii8+CiAgICA8cGF0aCBkPSJNMzE4IDEwNCBDMjcwIDE1LCAxMzAgMTUsIDgyIDEwNCIvPgogICAgPHBhdGggZD0iTTIxNCAxMDQgQzI0MCA3MCwgMjkwIDcwLCAzMTIgMTA0Ii8+CiAgPC9nPgogIDxnIGZvbnQtd2VpZ2h0PSI3MDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgPGNpcmNsZSBjeD0iMTM3IiBjeT0iODAiIHI9IjExIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz48dGV4dCB4PSIxMzciIHk9Ijg1Ij4xPC90ZXh0PgogICAgPGNpcmNsZSBjeD0iMjAwIiBjeT0iMzgiIHI9IjExIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz48dGV4dCB4PSIyMDAiIHk9IjQzIj4yPC90ZXh0PgogICAgPGNpcmNsZSBjeD0iMjYzIiBjeT0iODAiIHI9IjExIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz48dGV4dCB4PSIyNjMiIHk9Ijg1Ij4zPC90ZXh0PgogIDwvZz4KICA8ZyB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxMiI+CiAgICA8dGV4dCB4PSI3MCIgeT0iMjQ3Ij4xOiB0ZW1wID0gbGVmdDwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMjQ3Ij4yOiBsZWZ0ID0gcmlnaHQ8L3RleHQ+CiAgICA8dGV4dCB4PSIzMzAiIHk9IjI0NyI+MzogcmlnaHQgPSB0ZW1wPC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",sS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE1MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDxyZWN0IHg9IjIwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+PHJlY3QgeD0iMzEwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+CiAgPHJlY3QgeD0iOTAiIHk9IjUwIiB3aWR0aD0iMjIwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZGNmY2U3Ii8+CiAgPGxpbmUgeDE9IjIwIiB5MT0iNzQiIHgyPSIzODAiIHkyPSI3NCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8bGluZSB4MT0iNDYiIHkxPSI2OCIgeDI9IjQ2IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iNDYiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4wPC90ZXh0PgogIDxsaW5lIHgxPSI5MCIgeTE9IjY4IiB4Mj0iOTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSI5MCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjE8L3RleHQ+CiAgPGxpbmUgeDE9IjEzNCIgeTE9IjY4IiB4Mj0iMTM0IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMTM0IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MjwvdGV4dD4KICA8bGluZSB4MT0iMTc4IiB5MT0iNjgiIHgyPSIxNzgiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIxNzgiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4zPC90ZXh0PgogIDxsaW5lIHgxPSIyMjIiIHkxPSI2OCIgeDI9IjIyMiIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjIyMiIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjQ8L3RleHQ+CiAgPGxpbmUgeDE9IjI2NiIgeTE9IjY4IiB4Mj0iMjY2IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMjY2IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+NTwvdGV4dD4KICA8bGluZSB4MT0iMzEwIiB5MT0iNjgiIHgyPSIzMTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIzMTAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj42PC90ZXh0PgogIDxsaW5lIHgxPSIzNTQiIHkxPSI2OCIgeDI9IjM1NCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjM1NCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjc8L3RleHQ+CiAgPGNpcmNsZSBjeD0iOTAiIGN5PSI3NCIgcj0iNiIgZmlsbD0iIzE1ODAzZCIvPjxjaXJjbGUgY3g9IjMxMCIgY3k9Ijc0IiByPSI2IiBmaWxsPSIjMTU4MDNkIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI0MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dmFsaWQ8L3RleHQ+CiAgPHRleHQgeD0iNDAiIHk9IjQwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5pbnZhbGlkPC90ZXh0Pjx0ZXh0IHg9IjM2MCIgeT0iNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiIGZvbnQtd2VpZ2h0PSI2MDAiPmludmFsaWQ8L3RleHQ+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgPHRleHQgeD0iMjAwIiB5PSIxMjQiIGZpbGw9IiMxNTgwM2QiPmdyYWRlICZndDs9IDEgJmFtcDsmYW1wOyBncmFkZSAmbHQ7PSA2PC90ZXh0PgogICAgPHRleHQgeD0iMjAwIiB5PSIxNDIiIGZpbGw9IiNiOTFjMWMiPmdyYWRlICZsdDsgMSB8fCBncmFkZSAmZ3Q7IDY8L3RleHQ+CiAgPC9nPgo8L3N2Zz4K",rS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIj5Ib3cgdGhlIHdoaWxlIGxvb3AgcnVuczwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9IjQ0IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjQwIiByeD0iMjAiIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI2OSIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIGNoZWNrIHRoZSBjb25kaXRpb248L3RleHQ+CiAgPHJlY3QgeD0iMTIwIiB5PSIxMjgiIHdpZHRoPSIxNjAiIGhlaWdodD0iNDAiIHJ4PSI2IiBmaWxsPSIjZGJlYWZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMTUzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgcnVuIHRoZSBpbnNpZGU8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iODQiIHgyPSIyMDAiIHkyPSIxMjYiLz4KICAgIDxwYXRoIGQ9Ik0xMjAgMTQ4IEM4MCAxNDgsIDgwIDY0LCAxMTggNjQiLz4KICAgIDxwYXRoIGQ9Ik0yODAgNjQgTDM0MCA2NCBMMzQwIDIwMCBMMjgyIDIwMCIvPgogIDwvZz4KICA8dGV4dCB4PSIyMDgiIHk9IjExMCIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dHJ1ZTwvdGV4dD4KICA8dGV4dCB4PSIzOCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5iYWNrPC90ZXh0PgogIDx0ZXh0IHg9IjM4IiB5PSIxMjYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPnRvIHRoZSB0b3A8L3RleHQ+CiAgPHRleHQgeD0iMzQ4IiB5PSIxMzQiIGZpbGw9IiNiOTFjMWMiIGZvbnQtd2VpZ2h0PSI2MDAiPmZhbHNlPC90ZXh0PgogIDx0ZXh0IHg9IjI3NiIgeT0iMjA1IiB0ZXh0LWFuY2hvcj0iZW5kIj5jb250aW51ZSBiZWxvdyB0aGUgbG9vcDwvdGV4dD4KPC9zdmc+Cg==",oS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+cHJlLXRlc3QgKHdoaWxlKTwvdGV4dD4KICA8dGV4dCB4PSIzMDAiIHk9IjIyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNjAwIj5wb3N0LXRlc3QgKGRvLXdoaWxlKTwvdGV4dD4KICA8bGluZSB4MT0iMjAwIiB5MT0iMTAiIHgyPSIyMDAiIHkyPSIyMjAiIHN0cm9rZT0iI2QxZDFkNiIvPgogIDxyZWN0IHg9IjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjEwMCIgeT0iNjciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoCBjb25kaXRpb248L3RleHQ+CiAgPHJlY3QgeD0iMzUiIHk9IjEyNCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIxNDciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoSBpbnNpZGU8L3RleHQ+CiAgPHJlY3QgeD0iMjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzAwIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIGluc2lkZTwvdGV4dD4KICA8cmVjdCB4PSIyMzUiIHk9IjEyNCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjMwMCIgeT0iMTQ3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgY29uZGl0aW9uPC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjYiIG1hcmtlci1lbmQ9InVybCgjYSkiPgogICAgPGxpbmUgeDE9IjEwMCIgeTE9IjgwIiB4Mj0iMTAwIiB5Mj0iMTIyIi8+CiAgICA8cGF0aCBkPSJNMzUgMTQyIEM4IDE0MiwgOCA2MiwgMzMgNjIiLz4KICAgIDxsaW5lIHgxPSIzMDAiIHkxPSI4MCIgeDI9IjMwMCIgeTI9IjEyMiIvPgogICAgPHBhdGggZD0iTTM2NSAxNDIgQzM5MiAxNDIsIDM5MiA2MiwgMzY3IDYyIi8+CiAgPC9nPgogIDx0ZXh0IHg9IjEwNiIgeT0iMTA2IiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjM4MCIgeT0iMTA2IiB0ZXh0LWFuY2hvcj0iZW5kIiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5JZiB0aGUgY29uZGl0aW9uIGlzIGZhbHNlIGF0IG9uY2UsPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMjA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj50aGUgaW5zaWRlIHJ1bnMgPHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPm5ldmVyPC90c3Bhbj4uPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5UaGUgaW5zaWRlIGFsd2F5cyBydW5zPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMjA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj48dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+YXQgbGVhc3Qgb25jZTwvdHNwYW4+LjwvdGV4dD4KPC9zdmc+Cg==",lS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjUwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTIwIiB5PSIxNCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIFN0YXJ0IDx0c3BhbiBmaWxsPSIjNmU2ZTczIj4ob25seSBvbmNlKTwvdHNwYW4+PC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iNzYiIHdpZHRoPSIxNjAiIGhlaWdodD0iMzQiIHJ4PSIxNyIgZmlsbD0iI2ZlZjNjNyIgc3Ryb2tlPSIjYjQ1MzA5IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgY2hlY2sgdGhlIGNvbmRpdGlvbjwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9IjEzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIxNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoiBydW4gdGhlIGluc2lkZTwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9IjIwMCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIyMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoyBzdGVwLCBlLmcuIGkrKzwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMDAiIHkxPSI0OCIgeDI9IjIwMCIgeTI9Ijc0Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTEwIiB4Mj0iMjAwIiB5Mj0iMTM2Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTcyIiB4Mj0iMjAwIiB5Mj0iMTk4Ii8+CiAgICA8cGF0aCBkPSJNMTIwIDIxNyBDNjAgMjE3LCA2MCA5MywgMTE4IDkzIi8+CiAgICA8cGF0aCBkPSJNMjgwIDkzIEwzMzAgOTMiLz4KICA8L2c+CiAgPHRleHQgeD0iMjA4IiB5PSIxMjkiIGZpbGw9IiMxNTgwM2QiIGZvbnQtd2VpZ2h0PSI2MDAiPnRydWU8L3RleHQ+CiAgPHRleHQgeD0iNDgiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+YmFjazwvdGV4dD4KICA8dGV4dCB4PSI0OCIgeT0iMTc2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj50byDikaE8L3RleHQ+CiAgPHRleHQgeD0iMzAwIiB5PSI4NCIgZmlsbD0iI2I5MWMxYyIgZm9udC13ZWlnaHQ9IjYwMCI+ZmFsc2U8L3RleHQ+CiAgPHRleHQgeD0iMzM2IiB5PSI5OCI+ZG9uZTwvdGV4dD4KPC9zdmc+Cg==",uS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMTkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNCI+aW50W10gbnVtYmVycyA9IHsyLCA0LCA2LCA4LCAxMH08L3RleHQ+CiAgPHRleHQgeD0iMjAiIHk9IjU0IiBmaWxsPSIjNmU2ZTczIiBmb250LXNpemU9IjEyIj5JbmRleDwvdGV4dD4KICA8dGV4dCB4PSI5MCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjA8L3RleHQ+PHJlY3QgeD0iNjAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iOTAiIHk9IjkyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNjAwIj4yPC90ZXh0PgogIDx0ZXh0IHg9IjE1MCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjE8L3RleHQ+PHJlY3QgeD0iMTIwIiB5PSI2MiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjE1MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjQ8L3RleHQ+CiAgPHRleHQgeD0iMjEwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MjwvdGV4dD48cmVjdCB4PSIxODAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMjEwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+NjwvdGV4dD4KICA8dGV4dCB4PSIyNzAiIHk9IjU0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWZmIiBmb250LXdlaWdodD0iNzAwIj4zPC90ZXh0PjxyZWN0IHg9IjI0MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIyNzAiIHk9IjkyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNjAwIj44PC90ZXh0PgogIDx0ZXh0IHg9IjMzMCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjQ8L3RleHQ+PHJlY3QgeD0iMzAwIiB5PSI2MiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjMzMCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjEwPC90ZXh0PgogIDx0ZXh0IHg9IjIwIiB5PSI5MCIgZmlsbD0iIzZlNmU3MyIgZm9udC1zaXplPSIxMiI+VmFsdWU8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDA3YWZmIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+PGxpbmUgeDE9IjkwIiB5MT0iMTQwIiB4Mj0iOTAiIHkyPSIxMTIiLz48bGluZSB4MT0iMzMwIiB5MT0iMTQwIiB4Mj0iMzMwIiB5Mj0iMTEyIi8+PC9nPgogIDxnIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXNpemU9IjEzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj48dGV4dCB4PSI5MCIgeT0iMTU2Ij5udW1iZXJzWzBdIGlzIDI8L3RleHQ+PHRleHQgeD0iMzMwIiB5PSIxNTYiPm51bWJlcnNbNF0gaXMgMTA8L3RleHQ+PC9nPgogIDx0ZXh0IHg9IjIwMCIgeT0iMTgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj41IHNsb3RzLCBjb3VudGluZyBzdGFydHMgYXQgMDogdGhlIGxhc3QgaW5kZXggaXMgNC48L3RleHQ+Cjwvc3ZnPgo=",mS=""+new URL("mvc-klick-BIA_bYzu.svg",import.meta.url).href,cS=""+new URL("ss-binaere-suche-D02W1TH_.svg",import.meta.url).href,dS=""+new URL("ss-bubblesort-CmKEoNfO.svg",import.meta.url).href,hS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDQgMTk2IiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KPHJlY3Qgd2lkdGg9IjQwNCIgaGVpZ2h0PSIxOTYiIGZpbGw9IiNmZmZmZmYiLz4KPHRleHQgeD0iMTQiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIiBmb250LXNpemU9IjE1Ij5Mb29raW5nIGZvciB0aGUgOS4gVGhlIGNhcmRzIGFyZSBtaXhlZCB1cC48L3RleHQ+CjxnPjxyZWN0IHg9IjE0IiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48dGV4dCB4PSIzNC4wIiB5PSI3NS4yIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjZGMyNjI2Ij43PC90ZXh0Pjx0ZXh0IHg9IjM0LjAiIHk9Ijk1LjkxOTk5OTk5OTk5OTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmaWxsPSIjZGMyNjI2Ij7imaU8L3RleHQ+PC9nPgo8dGV4dCB4PSIzNC4wIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiNkYzI2MjYiPuKclzwvdGV4dD4KPHRleHQgeD0iMzQuMCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj4xLjwvdGV4dD4KPGc+PHJlY3QgeD0iNjIiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjx0ZXh0IHg9IjgyLjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPjM8L3RleHQ+PHRleHQgeD0iODIuMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiMxYzFjMWUiPuKZoDwvdGV4dD48L2c+Cjx0ZXh0IHg9IjgyLjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSI4Mi4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjIuPC90ZXh0Pgo8Zz48cmVjdCB4PSIxMTAiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjx0ZXh0IHg9IjEzMC4wIiB5PSI3NS4yIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjZGMyNjI2Ij4xMDwvdGV4dD48dGV4dCB4PSIxMzAuMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiNkYzI2MjYiPuKZpjwvdGV4dD48L2c+Cjx0ZXh0IHg9IjEzMC4wIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiNkYzI2MjYiPuKclzwvdGV4dD4KPHRleHQgeD0iMTMwLjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+My48L3RleHQ+CjxnPjxyZWN0IHg9IjE1OCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iMTc4LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPjU8L3RleHQ+PHRleHQgeD0iMTc4LjAiIHk9Ijk1LjkxOTk5OTk5OTk5OTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmaWxsPSIjMWMxYzFlIj7imaM8L3RleHQ+PC9nPgo8dGV4dCB4PSIxNzguMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjZGMyNjI2Ij7inJc8L3RleHQ+Cjx0ZXh0IHg9IjE3OC4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjQuPC90ZXh0Pgo8Zz48cmVjdCB4PSIyMDYiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiMxNTgwM2QiIHN0cm9rZS13aWR0aD0iMyIvPjx0ZXh0IHg9IjIyNi4wIiB5PSI3NS4yIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjMWMxYzFlIj45PC90ZXh0Pjx0ZXh0IHg9IjIyNi4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzFjMWMxZSI+4pmgPC90ZXh0PjwvZz4KPHRleHQgeD0iMjI2LjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iIzE1ODAzZCI+4pyTPC90ZXh0Pgo8dGV4dCB4PSIyMjYuMCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj41LjwvdGV4dD4KPGc+PHJlY3QgeD0iMjU0IiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iIzFkNGVkOCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48cmVjdCB4PSIyNTgiIHk9IjU0IiB3aWR0aD0iMzIiIGhlaWdodD0iNDgiIHJ4PSIzIiBmaWxsPSJub25lIiBzdHJva2U9IiM5M2M1ZmQiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSIzIDIiLz48L2c+CjxnPjxyZWN0IHg9IjMwMiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiMxZDRlZDgiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHJlY3QgeD0iMzA2IiB5PSI1NCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjQ4IiByeD0iMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTNjNWZkIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWRhc2hhcnJheT0iMyAyIi8+PC9nPgo8Zz48cmVjdCB4PSIzNTAiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjMWQ0ZWQ4IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjxyZWN0IHg9IjM1NCIgeT0iNTQiIHdpZHRoPSIzMiIgaGVpZ2h0PSI0OCIgcng9IjMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzkzYzVmZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMiIvPjwvZz4KPHRleHQgeD0iMTQiIHk9IjE2OCIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzZlNmU3MyI+VHVybiB0aGVtIG92ZXIgZnJvbSBsZWZ0IHRvIHJpZ2h0OjwvdGV4dD48dGV4dCB4PSIxNCIgeT0iMTg4IiBmb250LXNpemU9IjE1IiBmaWxsPSIjNmU2ZTczIj5BZnRlciA1IGNvbXBhcmlzb25zIHRoZSA5IGlzIGZvdW5kLjwvdGV4dD4KPC9zdmc+Cg==",gS=""+new URL("ss-vergleiche-UczNldcC.svg",import.meta.url).href,pS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MjAgNDUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KPGRlZnM+PG1hcmtlciBpZD0iayIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI5IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNiIgbWFya2VySGVpZ2h0PSI2IiBvcmllbnQ9ImF1dG8iPjxwYXRoIGQ9Ik0wIDAgTDEwIDUgTDAgMTAgWiIgZmlsbD0iIzFjMWMxZSIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9ImIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOSIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjYiIG1hcmtlckhlaWdodD0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCAwIEwxMCA1IEwwIDEwIFoiIGZpbGw9IiMxZDRlZDgiLz48L21hcmtlcj48bWFya2VyIGlkPSJvIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI2IiBtYXJrZXJIZWlnaHQ9IjYiIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjYjQ1MzA5Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB3aWR0aD0iNDIwIiBoZWlnaHQ9IjQ1MCIgZmlsbD0iI2ZmZmZmZiIvPgo8dGV4dCB4PSIxMCIgeT0iMjIiIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiPkNhbGwgYnkgdmFsdWU6IGEgY29weTwvdGV4dD4KPHJlY3QgeD0iMTAiIHk9IjM4IiB3aWR0aD0iMTYwIiBoZWlnaHQ9Ijg2IiByeD0iOCIgZmlsbD0iI2VmZjZmZiIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyMCIgeT0iNTgiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPk1haW4gcHJvZ3JhbTwvdGV4dD4KPHRleHQgeD0iMTYiIHk9Ijk4IiBmb250LXNpemU9IjEyIj5udW1iZXI8L3RleHQ+CjxyZWN0IHg9IjcwIiB5PSI3OCIgd2lkdGg9IjU2IiBoZWlnaHQ9IjMwIiByeD0iNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+Cjx0ZXh0IHg9Ijk4IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+NTwvdGV4dD4KPHJlY3QgeD0iMjUwIiB5PSIzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4NiIgcng9IjgiIGZpbGw9IiNmZmY3ZWQiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjYwIiB5PSI1OCIgZm9udC1zaXplPSIxMyIgZmlsbD0iI2I0NTMwOSI+ZG91YmxlSXQ8L3RleHQ+Cjx0ZXh0IHg9IjI2MCIgeT0iOTgiPng8L3RleHQ+CjxyZWN0IHg9IjI4MCIgeT0iNzgiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMCIgcng9IjQiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8dGV4dCB4PSIzMjAiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj48dHNwYW4gZmlsbD0iIzZlNmU3MyIgdGV4dC1kZWNvcmF0aW9uPSJsaW5lLXRocm91Z2giPjU8L3RzcGFuPiA8dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCI+MTA8L3RzcGFuPjwvdGV4dD4KPGxpbmUgeDE9IjEyOCIgeTE9IjkzIiB4Mj0iMjQ4IiB5Mj0iOTMiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNCIgbWFya2VyLWVuZD0idXJsKCNrKSIvPgo8dGV4dCB4PSIyMTAiIHk9Ijg0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5jb3B5PC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iMTUwIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj54IGJlY29tZXMgMTAsIGJ1dCBudW1iZXIgc3RheXMgNS48L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxNjgiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPkxpa2UgYSBwaG90b2NvcHk6IHdyaXRpbmcgb24gdGhlIGNvcHk8L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxODYiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPmRvZXMgbm90IGNoYW5nZSB0aGUgb3JpZ2luYWwuPC90ZXh0Pgo8bGluZSB4MT0iMTAiIHkxPSIyMDgiIHgyPSI0MTAiIHkyPSIyMDgiIHN0cm9rZT0iI2QxZDFkNiIvPgo8dGV4dCB4PSIxMCIgeT0iMjM2IiBmb250LXNpemU9IjE1IiBmb250LXdlaWdodD0iNzAwIj5DYWxsIGJ5IHJlZmVyZW5jZTogdGhlIHNhbWUgYXJyYXk8L3RleHQ+CjxyZWN0IHg9IjEwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZWZmNmZmIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjIwIiB5PSIyNzIiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPk1haW4gcHJvZ3JhbTwvdGV4dD4KPHRleHQgeD0iMjAiIHk9IjMwMCI+cm93PC90ZXh0Pgo8Y2lyY2xlIGN4PSIxNTAiIGN5PSIyOTUiIHI9IjUiIGZpbGw9IiMxZDRlZDgiLz4KPHJlY3QgeD0iMjUwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZmZmN2VkIiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjI2MCIgeT0iMjcyIiBmb250LXNpemU9IjEzIiBmaWxsPSIjYjQ1MzA5Ij5jbGVhcjwvdGV4dD4KPHRleHQgeD0iMjYwIiB5PSIzMDAiPnNlYXRzPC90ZXh0Pgo8Y2lyY2xlIGN4PSIzOTAiIGN5PSIyOTUiIHI9IjUiIGZpbGw9IiNiNDUzMDkiLz4KPHBhdGggZD0iTTE1MCAzMDAgTDE1MCAzNDAgTDE0MCAzNTIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIxLjUiIG1hcmtlci1lbmQ9InVybCgjYikiLz4KPHBhdGggZD0iTTM5MCAzMDAgTDM5MCAzNDAgTDMyMiAzNTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiIG1hcmtlci1lbmQ9InVybCgjbykiLz4KPHJlY3QgeD0iOTAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHJlY3QgeD0iMTUwIiB5PSIzNTgiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+CjxyZWN0IHg9IjIxMCIgeT0iMzU4IiB3aWR0aD0iNjAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8cmVjdCB4PSIyNzAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHRleHQgeD0iMTIwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIxODAiIHk9IjM3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+ZmFsc2U8L3RleHQ+Cjx0ZXh0IHg9IjI0MCIgeT0iMzc5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5mYWxzZTwvdGV4dD4KPHRleHQgeD0iMzAwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iNDE2IiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj5UaGVyZSBpcyBvbmx5IG9uZSBhcnJheS4gV2hhdCBjbGVhciBjaGFuZ2VzIHRocm91Z2ggc2VhdHMsPC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iNDM0IiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj50aGUgbWFpbiBwcm9ncmFtIHNlZXMgdW5kZXIgcm93LjwvdGV4dD4KPC9zdmc+Cg==",fS=""+new URL("zk-zeichen-CgUEhNoK.svg",import.meta.url).href,xS=""+new URL("ike-nassi-D2w47gvX.jpg",import.meta.url).href,bS=""+new URL("kino-saal-CYMOok4_.svg",import.meta.url).href,yS=""+new URL("kino-schleifen-DrTQV7dq.svg",import.meta.url).href,vS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDkyIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iNDkyIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiPgogICAgPCEtLSBTdGFydCAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjgiIHJ4PSIxNCIgZmlsbD0iI2QxZjJkOSIvPgogICAgPGxpbmUgeDE9IjE1MCIgeTE9IjM4IiB4Mj0iMTUwIiB5Mj0iNTQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gQW53ZWlzdW5nIC0tPgogICAgPHJlY3QgeD0iNTAiIHk9IjU2IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iODYiIHgyPSIxNTAiIHkyPSI5OCIgbWFya2VyLWVuZD0idXJsKCNhKSIvPgogICAgPCEtLSBSYXV0ZSAxIC0tPgogICAgPHBhdGggZD0iTTE1MCAxMDAgTDIzNSAxMjggTDE1MCAxNTYgTDY1IDEyOCBaIiBmaWxsPSIjZmZmNGQ2Ii8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMTU2IiB4Mj0iMTUwIiB5Mj0iMTcyIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8cmVjdCB4PSI1MCIgeT0iMTc0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMjA0IiB4Mj0iMTUwIiB5Mj0iMjUwIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIG5laW4tV2VnIHVtIGRlbiBLYXN0ZW4gaGVydW0gLS0+CiAgICA8cG9seWxpbmUgcG9pbnRzPSIyMzUsMTI4IDI4NSwxMjggMjg1LDIyMiAxNTAsMjIyIiBmaWxsPSJub25lIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIFJhdXRlIDIgLS0+CiAgICA8cGF0aCBkPSJNMTUwIDI1MiBMMjM1IDI4MCBMMTUwIDMwOCBMNjUgMjgwIFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxsaW5lIHgxPSIyMzUiIHkxPSIyODAiIHgyPSIyNjgiIHkyPSIyODAiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjI3MCIgeT0iMjY1IiB3aWR0aD0iMTE1IiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8IS0tIHp1csO8Y2sgenVyIFByw7xmdW5nIC0tPgogICAgPHBvbHlsaW5lIHBvaW50cz0iMzI3LDI2NSAzMjcsMjM4IDE1MCwyMzgiIGZpbGw9Im5vbmUiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzMDgiIHgyPSIxNTAiIHkyPSIzMjYiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjUwIiB5PSIzMjgiIHdpZHRoPSIyMDAiIGhlaWdodD0iMzAiIGZpbGw9IiNlNWYwZmYiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzNTgiIHgyPSIxNTAiIHkyPSIzNzQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gRW5kZSAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMzc2IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjI4IiByeD0iMTQiIGZpbGw9IiNkMWYyZDkiLz4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSI+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI5Ij5TdGFydDwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iNzYiPlRhc3NlIGF1ZiBkZW4gVGlzY2ggc3RlbGxlbjwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTMzIj5adWNrZXIgZ2V3w7xuc2NodD88L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjE5NCI+WnVja2VyIGhpbmVpbmdlYmVuPC90ZXh0PgogICAgPHRleHQgeD0iMTUwIiB5PSIyODUiPlRlZSBub2NoIHp1IGhlacOfPzwvdGV4dD4KICAgIDx0ZXh0IHg9IjMyNy41IiB5PSIyODUiPjEgTWludXRlIHdhcnRlbjwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMzQ4Ij5UZWUgdHJpbmtlbjwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMzk1Ij5FbmRlPC90ZXh0PgogIDwvZz4KICA8ZyBmb250LXNpemU9IjEyIiBmb250LXdlaWdodD0iNjAwIj4KICAgIDx0ZXh0IHg9IjE1NiIgeT0iMTY4IiBmaWxsPSIjMjQ4YTNkIj5qYTwvdGV4dD4KICAgIDx0ZXh0IHg9IjI0MiIgeT0iMTIyIiBmaWxsPSIjZDcwMDE1Ij5uZWluPC90ZXh0PgogICAgPHRleHQgeD0iMjQwIiB5PSIyNzQiIGZpbGw9IiMyNDhhM2QiPmphPC90ZXh0PgogICAgPHRleHQgeD0iMTU2IiB5PSIzMjAiIGZpbGw9IiNkNzAwMTUiPm5laW48L3RleHQ+CiAgPC9nPgogIDwhLS0gTGVnZW5kZSAtLT4KICA8bGluZSB4MT0iMTAiIHkxPSI0MTgiIHgyPSIzOTAiIHkyPSI0MTgiIHN0cm9rZT0iI2QxZDFkNiIvPgogIDxnIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjUiPgogICAgPHJlY3QgeD0iNDAiIHk9IjQzMCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjE4IiByeD0iOSIgZmlsbD0iI2QxZjJkOSIvPgogICAgPHJlY3QgeD0iMjIwIiB5PSI0MzAiIHdpZHRoPSIzNiIgaGVpZ2h0PSIxOCIgZmlsbD0iI2U1ZjBmZiIvPgogICAgPHBhdGggZD0iTTU4IDQ1OCBMNzYgNDY5IEw1OCA0ODAgTDQwIDQ2OSBaIiBmaWxsPSIjZmZmNGQ2Ii8+CiAgICA8cGF0aCBkPSJNMjI2IDQ2MCBMMjU2IDQ2MCBMMjUwIDQ3OCBMMjIwIDQ3OCBaIiBmaWxsPSIjZjJlNmZmIi8+CiAgPC9nPgogIDxnIGZvbnQtc2l6ZT0iMTIiIGZpbGw9IiMzYTNhM2MiPgogICAgPHRleHQgeD0iODYiIHk9IjQ0MyI+U3RhcnQgb2RlciBFbmRlPC90ZXh0PgogICAgPHRleHQgeD0iMjY2IiB5PSI0NDMiPkFud2Vpc3VuZzwvdGV4dD4KICAgIDx0ZXh0IHg9Ijg2IiB5PSI0NzMiPlZlcnp3ZWlndW5nPC90ZXh0PgogICAgPHRleHQgeD0iMjY2IiB5PSI0NzMiPkVpbi0gb2RlciBBdXNnYWJlPC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",wS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE5MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwIiB5PSIyNCIgZm9udC13ZWlnaHQ9IjYwMCI+V29oaW4gbGFuZGV0IGRhcyBFbGVtZW50PzwvdGV4dD4KICA8cmVjdCB4PSIyMCIgeT0iNDAiIHdpZHRoPSIxOTAiIGhlaWdodD0iMzUiIGZpbGw9IiNkYmVhZmUiLz4KICA8cmVjdCB4PSIyMCIgeT0iNzUiIHdpZHRoPSIxOTAiIGhlaWdodD0iMzUiIGZpbGw9IiNkY2ZjZTciLz4KICA8bGluZSB4MT0iMjAiIHkxPSI3NSIgeDI9IjIxMCIgeTI9Ijc1IiBzdHJva2U9IiM2ZTZlNzMiIHN0cm9rZS1kYXNoYXJyYXk9IjQgMyIvPgogIDxyZWN0IHg9IjIwIiB5PSI0MCIgd2lkdGg9IjE5MCIgaGVpZ2h0PSI3MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIxMTUiIHk9IjYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMWQ0ZWQ4Ij5vYmVyZSBIw6RsZnRlPC90ZXh0PgogIDx0ZXh0IHg9IjExNSIgeT0iOTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPnVudGVyZSBIw6RsZnRlPC90ZXh0PgogIDx0ZXh0IHg9IjIyNCIgeT0iNjIiPuKGkiBrb21tdCA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+ZGF2b3I8L3RzcGFuPjwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9Ijk3Ij7ihpIga29tbXQgPHRzcGFuIGZvbnQtd2VpZ2h0PSI2MDAiPmRhaGludGVyPC90c3Bhbj48L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9IjEzMiIgd2lkdGg9IjE5MCIgaGVpZ2h0PSI0MCIgZmlsbD0iI2ZlZjNjNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIxMTUiIHk9IjE1NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiI+w7g8L3RleHQ+CiAgPHRleHQgeD0iMjI0IiB5PSIxNTciPuKGkiA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+ZXJzZXR6dDwvdHNwYW4+IGRlbiBQbGF0emhhbHRlcjwvdGV4dD4KPC9zdmc+Cg==",zS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjEwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjIxMCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE2Ij5pbnQgYWx0ZXIgPSAxNDwvdGV4dD4KICA8cGF0aCBkPSJNMTMwIDcwIEwxNzAgNTAgTDMwMCA1MCBMMjYwIDcwIFoiIGZpbGw9IiNjOThhM2MiIHN0cm9rZT0iIzhhNWExZiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHJlY3QgeD0iMTgwIiB5PSIzNCIgd2lkdGg9IjQ0IiBoZWlnaHQ9IjUwIiByeD0iMyIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjEuNSIvPgogIDx0ZXh0IHg9IjIwMiIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMjAiIGZvbnQtd2VpZ2h0PSI3MDAiPjE0PC90ZXh0PgogIDxyZWN0IHg9IjEzMCIgeT0iNzAiIHdpZHRoPSIxMzAiIGhlaWdodD0iMTAwIiBmaWxsPSIjZTliODcyIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxwYXRoIGQ9Ik0yNjAgNzAgTDMwMCA1MCBMMzAwIDE1MCBMMjYwIDE3MCBaIiBmaWxsPSIjZDQ5YTRjIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxyZWN0IHg9IjE1MCIgeT0iMTAwIiB3aWR0aD0iOTAiIGhlaWdodD0iMzAiIHJ4PSI0IiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiM4YTVhMWYiLz4KICA8dGV4dCB4PSIxOTUiIHk9IjEyMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+YWx0ZXI8L3RleHQ+CiAgPHJlY3QgeD0iMTM4IiB5PSIxNDIiIHdpZHRoPSIzNCIgaGVpZ2h0PSIyMCIgcng9IjEwIiBmaWxsPSIjMDA3YWZmIi8+CiAgPHRleHQgeD0iMTU1IiB5PSIxNTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTIiIGZpbGw9IiNmZmZmZmYiIGZvbnQtd2VpZ2h0PSI2MDAiPmludDwvdGV4dD4KICA8ZyBzdHJva2U9IiM2ZTZlNzMiPgogICAgPGxpbmUgeDE9IjMxMCIgeTE9IjQ4IiB4Mj0iMjI2IiB5Mj0iNTIiLz4KICAgIDxsaW5lIHgxPSIzMTAiIHkxPSIxMTUiIHgyPSIyNDIiIHkyPSIxMTUiLz4KICAgIDxsaW5lIHgxPSI4MCIgeTE9IjE1MiIgeDI9IjEzNCIgeTI9IjE1MiIvPgogIDwvZz4KICA8dGV4dCB4PSIzMTYiIHk9IjUyIj5XZXJ0PC90ZXh0PgogIDx0ZXh0IHg9IjMxNiIgeT0iMTE5Ij5OYW1lPC90ZXh0PgogIDx0ZXh0IHg9IjgiIHk9IjE1NiI+RGF0ZW50eXA8L3RleHQ+CiAgPHRleHQgeD0iMjAwIiB5PSIxOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPsOcYmVyIGRlbiBOYW1lbiBrb21tc3QgZHUgYW4gZGVuIFdlcnQuPC90ZXh0Pgo8L3N2Zz4K",IS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjAwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjAwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjAiPgogICAgPHRleHQgeD0iNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+cHVua3RlPC90ZXh0PgogICAgPHRleHQgeD0iMTI1IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPj08L3RleHQ+CiAgICA8dGV4dCB4PSIyNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cHVua3RlICsgNTwvdGV4dD4KICA8L2c+CiAgPHJlY3QgeD0iMTgwIiB5PSI4NiIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjYwIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPuKRoCByZWNodHMgYXVzcmVjaG5lbjogMTAgKyA1ID0gMTU8L3RleHQ+CiAgPHBhdGggZD0iTTI1MCA4MiBDMjMwIDMwLCA5MCAzMCwgNjQgODQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwN2FmZiIgc3Ryb2tlLXdpZHRoPSIyLjUiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICA8dGV4dCB4PSIxNjAiIHk9IjM2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWZmIj7ikaEgRXJnZWJuaXMgbGlua3Mgc3BlaWNoZXJuPC90ZXh0PgogIDxyZWN0IHg9IjIwIiB5PSIxNjQiIHdpZHRoPSIzNjAiIGhlaWdodD0iMjYiIHJ4PSI2IiBmaWxsPSIjZjJmMmY3Ii8+CiAgPHRleHQgeD0iMjAwIiB5PSIxODIiIHRleHQtYW5jaG9yPSJtaWRkbGUiPnB1bmt0ZSB2b3JoZXI6IDx0c3BhbiBmb250LXdlaWdodD0iNzAwIj4xMDwvdHNwYW4+ICAg4oaSICAgcHVua3RlIG5hY2hoZXI6IDx0c3BhbiBmb250LXdlaWdodD0iNzAwIj4xNTwvdHNwYW4+PC90ZXh0Pgo8L3N2Zz4K",kS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjYwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjYwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTQwIDExMCBMNDggMTgwIEwxMDIgMTgwIEwxMTAgMTEwIi8+CiAgICA8cGF0aCBkPSJNMTY1IDExMCBMMTczIDE4MCBMMjI3IDE4MCBMMjM1IDExMCIvPgogICAgPHBhdGggZD0iTTI5MCAxMTAgTDI5OCAxODAgTDM1MiAxODAgTDM2MCAxMTAiLz4KICA8L2c+CiAgPHBhdGggZD0iTTQ0IDEzNSBMNDggMTgwIEwxMDIgMTgwIEwxMDYgMTM1IFoiIGZpbGw9IiNmZGJhNzQiLz4KICA8cGF0aCBkPSJNMjk0IDEzNSBMMjk4IDE4MCBMMzUyIDE4MCBMMzU2IDEzNSBaIiBmaWxsPSIjOTNjNWZkIi8+CiAgPHRleHQgeD0iNzUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+bGlua3M8L3RleHQ+CiAgPHRleHQgeD0iNzUiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+U2FmdDwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+aGlsZjwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+bGVlcjwvdGV4dD4KICA8dGV4dCB4PSIzMjUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+cmVjaHRzPC90ZXh0PgogIDx0ZXh0IHg9IjMyNSIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5XYXNzZXI8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8cGF0aCBkPSJNODggMTA0IEMxMTAgNzAsIDE2MCA3MCwgMTg2IDEwNCIvPgogICAgPHBhdGggZD0iTTMxOCAxMDQgQzI3MCAxNSwgMTMwIDE1LCA4MiAxMDQiLz4KICAgIDxwYXRoIGQ9Ik0yMTQgMTA0IEMyNDAgNzAsIDI5MCA3MCwgMzEyIDEwNCIvPgogIDwvZz4KICA8ZyBmb250LXdlaWdodD0iNzAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4KICAgIDxjaXJjbGUgY3g9IjEzNyIgY3k9IjgwIiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMTM3IiB5PSI4NSI+MTwvdGV4dD4KICAgIDxjaXJjbGUgY3g9IjIwMCIgY3k9IjM4IiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMjAwIiB5PSI0MyI+MjwvdGV4dD4KICAgIDxjaXJjbGUgY3g9IjI2MyIgY3k9IjgwIiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMjYzIiB5PSI4NSI+MzwvdGV4dD4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTIiPgogICAgPHRleHQgeD0iNzAiIHk9IjI0NyI+MTogaGlsZiA9IGxpbmtzPC90ZXh0PgogICAgPHRleHQgeD0iMjAwIiB5PSIyNDciPjI6IGxpbmtzID0gcmVjaHRzPC90ZXh0PgogICAgPHRleHQgeD0iMzMwIiB5PSIyNDciPjM6IHJlY2h0cyA9IGhpbGY8L3RleHQ+CiAgPC9nPgo8L3N2Zz4K",SS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE1MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDxyZWN0IHg9IjIwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+PHJlY3QgeD0iMzEwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+CiAgPHJlY3QgeD0iOTAiIHk9IjUwIiB3aWR0aD0iMjIwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZGNmY2U3Ii8+CiAgPGxpbmUgeDE9IjIwIiB5MT0iNzQiIHgyPSIzODAiIHkyPSI3NCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8bGluZSB4MT0iNDYiIHkxPSI2OCIgeDI9IjQ2IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iNDYiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4wPC90ZXh0PgogIDxsaW5lIHgxPSI5MCIgeTE9IjY4IiB4Mj0iOTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSI5MCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjE8L3RleHQ+CiAgPGxpbmUgeDE9IjEzNCIgeTE9IjY4IiB4Mj0iMTM0IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMTM0IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MjwvdGV4dD4KICA8bGluZSB4MT0iMTc4IiB5MT0iNjgiIHgyPSIxNzgiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIxNzgiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4zPC90ZXh0PgogIDxsaW5lIHgxPSIyMjIiIHkxPSI2OCIgeDI9IjIyMiIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjIyMiIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjQ8L3RleHQ+CiAgPGxpbmUgeDE9IjI2NiIgeTE9IjY4IiB4Mj0iMjY2IiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMjY2IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+NTwvdGV4dD4KICA8bGluZSB4MT0iMzEwIiB5MT0iNjgiIHgyPSIzMTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIzMTAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj42PC90ZXh0PgogIDxsaW5lIHgxPSIzNTQiIHkxPSI2OCIgeDI9IjM1NCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjM1NCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjc8L3RleHQ+CiAgPGNpcmNsZSBjeD0iOTAiIGN5PSI3NCIgcj0iNiIgZmlsbD0iIzE1ODAzZCIvPjxjaXJjbGUgY3g9IjMxMCIgY3k9Ijc0IiByPSI2IiBmaWxsPSIjMTU4MDNkIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI0MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+Z8O8bHRpZzwvdGV4dD4KICA8dGV4dCB4PSI0MCIgeT0iNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiIGZvbnQtd2VpZ2h0PSI2MDAiPnVuZ8O8bHRpZzwvdGV4dD48dGV4dCB4PSIzNjAiIHk9IjQwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj51bmfDvGx0aWc8L3RleHQ+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgPHRleHQgeD0iMjAwIiB5PSIxMjQiIGZpbGw9IiMxNTgwM2QiPm5vdGUgJmd0Oz0gMSAmYW1wOyZhbXA7IG5vdGUgJmx0Oz0gNjwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMTQyIiBmaWxsPSIjYjkxYzFjIj5ub3RlICZsdDsgMSB8fCBub3RlICZndDsgNjwvdGV4dD4KICA8L2c+Cjwvc3ZnPgo=",OS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgMTkwIiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzFjMWMxZSI+CiAgPHJlY3Qgd2lkdGg9IjQ0MCIgaGVpZ2h0PSIxOTAiIGZpbGw9IiNmZmZmZmYiLz4KICA8cmVjdCB4PSIyMCIgeT0iMTQiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iNjAuMCIgeT0iMzUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI3MDAiPmE8L3RleHQ+CiAgPHJlY3QgeD0iMTAwIiB5PSIxNCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIxNDAuMCIgeT0iMzUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI3MDAiPmI8L3RleHQ+CiAgPHJlY3QgeD0iMTgwIiB5PSIxNCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIyMjAuMCIgeT0iMzUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI3MDAiPmEgJmFtcDsmYW1wOyBiPC90ZXh0PgogIDxyZWN0IHg9IjI2MCIgeT0iMTQiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMzAwLjAiIHk9IjM1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXdlaWdodD0iNzAwIj5hIHx8IGI8L3RleHQ+CiAgPHJlY3QgeD0iMzQwIiB5PSIxNCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIzODAuMCIgeT0iMzUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI3MDAiPiFhPC90ZXh0PgogIDxyZWN0IHg9IjIwIiB5PSI0NiIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSI2MC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIxMDAiIHk9IjQ2IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjE0MC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIxODAiIHk9IjQ2IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjIyMC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIyNjAiIHk9IjQ2IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjMwMC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIzNDAiIHk9IjQ2IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjM4MC4wIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9Ijc4IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjYwLjAiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMTU4MDNkIj50cnVlPC90ZXh0PgogIDxyZWN0IHg9IjEwMCIgeT0iNzgiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMTQwLjAiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIj5mYWxzZTwvdGV4dD4KICA8cmVjdCB4PSIxODAiIHk9Ijc4IiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjIyMC4wIiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMjYwIiB5PSI3OCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIzMDAuMCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPnRydWU8L3RleHQ+CiAgPHJlY3QgeD0iMzQwIiB5PSI3OCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmVlMmUyIiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIzODAuMCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiPmZhbHNlPC90ZXh0PgogIDxyZWN0IHg9IjIwIiB5PSIxMTAiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iNjAuMCIgeT0iMTMxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIj5mYWxzZTwvdGV4dD4KICA8cmVjdCB4PSIxMDAiIHk9IjExMCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZGNmY2U3IiBzdHJva2U9IiM4ZThlOTMiLz48dGV4dCB4PSIxNDAuMCIgeT0iMTMxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMTU4MDNkIj50cnVlPC90ZXh0PgogIDxyZWN0IHg9IjE4MCIgeT0iMTEwIiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjIyMC4wIiB5PSIxMzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiPmZhbHNlPC90ZXh0PgogIDxyZWN0IHg9IjI2MCIgeT0iMTEwIiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjMwMC4wIiB5PSIxMzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPnRydWU8L3RleHQ+CiAgPHJlY3QgeD0iMzQwIiB5PSIxMTAiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2RjZmNlNyIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMzgwLjAiIHk9IjEzMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8cmVjdCB4PSIyMCIgeT0iMTQyIiB3aWR0aD0iODAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZWUyZTIiIHN0cm9rZT0iIzhlOGU5MyIvPjx0ZXh0IHg9IjYwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMTAwIiB5PSIxNDIiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMTQwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMTgwIiB5PSIxNDIiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMjIwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMjYwIiB5PSIxNDIiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZlZTJlMiIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMzAwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iI2I5MWMxYyI+ZmFsc2U8L3RleHQ+CiAgPHJlY3QgeD0iMzQwIiB5PSIxNDIiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2RjZmNlNyIgc3Ryb2tlPSIjOGU4ZTkzIi8+PHRleHQgeD0iMzgwLjAiIHk9IjE2MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCI+dHJ1ZTwvdGV4dD4KICA8bGluZSB4MT0iMTgwIiB5MT0iMTQiIHgyPSIxODAiIHkyPSIxNzQiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIzIi8+Cjwvc3ZnPgo=",TS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIj5BYmxhdWYgZGVyIFdoaWxlLVNjaGxlaWZlPC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iNDQiIHdpZHRoPSIxNjAiIGhlaWdodD0iNDAiIHJ4PSIyMCIgZmlsbD0iI2ZlZjNjNyIgc3Ryb2tlPSIjYjQ1MzA5IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9IjY5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaAgQmVkaW5ndW5nIHByw7xmZW48L3RleHQ+CiAgPHJlY3QgeD0iMTIwIiB5PSIxMjgiIHdpZHRoPSIxNjAiIGhlaWdodD0iNDAiIHJ4PSI2IiBmaWxsPSIjZGJlYWZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMTUzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgSW5oYWx0IGF1c2bDvGhyZW48L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iODQiIHgyPSIyMDAiIHkyPSIxMjYiLz4KICAgIDxwYXRoIGQ9Ik0xMjAgMTQ4IEM4MCAxNDgsIDgwIDY0LCAxMTggNjQiLz4KICAgIDxwYXRoIGQ9Ik0yODAgNjQgTDM0MCA2NCBMMzQwIDIwMCBMMjgyIDIwMCIvPgogIDwvZz4KICA8dGV4dCB4PSIyMDgiIHk9IjExMCIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dHJ1ZTwvdGV4dD4KICA8dGV4dCB4PSIzOCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj53aWVkZXI8L3RleHQ+CiAgPHRleHQgeD0iMzgiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+bmFjaCBvYmVuPC90ZXh0PgogIDx0ZXh0IHg9IjM0OCIgeT0iMTM0IiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5mYWxzZTwvdGV4dD4KICA8dGV4dCB4PSIyNzYiIHk9IjIwNSIgdGV4dC1hbmNob3I9ImVuZCI+d2VpdGVyIHVudGVyIGRlciBTY2hsZWlmZTwvdGV4dD4KPC9zdmc+Cg==",AS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+a29wZmdlc3RldWVydCAoV2hpbGUpPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPmZ1w59nZXN0ZXVlcnQgKERvLXdoaWxlKTwvdGV4dD4KICA8bGluZSB4MT0iMjAwIiB5MT0iMTAiIHgyPSIyMDAiIHkyPSIyMjAiIHN0cm9rZT0iI2QxZDFkNiIvPgogIDxyZWN0IHg9IjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjEwMCIgeT0iNjciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoCBCZWRpbmd1bmc8L3RleHQ+CiAgPHJlY3QgeD0iMzUiIHk9IjEyNCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIxNDciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoSBJbmhhbHQ8L3RleHQ+CiAgPHJlY3QgeD0iMjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzAwIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIEluaGFsdDwvdGV4dD4KICA8cmVjdCB4PSIyMzUiIHk9IjEyNCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjMwMCIgeT0iMTQ3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgQmVkaW5ndW5nPC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjYiIG1hcmtlci1lbmQ9InVybCgjYSkiPgogICAgPGxpbmUgeDE9IjEwMCIgeTE9IjgwIiB4Mj0iMTAwIiB5Mj0iMTIyIi8+CiAgICA8cGF0aCBkPSJNMzUgMTQyIEM4IDE0MiwgOCA2MiwgMzMgNjIiLz4KICAgIDxsaW5lIHgxPSIzMDAiIHkxPSI4MCIgeDI9IjMwMCIgeTI9IjEyMiIvPgogICAgPHBhdGggZD0iTTM2NSAxNDIgQzM5MiAxNDIsIDM5MiA2MiwgMzY3IDYyIi8+CiAgPC9nPgogIDx0ZXh0IHg9IjEwNiIgeT0iMTA2IiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjM4MCIgeT0iMTA2IiB0ZXh0LWFuY2hvcj0iZW5kIiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5Jc3QgZGllIEJlZGluZ3VuZyBnbGVpY2ggZmFsc2UsPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMjA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5sw6R1ZnQgZGVyIEluaGFsdCA8dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+bmllPC90c3Bhbj4uPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5EZXIgSW5oYWx0IGzDpHVmdCBpbW1lcjwvdGV4dD4KICA8dGV4dCB4PSIzMDAiIHk9IjIwNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+PHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPm1pbmRlc3RlbnMgZWlubWFsPC90c3Bhbj4uPC90ZXh0Pgo8L3N2Zz4K",PS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjUwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTIwIiB5PSIxNCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIFN0YXJ0IDx0c3BhbiBmaWxsPSIjNmU2ZTczIj4obnVyIGVpbm1hbCk8L3RzcGFuPjwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9Ijc2IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjM0IiByeD0iMTciIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGhIEJlZGluZ3VuZyBwcsO8ZmVuPC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iMTM4IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjM0IiByeD0iNiIgZmlsbD0iI2RiZWFmZSIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGiIEluaGFsdCBhdXNmw7xocmVuPC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iMjAwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjM0IiByeD0iNiIgZmlsbD0iI2RjZmNlNyIgc3Ryb2tlPSIjMTU4MDNkIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9IjIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGjIFNjaHJpdHQsIHouIEIuIGkrKzwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMDAiIHkxPSI0OCIgeDI9IjIwMCIgeTI9Ijc0Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTEwIiB4Mj0iMjAwIiB5Mj0iMTM2Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTcyIiB4Mj0iMjAwIiB5Mj0iMTk4Ii8+CiAgICA8cGF0aCBkPSJNMTIwIDIxNyBDNjAgMjE3LCA2MCA5MywgMTE4IDkzIi8+CiAgICA8cGF0aCBkPSJNMjgwIDkzIEwzMzAgOTMiLz4KICA8L2c+CiAgPHRleHQgeD0iMjA4IiB5PSIxMjkiIGZpbGw9IiMxNTgwM2QiIGZvbnQtd2VpZ2h0PSI2MDAiPnRydWU8L3RleHQ+CiAgPHRleHQgeD0iNDgiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+enVyw7xjazwvdGV4dD4KICA8dGV4dCB4PSI0OCIgeT0iMTc2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj56dSDikaE8L3RleHQ+CiAgPHRleHQgeD0iMzAwIiB5PSI4NCIgZmlsbD0iI2I5MWMxYyIgZm9udC13ZWlnaHQ9IjYwMCI+ZmFsc2U8L3RleHQ+CiAgPHRleHQgeD0iMzM2IiB5PSI5OCI+ZmVydGlnPC90ZXh0Pgo8L3N2Zz4K",jS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMTkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNCI+aW50W10gemFobGVuID0gezIsIDQsIDYsIDgsIDEwfTwvdGV4dD4KICA8dGV4dCB4PSIyMCIgeT0iNTQiIGZpbGw9IiM2ZTZlNzMiIGZvbnQtc2l6ZT0iMTIiPkluZGV4PC90ZXh0PgogIDx0ZXh0IHg9IjkwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MDwvdGV4dD48cmVjdCB4PSI2MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSI5MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjI8L3RleHQ+CiAgPHRleHQgeD0iMTUwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MTwvdGV4dD48cmVjdCB4PSIxMjAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMTUwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+NDwvdGV4dD4KICA8dGV4dCB4PSIyMTAiIHk9IjU0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWZmIiBmb250LXdlaWdodD0iNzAwIj4yPC90ZXh0PjxyZWN0IHg9IjE4MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIyMTAiIHk9IjkyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNjAwIj42PC90ZXh0PgogIDx0ZXh0IHg9IjI3MCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjM8L3RleHQ+PHJlY3QgeD0iMjQwIiB5PSI2MiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjI3MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjg8L3RleHQ+CiAgPHRleHQgeD0iMzMwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+NDwvdGV4dD48cmVjdCB4PSIzMDAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMzMwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+MTA8L3RleHQ+CiAgPHRleHQgeD0iMjAiIHk9IjkwIiBmaWxsPSIjNmU2ZTczIiBmb250LXNpemU9IjEyIj5XZXJ0PC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwN2FmZiIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgjYSkiPjxsaW5lIHgxPSI5MCIgeTE9IjE0MCIgeDI9IjkwIiB5Mj0iMTEyIi8+PGxpbmUgeDE9IjMzMCIgeTE9IjE0MCIgeDI9IjMzMCIgeTI9IjExMiIvPjwvZz4KICA8ZyBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxMyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+PHRleHQgeD0iOTAiIHk9IjE1NiI+emFobGVuWzBdIGlzdCAyPC90ZXh0Pjx0ZXh0IHg9IjMzMCIgeT0iMTU2Ij56YWhsZW5bNF0gaXN0IDEwPC90ZXh0PjwvZz4KICA8dGV4dCB4PSIyMDAiIHk9IjE4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+NSBGw6RjaGVyLCBnZXrDpGhsdCB3aXJkIGFiIDA6IGRlciBsZXR6dGUgSW5kZXggaXN0IDQuPC90ZXh0Pgo8L3N2Zz4K",CS=""+new URL("mvc-klick-KmFKqxH-.svg",import.meta.url).href,_S=""+new URL("aufgabe-mehrwertsteuer-KUkerRBd.svg",import.meta.url).href,ZS=""+new URL("kino-saal-BOvcmdzb.svg",import.meta.url).href,MS=""+new URL("kino-schleifen-Ci9yPnbo.svg",import.meta.url).href,DS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDkyIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iNDkyIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiPgogICAgPCEtLSBTdGFydCAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjgiIHJ4PSIxNCIgZmlsbD0iI2QxZjJkOSIvPgogICAgPGxpbmUgeDE9IjE1MCIgeTE9IjM4IiB4Mj0iMTUwIiB5Mj0iNTQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gQW53ZWlzdW5nIC0tPgogICAgPHJlY3QgeD0iNTAiIHk9IjU2IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iODYiIHgyPSIxNTAiIHkyPSI5OCIgbWFya2VyLWVuZD0idXJsKCNhKSIvPgogICAgPCEtLSBSYXV0ZSAxIC0tPgogICAgPHBhdGggZD0iTTE1MCAxMDAgTDIzNSAxMjggTDE1MCAxNTYgTDY1IDEyOCBaIiBmaWxsPSIjZmZmNGQ2Ii8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMTU2IiB4Mj0iMTUwIiB5Mj0iMTcyIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8cmVjdCB4PSI1MCIgeT0iMTc0IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8bGluZSB4MT0iMTUwIiB5MT0iMjA0IiB4Mj0iMTUwIiB5Mj0iMjUwIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIG5laW4tV2VnIHVtIGRlbiBLYXN0ZW4gaGVydW0gLS0+CiAgICA8cG9seWxpbmUgcG9pbnRzPSIyMzUsMTI4IDI4NSwxMjggMjg1LDIyMiAxNTAsMjIyIiBmaWxsPSJub25lIiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgICA8IS0tIFJhdXRlIDIgLS0+CiAgICA8cGF0aCBkPSJNMTUwIDI1MiBMMjM1IDI4MCBMMTUwIDMwOCBMNjUgMjgwIFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxsaW5lIHgxPSIyMzUiIHkxPSIyODAiIHgyPSIyNjgiIHkyPSIyODAiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjI3MCIgeT0iMjY1IiB3aWR0aD0iMTE1IiBoZWlnaHQ9IjMwIiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8IS0tIHp1csO8Y2sgenVyIFByw7xmdW5nIC0tPgogICAgPHBvbHlsaW5lIHBvaW50cz0iMzI3LDI2NSAzMjcsMjM4IDE1MCwyMzgiIGZpbGw9Im5vbmUiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzMDgiIHgyPSIxNTAiIHkyPSIzMjYiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDxyZWN0IHg9IjUwIiB5PSIzMjgiIHdpZHRoPSIyMDAiIGhlaWdodD0iMzAiIGZpbGw9IiNlNWYwZmYiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSIzNTgiIHgyPSIxNTAiIHkyPSIzNzQiIG1hcmtlci1lbmQ9InVybCgjYSkiLz4KICAgIDwhLS0gRW5kZSAtLT4KICAgIDxyZWN0IHg9IjEwMCIgeT0iMzc2IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjI4IiByeD0iMTQiIGZpbGw9IiNkMWYyZDkiLz4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSI+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI5Ij5JbsOtY2lvPC90ZXh0PgogICAgPHRleHQgeD0iMTUwIiB5PSI3NiI+UMO0ciB1bWEgY2jDoXZlbmEgbmEgbWVzYTwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTMzIj5RdWVyIGHDp8O6Y2FyPzwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMTk0Ij5KdW50YXIgYcOnw7pjYXI8L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjI4NSI+Q2jDoSBtdWl0byBxdWVudGU/PC90ZXh0PgogICAgPHRleHQgeD0iMzI3LjUiIHk9IjI4NSI+RXNwZXJhciAxIG1pbnV0bzwvdGV4dD4KICAgIDx0ZXh0IHg9IjE1MCIgeT0iMzQ4Ij5CZWJlciBvIGNow6E8L3RleHQ+CiAgICA8dGV4dCB4PSIxNTAiIHk9IjM5NSI+RmltPC90ZXh0PgogIDwvZz4KICA8ZyBmb250LXNpemU9IjEyIiBmb250LXdlaWdodD0iNjAwIj4KICAgIDx0ZXh0IHg9IjE1NiIgeT0iMTY4IiBmaWxsPSIjMjQ4YTNkIj5zaW08L3RleHQ+CiAgICA8dGV4dCB4PSIyNDIiIHk9IjEyMiIgZmlsbD0iI2Q3MDAxNSI+bsOjbzwvdGV4dD4KICAgIDx0ZXh0IHg9IjI0MCIgeT0iMjc0IiBmaWxsPSIjMjQ4YTNkIj5zaW08L3RleHQ+CiAgICA8dGV4dCB4PSIxNTYiIHk9IjMyMCIgZmlsbD0iI2Q3MDAxNSI+bsOjbzwvdGV4dD4KICA8L2c+CiAgPCEtLSBMZWdlbmRlIC0tPgogIDxsaW5lIHgxPSIxMCIgeTE9IjQxOCIgeDI9IjM5MCIgeTI9IjQxOCIgc3Ryb2tlPSIjZDFkMWQ2Ii8+CiAgPGcgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICA8cmVjdCB4PSI0MCIgeT0iNDMwIiB3aWR0aD0iMzYiIGhlaWdodD0iMTgiIHJ4PSI5IiBmaWxsPSIjZDFmMmQ5Ii8+CiAgICA8cmVjdCB4PSIyMjAiIHk9IjQzMCIgd2lkdGg9IjM2IiBoZWlnaHQ9IjE4IiBmaWxsPSIjZTVmMGZmIi8+CiAgICA8cGF0aCBkPSJNNTggNDU4IEw3NiA0NjkgTDU4IDQ4MCBMNDAgNDY5IFoiIGZpbGw9IiNmZmY0ZDYiLz4KICAgIDxwYXRoIGQ9Ik0yMjYgNDYwIEwyNTYgNDYwIEwyNTAgNDc4IEwyMjAgNDc4IFoiIGZpbGw9IiNmMmU2ZmYiLz4KICA8L2c+CiAgPGcgZm9udC1zaXplPSIxMiIgZmlsbD0iIzNhM2EzYyI+CiAgICA8dGV4dCB4PSI4NiIgeT0iNDQzIj5JbsOtY2lvIG91IGZpbTwvdGV4dD4KICAgIDx0ZXh0IHg9IjI2NiIgeT0iNDQzIj5JbnN0cnXDp8OjbzwvdGV4dD4KICAgIDx0ZXh0IHg9Ijg2IiB5PSI0NzMiPkRlY2lzw6NvPC90ZXh0PgogICAgPHRleHQgeD0iMjY2IiB5PSI0NzMiPkVudHJhZGEgb3Ugc2HDrWRhPC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",BS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE5MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwIiB5PSIyNCIgZm9udC13ZWlnaHQ9IjYwMCI+T25kZSBmaWNhIG8gZWxlbWVudG8/PC90ZXh0PgogIDxyZWN0IHg9IjIwIiB5PSI0MCIgd2lkdGg9IjE5MCIgaGVpZ2h0PSIzNSIgZmlsbD0iI2RiZWFmZSIvPgogIDxyZWN0IHg9IjIwIiB5PSI3NSIgd2lkdGg9IjE5MCIgaGVpZ2h0PSIzNSIgZmlsbD0iI2RjZmNlNyIvPgogIDxsaW5lIHgxPSIyMCIgeTE9Ijc1IiB4Mj0iMjEwIiB5Mj0iNzUiIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLWRhc2hhcnJheT0iNCAzIi8+CiAgPHJlY3QgeD0iMjAiIHk9IjQwIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjcwIiBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjExNSIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxZDRlZDgiPm1ldGFkZSBkZSBjaW1hPC90ZXh0PgogIDx0ZXh0IHg9IjExNSIgeT0iOTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPm1ldGFkZSBkZSBiYWl4bzwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9IjYyIj7ihpIgZmljYSA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+YW50ZXM8L3RzcGFuPjwvdGV4dD4KICA8dGV4dCB4PSIyMjQiIHk9Ijk3Ij7ihpIgZmljYSA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+ZGVwb2lzPC90c3Bhbj48L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9IjEzMiIgd2lkdGg9IjE5MCIgaGVpZ2h0PSI0MCIgZmlsbD0iI2ZlZjNjNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIxMTUiIHk9IjE1NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiI+w7g8L3RleHQ+CiAgPHRleHQgeD0iMjI0IiB5PSIxNTciPuKGkiA8dHNwYW4gZm9udC13ZWlnaHQ9IjYwMCI+c3Vic3RpdHVpLW88L3RzcGFuPjwvdGV4dD4KPC9zdmc+Cg==",WS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjEwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjIxMCIgZmlsbD0iI2ZmZmZmZiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJ1aS1tb25vc3BhY2UsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlIiBmb250LXNpemU9IjE2Ij5pbnQgaWRhZGUgPSAxNDwvdGV4dD4KICA8cGF0aCBkPSJNMTMwIDcwIEwxNzAgNTAgTDMwMCA1MCBMMjYwIDcwIFoiIGZpbGw9IiNjOThhM2MiIHN0cm9rZT0iIzhhNWExZiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHJlY3QgeD0iMTgwIiB5PSIzNCIgd2lkdGg9IjQ0IiBoZWlnaHQ9IjUwIiByeD0iMyIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjEuNSIvPgogIDx0ZXh0IHg9IjIwMiIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMjAiIGZvbnQtd2VpZ2h0PSI3MDAiPjE0PC90ZXh0PgogIDxyZWN0IHg9IjEzMCIgeT0iNzAiIHdpZHRoPSIxMzAiIGhlaWdodD0iMTAwIiBmaWxsPSIjZTliODcyIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxwYXRoIGQ9Ik0yNjAgNzAgTDMwMCA1MCBMMzAwIDE1MCBMMjYwIDE3MCBaIiBmaWxsPSIjZDQ5YTRjIiBzdHJva2U9IiM4YTVhMWYiIHN0cm9rZS13aWR0aD0iMiIvPgogIDxyZWN0IHg9IjE1MCIgeT0iMTAwIiB3aWR0aD0iOTAiIGhlaWdodD0iMzAiIHJ4PSI0IiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiM4YTVhMWYiLz4KICA8dGV4dCB4PSIxOTUiIHk9IjEyMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+aWRhZGU8L3RleHQ+CiAgPHJlY3QgeD0iMTM4IiB5PSIxNDIiIHdpZHRoPSIzNCIgaGVpZ2h0PSIyMCIgcng9IjEwIiBmaWxsPSIjMDA3YWZmIi8+CiAgPHRleHQgeD0iMTU1IiB5PSIxNTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTIiIGZpbGw9IiNmZmZmZmYiIGZvbnQtd2VpZ2h0PSI2MDAiPmludDwvdGV4dD4KICA8ZyBzdHJva2U9IiM2ZTZlNzMiPgogICAgPGxpbmUgeDE9IjMxMCIgeTE9IjQ4IiB4Mj0iMjI2IiB5Mj0iNTIiLz4KICAgIDxsaW5lIHgxPSIzMTAiIHkxPSIxMTUiIHgyPSIyNDIiIHkyPSIxMTUiLz4KICAgIDxsaW5lIHgxPSI4MCIgeTE9IjE1MiIgeDI9IjEzNCIgeTI9IjE1MiIvPgogIDwvZz4KICA8dGV4dCB4PSIzMTYiIHk9IjUyIj5WYWxvcjwvdGV4dD4KICA8dGV4dCB4PSIzMTYiIHk9IjExOSI+Tm9tZTwvdGV4dD4KICA8dGV4dCB4PSI4IiB5PSIxNTYiPlRpcG8gZGUgZGFkb3M8L3RleHQ+CiAgPHRleHQgeD0iMjAwIiB5PSIxOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPlBlbG8gbm9tZSBjaGVnYXMgYW8gdmFsb3IuPC90ZXh0Pgo8L3N2Zz4K",LS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjAwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjAwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjAiPgogICAgPHRleHQgeD0iNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+cG9udG9zPC90ZXh0PgogICAgPHRleHQgeD0iMTI1IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPj08L3RleHQ+CiAgICA8dGV4dCB4PSIyNjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cG9udG9zICsgNTwvdGV4dD4KICA8L2c+CiAgPHJlY3QgeD0iMTgwIiB5PSI4NiIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjYwIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMxNTgwM2QiPuKRoCBjYWxjdWxhciBhIGRpcmVpdGE6IDEwICsgNSA9IDE1PC90ZXh0PgogIDxwYXRoIGQ9Ik0yNTAgODIgQzIzMCAzMCwgOTAgMzAsIDY0IDg0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDdhZmYiIHN0cm9rZS13aWR0aD0iMi41IiBtYXJrZXItZW5kPSJ1cmwoI2EpIi8+CiAgPHRleHQgeD0iMTYwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiI+4pGhIGd1YXJkYXIgbyByZXN1bHRhZG8gw6AgZXNxdWVyZGE8L3RleHQ+CiAgPHJlY3QgeD0iMjAiIHk9IjE2NCIgd2lkdGg9IjM2MCIgaGVpZ2h0PSIyNiIgcng9IjYiIGZpbGw9IiNmMmYyZjciLz4KICA8dGV4dCB4PSIyMDAiIHk9IjE4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cG9udG9zIGFudGVzOiA8dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCI+MTA8L3RzcGFuPiAgIOKGkiAgIHBvbnRvcyBkZXBvaXM6IDx0c3BhbiBmb250LXdlaWdodD0iNzAwIj4xNTwvdHNwYW4+PC90ZXh0Pgo8L3N2Zz4K",ES="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMzAwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMzAwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPGcgc3Ryb2tlPSIjNmU2ZTczIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTQwIDExMCBMNDggMTgwIEwxMDIgMTgwIEwxMTAgMTEwIi8+CiAgICA8cGF0aCBkPSJNMTY1IDExMCBMMTczIDE4MCBMMjI3IDE4MCBMMjM1IDExMCIvPgogICAgPHBhdGggZD0iTTI5MCAxMTAgTDI5OCAxODAgTDM1MiAxODAgTDM2MCAxMTAiLz4KICA8L2c+CiAgPHBhdGggZD0iTTQ0IDEzNSBMNDggMTgwIEwxMDIgMTgwIEwxMDYgMTM1IFoiIGZpbGw9IiNmZGJhNzQiLz4KICA8cGF0aCBkPSJNMjk0IDEzNSBMMjk4IDE4MCBMMzUyIDE4MCBMMzU2IDEzNSBaIiBmaWxsPSIjOTNjNWZkIi8+CiAgPHRleHQgeD0iNzUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+ZXNxdWVyZGE8L3RleHQ+CiAgPHRleHQgeD0iNzUiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+c3VtbzwvdGV4dD4KICA8dGV4dCB4PSIyMDAiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+YXV4PC90ZXh0PgogIDx0ZXh0IHg9IjIwMCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj52YXppbzwvdGV4dD4KICA8dGV4dCB4PSIzMjUiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+ZGlyZWl0YTwvdGV4dD4KICA8dGV4dCB4PSIzMjUiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+w6FndWE8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8cGF0aCBkPSJNODggMTA0IEMxMTAgNzAsIDE2MCA3MCwgMTg2IDEwNCIvPgogICAgPHBhdGggZD0iTTMxOCAxMDQgQzI3MCAxNSwgMTMwIDE1LCA4MiAxMDQiLz4KICAgIDxwYXRoIGQ9Ik0yMTQgMTA0IEMyNDAgNzAsIDI5MCA3MCwgMzEyIDEwNCIvPgogIDwvZz4KICA8ZyBmb250LXdlaWdodD0iNzAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4KICAgIDxjaXJjbGUgY3g9IjEzNyIgY3k9IjgwIiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMTM3IiB5PSI4NSI+MTwvdGV4dD4KICAgIDxjaXJjbGUgY3g9IjIwMCIgY3k9IjM4IiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMjAwIiB5PSI0MyI+MjwvdGV4dD4KICAgIDxjaXJjbGUgY3g9IjI2MyIgY3k9IjgwIiByPSIxMSIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+PHRleHQgeD0iMjYzIiB5PSI4NSI+MzwvdGV4dD4KICA8L2c+CiAgPGcgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTIiPgogICAgPHRleHQgeD0iMjAwIiB5PSIyNTAiPjE6IGF1eCA9IGVzcXVlcmRhPC90ZXh0PgogICAgPHRleHQgeD0iMjAwIiB5PSIyNjgiPjI6IGVzcXVlcmRhID0gZGlyZWl0YTwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMjg2Ij4zOiBkaXJlaXRhID0gYXV4PC90ZXh0PgogIDwvZz4KPC9zdmc+Cg==",NS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjE1MCIgZmlsbD0iI2ZmZmZmZiIvPgogIDxyZWN0IHg9IjIwIiB5PSI1MCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+PHJlY3QgeD0iMzAwIiB5PSI1MCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmVlMmUyIi8+CiAgPHJlY3QgeD0iMTAwIiB5PSI1MCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyNCIgZmlsbD0iI2RjZmNlNyIvPgogIDxsaW5lIHgxPSIyMCIgeTE9Ijc0IiB4Mj0iMzgwIiB5Mj0iNzQiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPGxpbmUgeDE9IjUwIiB5MT0iNjgiIHgyPSI1MCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjUwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MDwvdGV4dD4KICA8bGluZSB4MT0iMTAwIiB5MT0iNjgiIHgyPSIxMDAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIxMDAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4xPC90ZXh0PgogIDxsaW5lIHgxPSIxNTAiIHkxPSI2OCIgeDI9IjE1MCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjE1MCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjI8L3RleHQ+CiAgPGxpbmUgeDE9IjIwMCIgeTE9IjY4IiB4Mj0iMjAwIiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMjAwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MzwvdGV4dD4KICA8bGluZSB4MT0iMjUwIiB5MT0iNjgiIHgyPSIyNTAiIHkyPSI4MCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIyNTAiIHk9Ijk4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj40PC90ZXh0PgogIDxsaW5lIHgxPSIzMDAiIHkxPSI2OCIgeDI9IjMwMCIgeTI9IjgwIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjMwMCIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjU8L3RleHQ+CiAgPGxpbmUgeDE9IjM1MCIgeTE9IjY4IiB4Mj0iMzUwIiB5Mj0iODAiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMzUwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+NjwvdGV4dD4KICA8Y2lyY2xlIGN4PSIxMDAiIGN5PSI3NCIgcj0iNiIgZmlsbD0iIzE1ODAzZCIvPjxjaXJjbGUgY3g9IjMwMCIgY3k9Ijc0IiByPSI2IiBmaWxsPSIjMTU4MDNkIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI0MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dsOhbGlkYTwvdGV4dD4KICA8dGV4dCB4PSI1MCIgeT0iNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNiOTFjMWMiIGZvbnQtd2VpZ2h0PSI2MDAiPmludsOhbGlkYTwvdGV4dD48dGV4dCB4PSIzNTAiIHk9IjQwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5pbnbDoWxpZGE8L3RleHQ+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgPHRleHQgeD0iMjAwIiB5PSIxMjQiIGZpbGw9IiMxNTgwM2QiPm5vdGEgJmd0Oz0gMSAmYW1wOyZhbXA7IG5vdGEgJmx0Oz0gNTwvdGV4dD4KICAgIDx0ZXh0IHg9IjIwMCIgeT0iMTQyIiBmaWxsPSIjYjkxYzFjIj5ub3RhICZsdDsgMSB8fCBub3RhICZndDsgNTwvdGV4dD4KICA8L2c+Cjwvc3ZnPgo=",FS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIj5Db21vIGZ1bmNpb25hIG8gY2ljbG8gd2hpbGU8L3RleHQ+CiAgPHJlY3QgeD0iMTIwIiB5PSI0NCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI0MCIgcng9IjIwIiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iNjkiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoCB2ZXJpZmljYXIgYSBjb25kacOnw6NvPC90ZXh0PgogIDxyZWN0IHg9IjEyMCIgeT0iMTI4IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjQwIiByeD0iNiIgZmlsbD0iI2RiZWFmZSIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8dGV4dCB4PSIyMDAiIHk9IjE1MyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGhIGV4ZWN1dGFyIG8gaW50ZXJpb3I8L3RleHQ+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNhKSI+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iODQiIHgyPSIyMDAiIHkyPSIxMjYiLz4KICAgIDxwYXRoIGQ9Ik0xMjAgMTQ4IEM4MCAxNDgsIDgwIDY0LCAxMTggNjQiLz4KICAgIDxwYXRoIGQ9Ik0yODAgNjQgTDM0MCA2NCBMMzQwIDIwMCBMMjgyIDIwMCIvPgogIDwvZz4KICA8dGV4dCB4PSIyMDgiIHk9IjExMCIgZmlsbD0iIzE1ODAzZCIgZm9udC13ZWlnaHQ9IjYwMCI+dHJ1ZTwvdGV4dD4KICA8dGV4dCB4PSIzOCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj52b2x0YXI8L3RleHQ+CiAgPHRleHQgeD0iMzgiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+cGFyYSBjaW1hPC90ZXh0PgogIDx0ZXh0IHg9IjM0OCIgeT0iMTM0IiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5mYWxzZTwvdGV4dD4KICA8dGV4dCB4PSIyNzYiIHk9IjIwNSIgdGV4dC1hbmNob3I9ImVuZCI+Y29udGludWFyIHBvciBiYWl4byBkbyBjaWNsbzwvdGV4dD4KPC9zdmc+Cg==",JS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjMwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjMwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMTAwIiB5PSIyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjYwMCI+cHLDqS10ZXN0ZSAod2hpbGUpPC90ZXh0PgogIDx0ZXh0IHg9IjMwMCIgeT0iMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI2MDAiPnDDs3MtdGVzdGUgKGRvLXdoaWxlKTwvdGV4dD4KICA8bGluZSB4MT0iMjAwIiB5MT0iMTAiIHgyPSIyMDAiIHkyPSIyMjAiIHN0cm9rZT0iI2QxZDFkNiIvPgogIDxyZWN0IHg9IjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjE4IiBmaWxsPSIjZmVmM2M3IiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjEwMCIgeT0iNjciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoCBjb25kacOnw6NvPC90ZXh0PgogIDxyZWN0IHg9IjM1IiB5PSIxMjQiIHdpZHRoPSIxMzAiIGhlaWdodD0iMzYiIHJ4PSI2IiBmaWxsPSIjZGJlYWZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjEwMCIgeT0iMTQ3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaEgaW50ZXJpb3I8L3RleHQ+CiAgPHJlY3QgeD0iMjM1IiB5PSI0NCIgd2lkdGg9IjEzMCIgaGVpZ2h0PSIzNiIgcng9IjYiIGZpbGw9IiNkYmVhZmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzAwIiB5PSI2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIGludGVyaW9yPC90ZXh0PgogIDxyZWN0IHg9IjIzNSIgeT0iMTI0IiB3aWR0aD0iMTMwIiBoZWlnaHQ9IjM2IiByeD0iMTgiIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMzAwIiB5PSIxNDciIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoSBjb25kacOnw6NvPC90ZXh0PgogIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjYiIG1hcmtlci1lbmQ9InVybCgjYSkiPgogICAgPGxpbmUgeDE9IjEwMCIgeTE9IjgwIiB4Mj0iMTAwIiB5Mj0iMTIyIi8+CiAgICA8cGF0aCBkPSJNMzUgMTQyIEM4IDE0MiwgOCA2MiwgMzMgNjIiLz4KICAgIDxsaW5lIHgxPSIzMDAiIHkxPSI4MCIgeDI9IjMwMCIgeTI9IjEyMiIvPgogICAgPHBhdGggZD0iTTM2NSAxNDIgQzM5MiAxNDIsIDM5MiA2MiwgMzY3IDYyIi8+CiAgPC9nPgogIDx0ZXh0IHg9IjEwNiIgeT0iMTA2IiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjM4MCIgeT0iMTA2IiB0ZXh0LWFuY2hvcj0iZW5kIiBmaWxsPSIjMTU4MDNkIiBmb250LXdlaWdodD0iNjAwIj50cnVlPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5TZSBhIGNvbmRpw6fDo28gZm9yIGxvZ28gZmFsc2EsPC90ZXh0PgogIDx0ZXh0IHg9IjEwMCIgeT0iMjA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNmU2ZTczIj5vIGludGVyaW9yIDx0c3BhbiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjMWMxYzFlIj5udW5jYTwvdHNwYW4+IMOpIGV4ZWN1dGFkby48L3RleHQ+CiAgPHRleHQgeD0iMzAwIiB5PSIxOTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPk8gaW50ZXJpb3Igw6kgc2VtcHJlIGV4ZWN1dGFkbzwvdGV4dD4KICA8dGV4dCB4PSIzMDAiIHk9IjIwNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+PHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPnBlbG8gbWVub3MgdW1hIHZlejwvdHNwYW4+LjwvdGV4dD4KPC9zdmc+Cg==",GS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMjUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMWMxYzFlIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjUwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHJlY3QgeD0iMTIwIiB5PSIxNCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzZlNmU3MyIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIzNiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGgIEluw61jaW8gPHRzcGFuIGZpbGw9IiM2ZTZlNzMiPihzw7MgdW1hIHZleik8L3RzcGFuPjwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9Ijc2IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjM0IiByeD0iMTciIGZpbGw9IiNmZWYzYzciIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+4pGhIHZlcmlmaWNhciBhIGNvbmRpw6fDo288L3RleHQ+CiAgPHJlY3QgeD0iMTIwIiB5PSIxMzgiIHdpZHRoPSIxNjAiIGhlaWdodD0iMzQiIHJ4PSI2IiBmaWxsPSIjZGJlYWZlIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMiIvPgogIDx0ZXh0IHg9IjIwMCIgeT0iMTYwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj7ikaIgZXhlY3V0YXIgbyBpbnRlcmlvcjwvdGV4dD4KICA8cmVjdCB4PSIxMjAiIHk9IjIwMCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIzNCIgcng9IjYiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgPHRleHQgeD0iMjAwIiB5PSIyMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiPuKRoyBwYXNzbywgcC4gZXguIGkrKzwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj4KICAgIDxsaW5lIHgxPSIyMDAiIHkxPSI0OCIgeDI9IjIwMCIgeTI9Ijc0Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTEwIiB4Mj0iMjAwIiB5Mj0iMTM2Ii8+CiAgICA8bGluZSB4MT0iMjAwIiB5MT0iMTcyIiB4Mj0iMjAwIiB5Mj0iMTk4Ii8+CiAgICA8cGF0aCBkPSJNMTIwIDIxNyBDNjAgMjE3LCA2MCA5MywgMTE4IDkzIi8+CiAgICA8cGF0aCBkPSJNMjgwIDkzIEwzMzAgOTMiLz4KICA8L2c+CiAgPHRleHQgeD0iMjA4IiB5PSIxMjkiIGZpbGw9IiMxNTgwM2QiIGZvbnQtd2VpZ2h0PSI2MDAiPnRydWU8L3RleHQ+CiAgPHRleHQgeD0iNDgiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzZlNmU3MyI+dm9sdGFyPC90ZXh0PgogIDx0ZXh0IHg9IjQ4IiB5PSIxNzYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPmFvIOKRoTwvdGV4dD4KICA8dGV4dCB4PSIzMDAiIHk9Ijg0IiBmaWxsPSIjYjkxYzFjIiBmb250LXdlaWdodD0iNjAwIj5mYWxzZTwvdGV4dD4KICA8dGV4dCB4PSIzMzYiIHk9Ijk4Ij5maW08L3RleHQ+Cjwvc3ZnPgo=",RS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMTkwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KICA8ZGVmcz48bWFya2VyIGlkPSJhIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjMDA3YWZmIi8+PC9tYXJrZXI+PC9kZWZzPgogIDxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMTkwIiBmaWxsPSIjZmZmZmZmIi8+CiAgPHRleHQgeD0iMjAiIHk9IjI0IiBmb250LWZhbWlseT0idWktbW9ub3NwYWNlLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSIgZm9udC1zaXplPSIxNCI+aW50W10gbnVtZXJvcyA9IHsyLCA0LCA2LCA4LCAxMH08L3RleHQ+CiAgPHRleHQgeD0iMjAiIHk9IjU0IiBmaWxsPSIjNmU2ZTczIiBmb250LXNpemU9IjEyIj7DjW5kaWNlPC90ZXh0PgogIDx0ZXh0IHg9IjkwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MDwvdGV4dD48cmVjdCB4PSI2MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSI5MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjI8L3RleHQ+CiAgPHRleHQgeD0iMTUwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+MTwvdGV4dD48cmVjdCB4PSIxMjAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMTUwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+NDwvdGV4dD4KICA8dGV4dCB4PSIyMTAiIHk9IjU0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWZmIiBmb250LXdlaWdodD0iNzAwIj4yPC90ZXh0PjxyZWN0IHg9IjE4MCIgeT0iNjIiIHdpZHRoPSI2MCIgaGVpZ2h0PSI0NiIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjIiLz48dGV4dCB4PSIyMTAiIHk9IjkyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE4IiBmb250LXdlaWdodD0iNjAwIj42PC90ZXh0PgogIDx0ZXh0IHg9IjI3MCIgeT0iNTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhZmYiIGZvbnQtd2VpZ2h0PSI3MDAiPjM8L3RleHQ+PHJlY3QgeD0iMjQwIiB5PSI2MiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ2IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjI3MCIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI2MDAiPjg8L3RleHQ+CiAgPHRleHQgeD0iMzMwIiB5PSI1NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzAwN2FmZiIgZm9udC13ZWlnaHQ9IjcwMCI+NDwvdGV4dD48cmVjdCB4PSIzMDAiIHk9IjYyIiB3aWR0aD0iNjAiIGhlaWdodD0iNDYiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHRleHQgeD0iMzMwIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjYwMCI+MTA8L3RleHQ+CiAgPHRleHQgeD0iMjAiIHk9IjkwIiBmaWxsPSIjNmU2ZTczIiBmb250LXNpemU9IjEyIj5WYWxvcjwvdGV4dD4KICA8ZyBmaWxsPSJub25lIiBzdHJva2U9IiMwMDdhZmYiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2EpIj48bGluZSB4MT0iOTAiIHkxPSIxNDAiIHgyPSI5MCIgeTI9IjExMiIvPjxsaW5lIHgxPSIzMzAiIHkxPSIxNDAiIHgyPSIzMzAiIHkyPSIxMTIiLz48L2c+CiAgPGcgZm9udC1mYW1pbHk9InVpLW1vbm9zcGFjZSwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTMiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjx0ZXh0IHg9IjkwIiB5PSIxNTYiPm51bWVyb3NbMF0gw6kgMjwvdGV4dD48dGV4dCB4PSIzMzAiIHk9IjE1NiI+bnVtZXJvc1s0XSDDqSAxMDwvdGV4dD48L2c+CiAgPHRleHQgeD0iMjAwIiB5PSIxODIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiM2ZTZlNzMiPjUgcG9zacOnw7VlcywgY29udGEtc2UgYSBwYXJ0aXIgZGUgMDogbyDDumx0aW1vIMOtbmRpY2Ugw6kgNC48L3RleHQ+Cjwvc3ZnPgo=",HS=""+new URL("mvc-klick-DKonBpbs.svg",import.meta.url).href,QS=""+new URL("schiffe-versenken-iEBDHIxD.svg",import.meta.url).href,VS=""+new URL("ss-binaere-suche-DVVS2SNc.svg",import.meta.url).href,qS=""+new URL("ss-bubblesort-AFDcFDah.svg",import.meta.url).href,US="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDQgMTk2IiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KPHJlY3Qgd2lkdGg9IjQwNCIgaGVpZ2h0PSIxOTYiIGZpbGw9IiNmZmZmZmYiLz4KPHRleHQgeD0iMTQiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIiBmb250LXNpemU9IjE1Ij5Qcm9jdXJhLXNlIG8gOS4gQXMgY2FydGFzIGVzdMOjbyBiYXJhbGhhZGFzLjwvdGV4dD4KPGc+PHJlY3QgeD0iMTQiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjx0ZXh0IHg9IjM0LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNkYzI2MjYiPjc8L3RleHQ+PHRleHQgeD0iMzQuMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiNkYzI2MjYiPuKZpTwvdGV4dD48L2c+Cjx0ZXh0IHg9IjM0LjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSIzNC4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjEuPC90ZXh0Pgo8Zz48cmVjdCB4PSI2MiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iODIuMCIgeT0iNzUuMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+MzwvdGV4dD48dGV4dCB4PSI4Mi4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzFjMWMxZSI+4pmgPC90ZXh0PjwvZz4KPHRleHQgeD0iODIuMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjZGMyNjI2Ij7inJc8L3RleHQ+Cjx0ZXh0IHg9IjgyLjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+Mi48L3RleHQ+CjxnPjxyZWN0IHg9IjExMCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iMTMwLjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNkYzI2MjYiPjEwPC90ZXh0Pjx0ZXh0IHg9IjEzMC4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iI2RjMjYyNiI+4pmmPC90ZXh0PjwvZz4KPHRleHQgeD0iMTMwLjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSIxMzAuMCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj4zLjwvdGV4dD4KPGc+PHJlY3QgeD0iMTU4IiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48dGV4dCB4PSIxNzguMCIgeT0iNzUuMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+NTwvdGV4dD48dGV4dCB4PSIxNzguMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiMxYzFjMWUiPuKZozwvdGV4dD48L2c+Cjx0ZXh0IHg9IjE3OC4wIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiNkYzI2MjYiPuKclzwvdGV4dD4KPHRleHQgeD0iMTc4LjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+NC48L3RleHQ+CjxnPjxyZWN0IHg9IjIwNiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgeD0iMjI2LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPjk8L3RleHQ+PHRleHQgeD0iMjI2LjAiIHk9Ijk1LjkxOTk5OTk5OTk5OTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmaWxsPSIjMWMxYzFlIj7imaA8L3RleHQ+PC9nPgo8dGV4dCB4PSIyMjYuMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjMTU4MDNkIj7inJM8L3RleHQ+Cjx0ZXh0IHg9IjIyNi4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjUuPC90ZXh0Pgo8Zz48cmVjdCB4PSIyNTQiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjMWQ0ZWQ4IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjxyZWN0IHg9IjI1OCIgeT0iNTQiIHdpZHRoPSIzMiIgaGVpZ2h0PSI0OCIgcng9IjMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzkzYzVmZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMiIvPjwvZz4KPGc+PHJlY3QgeD0iMzAyIiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iIzFkNGVkOCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48cmVjdCB4PSIzMDYiIHk9IjU0IiB3aWR0aD0iMzIiIGhlaWdodD0iNDgiIHJ4PSIzIiBmaWxsPSJub25lIiBzdHJva2U9IiM5M2M1ZmQiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSIzIDIiLz48L2c+CjxnPjxyZWN0IHg9IjM1MCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiMxZDRlZDgiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHJlY3QgeD0iMzU0IiB5PSI1NCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjQ4IiByeD0iMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTNjNWZkIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWRhc2hhcnJheT0iMyAyIi8+PC9nPgo8dGV4dCB4PSIxNCIgeT0iMTY4IiBmb250LXNpemU9IjE1IiBmaWxsPSIjNmU2ZTczIj5WaXJhciBkYSBlc3F1ZXJkYSBwYXJhIGEgZGlyZWl0YTo8L3RleHQ+PHRleHQgeD0iMTQiIHk9IjE4OCIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzZlNmU3MyI+QXDDs3MgNSBjb21wYXJhw6fDtWVzLCBvIDkgw6kgZW5jb250cmFkby48L3RleHQ+Cjwvc3ZnPgo=",$S=""+new URL("ss-vergleiche-DWgkIvLr.svg",import.meta.url).href,YS="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MjAgNDUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KPGRlZnM+PG1hcmtlciBpZD0iayIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI5IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNiIgbWFya2VySGVpZ2h0PSI2IiBvcmllbnQ9ImF1dG8iPjxwYXRoIGQ9Ik0wIDAgTDEwIDUgTDAgMTAgWiIgZmlsbD0iIzFjMWMxZSIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9ImIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOSIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjYiIG1hcmtlckhlaWdodD0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCAwIEwxMCA1IEwwIDEwIFoiIGZpbGw9IiMxZDRlZDgiLz48L21hcmtlcj48bWFya2VyIGlkPSJvIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI2IiBtYXJrZXJIZWlnaHQ9IjYiIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjYjQ1MzA5Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB3aWR0aD0iNDIwIiBoZWlnaHQ9IjQ1MCIgZmlsbD0iI2ZmZmZmZiIvPgo8dGV4dCB4PSIxMCIgeT0iMjIiIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiPlBhc3NhZ2VtIHBvciB2YWxvcjogdW1hIGPDs3BpYTwvdGV4dD4KPHJlY3QgeD0iMTAiIHk9IjM4IiB3aWR0aD0iMTYwIiBoZWlnaHQ9Ijg2IiByeD0iOCIgZmlsbD0iI2VmZjZmZiIgc3Ryb2tlPSIjMWQ0ZWQ4IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyMCIgeT0iNTgiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPlByb2dyYW1hIHByaW5jaXBhbDwvdGV4dD4KPHRleHQgeD0iMTYiIHk9Ijk4IiBmb250LXNpemU9IjEyIj5udW1lcm88L3RleHQ+CjxyZWN0IHg9IjcwIiB5PSI3OCIgd2lkdGg9IjU2IiBoZWlnaHQ9IjMwIiByeD0iNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+Cjx0ZXh0IHg9Ijk4IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+NTwvdGV4dD4KPHJlY3QgeD0iMjUwIiB5PSIzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4NiIgcng9IjgiIGZpbGw9IiNmZmY3ZWQiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjYwIiB5PSI1OCIgZm9udC1zaXplPSIxMyIgZmlsbD0iI2I0NTMwOSI+ZHVwbGljYXI8L3RleHQ+Cjx0ZXh0IHg9IjI2MCIgeT0iOTgiPng8L3RleHQ+CjxyZWN0IHg9IjI4MCIgeT0iNzgiIHdpZHRoPSI4MCIgaGVpZ2h0PSIzMCIgcng9IjQiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8dGV4dCB4PSIzMjAiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj48dHNwYW4gZmlsbD0iIzZlNmU3MyIgdGV4dC1kZWNvcmF0aW9uPSJsaW5lLXRocm91Z2giPjU8L3RzcGFuPiA8dHNwYW4gZm9udC13ZWlnaHQ9IjcwMCI+MTA8L3RzcGFuPjwvdGV4dD4KPGxpbmUgeDE9IjEyOCIgeTE9IjkzIiB4Mj0iMjQ4IiB5Mj0iOTMiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNCIgbWFya2VyLWVuZD0idXJsKCNrKSIvPgo8dGV4dCB4PSIyMTAiIHk9Ijg0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5jw7NwaWE8L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxNTAiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPnggcGFzc2EgYSAxMCwgbWFzIG51bWVybyBmaWNhIDUuPC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iMTY4IiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj5Db21vIHVtYSBmb3RvY8OzcGlhOiBlc2NyZXZlciBuYSBjw7NwaWE8L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxODYiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPm7Do28gYWx0ZXJhIG8gb3JpZ2luYWwuPC90ZXh0Pgo8bGluZSB4MT0iMTAiIHkxPSIyMDgiIHgyPSI0MTAiIHkyPSIyMDgiIHN0cm9rZT0iI2QxZDFkNiIvPgo8dGV4dCB4PSIxMCIgeT0iMjM2IiBmb250LXNpemU9IjE1IiBmb250LXdlaWdodD0iNzAwIj5QYXNzYWdlbSBwb3IgcmVmZXLDqm5jaWE6IG8gbWVzbW8gYXJyYXk8L3RleHQ+CjxyZWN0IHg9IjEwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZWZmNmZmIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjIwIiB5PSIyNzIiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPlByb2dyYW1hIHByaW5jaXBhbDwvdGV4dD4KPHRleHQgeD0iMjAiIHk9IjMwMCI+ZmlsYTwvdGV4dD4KPGNpcmNsZSBjeD0iMTUwIiBjeT0iMjk1IiByPSI1IiBmaWxsPSIjMWQ0ZWQ4Ii8+CjxyZWN0IHg9IjI1MCIgeT0iMjUyIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjYyIiByeD0iOCIgZmlsbD0iI2ZmZjdlZCIgc3Ryb2tlPSIjYjQ1MzA5IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyNjAiIHk9IjI3MiIgZm9udC1zaXplPSIxMyIgZmlsbD0iI2I0NTMwOSI+bGltcGFyPC90ZXh0Pgo8dGV4dCB4PSIyNjAiIHk9IjMwMCI+bHVnYXJlczwvdGV4dD4KPGNpcmNsZSBjeD0iMzkwIiBjeT0iMjk1IiByPSI1IiBmaWxsPSIjYjQ1MzA5Ii8+CjxwYXRoIGQ9Ik0xNTAgMzAwIEwxNTAgMzQwIEwxNDAgMzUyIiBmaWxsPSJub25lIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMS41IiBtYXJrZXItZW5kPSJ1cmwoI2IpIi8+CjxwYXRoIGQ9Ik0zOTAgMzAwIEwzOTAgMzQwIEwzMjIgMzU0IiBmaWxsPSJub25lIiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMS41IiBtYXJrZXItZW5kPSJ1cmwoI28pIi8+CjxyZWN0IHg9IjkwIiB5PSIzNTgiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+CjxyZWN0IHg9IjE1MCIgeT0iMzU4IiB3aWR0aD0iNjAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8cmVjdCB4PSIyMTAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHJlY3QgeD0iMjcwIiB5PSIzNTgiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+Cjx0ZXh0IHg9IjEyMCIgeT0iMzc5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5mYWxzZTwvdGV4dD4KPHRleHQgeD0iMTgwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIyNDAiIHk9IjM3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+ZmFsc2U8L3RleHQ+Cjx0ZXh0IHg9IjMwMCIgeT0iMzc5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5mYWxzZTwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjQxNiIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+U8OzIGjDoSB1bSBhcnJheS4gTyBxdWUgbGltcGFyIGFsdGVyYSBhdHJhdsOpcyBkZSBsdWdhcmVzLDwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjQzNCIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+byBwcm9ncmFtYSBwcmluY2lwYWwgdsOqIGVtIGZpbGEuPC90ZXh0Pgo8L3N2Zz4K",XS=""+new URL("zk-zeichen-8efNmpGx.svg",import.meta.url).href,KS=""+new URL("schiffe-versenken-CXt1SF0S.svg",import.meta.url).href,eO=""+new URL("ss-binaere-suche-CPsLGldq.svg",import.meta.url).href,tO=""+new URL("ss-bubblesort-Dic2ZfaT.svg",import.meta.url).href,nO="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDQgMTk2IiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWMxYzFlIj4KPHJlY3Qgd2lkdGg9IjQwNCIgaGVpZ2h0PSIxOTYiIGZpbGw9IiNmZmZmZmYiLz4KPHRleHQgeD0iMTQiIHk9IjI0IiBmb250LXdlaWdodD0iNjAwIiBmb250LXNpemU9IjE1Ij5HZXN1Y2h0OiBkaWUgOS4gRGllIEthcnRlbiBzaW5kIGdlbWlzY2h0LjwvdGV4dD4KPGc+PHJlY3QgeD0iMTQiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjZjJmMmY3IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjx0ZXh0IHg9IjM0LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNkYzI2MjYiPjc8L3RleHQ+PHRleHQgeD0iMzQuMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiNkYzI2MjYiPuKZpTwvdGV4dD48L2c+Cjx0ZXh0IHg9IjM0LjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSIzNC4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjEuPC90ZXh0Pgo8Zz48cmVjdCB4PSI2MiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iODIuMCIgeT0iNzUuMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+MzwvdGV4dD48dGV4dCB4PSI4Mi4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iIzFjMWMxZSI+4pmgPC90ZXh0PjwvZz4KPHRleHQgeD0iODIuMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjZGMyNjI2Ij7inJc8L3RleHQ+Cjx0ZXh0IHg9IjgyLjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+Mi48L3RleHQ+CjxnPjxyZWN0IHg9IjExMCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNmMmYyZjciIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHRleHQgeD0iMTMwLjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNkYzI2MjYiPjEwPC90ZXh0Pjx0ZXh0IHg9IjEzMC4wIiB5PSI5NS45MTk5OTk5OTk5OTk5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNSIgZmlsbD0iI2RjMjYyNiI+4pmmPC90ZXh0PjwvZz4KPHRleHQgeD0iMTMwLjAiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2RjMjYyNiI+4pyXPC90ZXh0Pgo8dGV4dCB4PSIxMzAuMCIgeT0iMTQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj4zLjwvdGV4dD4KPGc+PHJlY3QgeD0iMTU4IiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iI2YyZjJmNyIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48dGV4dCB4PSIxNzguMCIgeT0iNzUuMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxOCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iIzFjMWMxZSI+NTwvdGV4dD48dGV4dCB4PSIxNzguMCIgeT0iOTUuOTE5OTk5OTk5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiMxYzFjMWUiPuKZozwvdGV4dD48L2c+Cjx0ZXh0IHg9IjE3OC4wIiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTYiIGZvbnQtd2VpZ2h0PSI2MDAiIGZpbGw9IiNkYzI2MjYiPuKclzwvdGV4dD4KPHRleHQgeD0iMTc4LjAiIHk9IjE0OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+NC48L3RleHQ+CjxnPjxyZWN0IHg9IjIwNiIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiNkY2ZjZTciIHN0cm9rZT0iIzE1ODAzZCIgc3Ryb2tlLXdpZHRoPSIzIi8+PHRleHQgeD0iMjI2LjAiIHk9Ijc1LjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTgiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiMxYzFjMWUiPjk8L3RleHQ+PHRleHQgeD0iMjI2LjAiIHk9Ijk1LjkxOTk5OTk5OTk5OTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE1IiBmaWxsPSIjMWMxYzFlIj7imaA8L3RleHQ+PC9nPgo8dGV4dCB4PSIyMjYuMCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNjAwIiBmaWxsPSIjMTU4MDNkIj7inJM8L3RleHQ+Cjx0ZXh0IHg9IjIyNi4wIiB5PSIxNDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPjUuPC90ZXh0Pgo8Zz48cmVjdCB4PSIyNTQiIHk9IjUwIiB3aWR0aD0iNDAiIGhlaWdodD0iNTYiIHJ4PSI1IiBmaWxsPSIjMWQ0ZWQ4IiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMSIvPjxyZWN0IHg9IjI1OCIgeT0iNTQiIHdpZHRoPSIzMiIgaGVpZ2h0PSI0OCIgcng9IjMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzkzYzVmZCIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMiIvPjwvZz4KPGc+PHJlY3QgeD0iMzAyIiB5PSI1MCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjU2IiByeD0iNSIgZmlsbD0iIzFkNGVkOCIgc3Ryb2tlPSIjMWMxYzFlIiBzdHJva2Utd2lkdGg9IjEiLz48cmVjdCB4PSIzMDYiIHk9IjU0IiB3aWR0aD0iMzIiIGhlaWdodD0iNDgiIHJ4PSIzIiBmaWxsPSJub25lIiBzdHJva2U9IiM5M2M1ZmQiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSIzIDIiLz48L2c+CjxnPjxyZWN0IHg9IjM1MCIgeT0iNTAiIHdpZHRoPSI0MCIgaGVpZ2h0PSI1NiIgcng9IjUiIGZpbGw9IiMxZDRlZDgiIHN0cm9rZT0iIzFjMWMxZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PHJlY3QgeD0iMzU0IiB5PSI1NCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjQ4IiByeD0iMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTNjNWZkIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWRhc2hhcnJheT0iMyAyIi8+PC9nPgo8dGV4dCB4PSIxNCIgeT0iMTY4IiBmb250LXNpemU9IjE1IiBmaWxsPSIjNmU2ZTczIj5Wb24gbGlua3MgbmFjaCByZWNodHMgdW1kcmVoZW46PC90ZXh0Pjx0ZXh0IHg9IjE0IiB5PSIxODgiIGZvbnQtc2l6ZT0iMTUiIGZpbGw9IiM2ZTZlNzMiPk5hY2ggNSBWZXJnbGVpY2hlbiBpc3QgZGllIDkgZ2VmdW5kZW4uPC90ZXh0Pgo8L3N2Zz4K",aO=""+new URL("ss-vergleiche-DRqzU2TZ.svg",import.meta.url).href,iO="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MjAgNDUwIiBmb250LWZhbWlseT0ic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBmaWxsPSIjMWMxYzFlIj4KPGRlZnM+PG1hcmtlciBpZD0iayIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI5IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNiIgbWFya2VySGVpZ2h0PSI2IiBvcmllbnQ9ImF1dG8iPjxwYXRoIGQ9Ik0wIDAgTDEwIDUgTDAgMTAgWiIgZmlsbD0iIzFjMWMxZSIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9ImIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOSIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjYiIG1hcmtlckhlaWdodD0iNiIgb3JpZW50PSJhdXRvIj48cGF0aCBkPSJNMCAwIEwxMCA1IEwwIDEwIFoiIGZpbGw9IiMxZDRlZDgiLz48L21hcmtlcj48bWFya2VyIGlkPSJvIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjkiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI2IiBtYXJrZXJIZWlnaHQ9IjYiIG9yaWVudD0iYXV0byI+PHBhdGggZD0iTTAgMCBMMTAgNSBMMCAxMCBaIiBmaWxsPSIjYjQ1MzA5Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB3aWR0aD0iNDIwIiBoZWlnaHQ9IjQ1MCIgZmlsbD0iI2ZmZmZmZiIvPgo8dGV4dCB4PSIxMCIgeT0iMjIiIGZvbnQtc2l6ZT0iMTUiIGZvbnQtd2VpZ2h0PSI3MDAiPldlcnTDvGJlcmdhYmU6IGVpbmUgS29waWU8L3RleHQ+CjxyZWN0IHg9IjEwIiB5PSIzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4NiIgcng9IjgiIGZpbGw9IiNlZmY2ZmYiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjAiIHk9IjU4IiBmb250LXNpemU9IjEzIiBmaWxsPSIjMWQ0ZWQ4Ij5IYXVwdHByb2dyYW1tPC90ZXh0Pgo8dGV4dCB4PSIyMCIgeT0iOTgiPnphaGw8L3RleHQ+CjxyZWN0IHg9IjcwIiB5PSI3OCIgd2lkdGg9IjU2IiBoZWlnaHQ9IjMwIiByeD0iNCIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+Cjx0ZXh0IHg9Ijk4IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC13ZWlnaHQ9IjcwMCI+NTwvdGV4dD4KPHJlY3QgeD0iMjUwIiB5PSIzOCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4NiIgcng9IjgiIGZpbGw9IiNmZmY3ZWQiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjYwIiB5PSI1OCIgZm9udC1zaXplPSIxMyIgZmlsbD0iI2I0NTMwOSI+dmVyZG9wcGxlPC90ZXh0Pgo8dGV4dCB4PSIyNjAiIHk9Ijk4Ij54PC90ZXh0Pgo8cmVjdCB4PSIyODAiIHk9Ijc4IiB3aWR0aD0iODAiIGhlaWdodD0iMzAiIHJ4PSI0IiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHRleHQgeD0iMzIwIiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSI+PHRzcGFuIGZpbGw9IiM2ZTZlNzMiIHRleHQtZGVjb3JhdGlvbj0ibGluZS10aHJvdWdoIj41PC90c3Bhbj4gPHRzcGFuIGZvbnQtd2VpZ2h0PSI3MDAiPjEwPC90c3Bhbj48L3RleHQ+CjxsaW5lIHgxPSIxMjgiIHkxPSI5MyIgeDI9IjI0OCIgeTI9IjkzIiBzdHJva2U9IiMxYzFjMWUiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtZGFzaGFycmF5PSI1IDQiIG1hcmtlci1lbmQ9InVybCgjaykiLz4KPHRleHQgeD0iMjEwIiB5PSI4NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+S29waWU8L3RleHQ+Cjx0ZXh0IHg9IjEwIiB5PSIxNTAiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiM2ZTZlNzMiPnggd2lyZCAxMCwgYWJlciB6YWhsIGJsZWlidCA1LjwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjE2OCIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+V2llIGJlaSBlaW5lciBGb3Rva29waWU6IFdlciBhdWYgZGVyIEtvcGllIHNjaHJlaWJ0LDwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjE4NiIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+w6RuZGVydCBkYXMgT3JpZ2luYWwgbmljaHQuPC90ZXh0Pgo8bGluZSB4MT0iMTAiIHkxPSIyMDgiIHgyPSI0MTAiIHkyPSIyMDgiIHN0cm9rZT0iI2QxZDFkNiIvPgo8dGV4dCB4PSIxMCIgeT0iMjM2IiBmb250LXNpemU9IjE1IiBmb250LXdlaWdodD0iNzAwIj5SZWZlcmVuesO8YmVyZ2FiZTogZGFzc2VsYmUgQXJyYXk8L3RleHQ+CjxyZWN0IHg9IjEwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZWZmNmZmIiBzdHJva2U9IiMxZDRlZDgiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjIwIiB5PSIyNzIiIGZvbnQtc2l6ZT0iMTMiIGZpbGw9IiMxZDRlZDgiPkhhdXB0cHJvZ3JhbW08L3RleHQ+Cjx0ZXh0IHg9IjIwIiB5PSIzMDAiPnJlaWhlPC90ZXh0Pgo8Y2lyY2xlIGN4PSIxNTAiIGN5PSIyOTUiIHI9IjUiIGZpbGw9IiMxZDRlZDgiLz4KPHJlY3QgeD0iMjUwIiB5PSIyNTIiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjIiIHJ4PSI4IiBmaWxsPSIjZmZmN2VkIiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjI2MCIgeT0iMjcyIiBmb250LXNpemU9IjEzIiBmaWxsPSIjYjQ1MzA5Ij5sZWVyZW48L3RleHQ+Cjx0ZXh0IHg9IjI2MCIgeT0iMzAwIj5wbGFldHplPC90ZXh0Pgo8Y2lyY2xlIGN4PSIzOTAiIGN5PSIyOTUiIHI9IjUiIGZpbGw9IiNiNDUzMDkiLz4KPHBhdGggZD0iTTE1MCAzMDAgTDE1MCAzNDAgTDE0MCAzNTIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFkNGVkOCIgc3Ryb2tlLXdpZHRoPSIxLjUiIG1hcmtlci1lbmQ9InVybCgjYikiLz4KPHBhdGggZD0iTTM5MCAzMDAgTDM5MCAzNDAgTDMyMiAzNTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2I0NTMwOSIgc3Ryb2tlLXdpZHRoPSIxLjUiIG1hcmtlci1lbmQ9InVybCgjbykiLz4KPHJlY3QgeD0iOTAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHJlY3QgeD0iMTUwIiB5PSIzNTgiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMiIgZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSIjMWMxYzFlIi8+CjxyZWN0IHg9IjIxMCIgeT0iMzU4IiB3aWR0aD0iNjAiIGhlaWdodD0iMzIiIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iIzFjMWMxZSIvPgo8cmVjdCB4PSIyNzAiIHk9IjM1OCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjMyIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiMxYzFjMWUiLz4KPHRleHQgeD0iMTIwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIxODAiIHk9IjM3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMyI+ZmFsc2U8L3RleHQ+Cjx0ZXh0IHg9IjI0MCIgeT0iMzc5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEzIj5mYWxzZTwvdGV4dD4KPHRleHQgeD0iMzAwIiB5PSIzNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTMiPmZhbHNlPC90ZXh0Pgo8dGV4dCB4PSIxMCIgeT0iNDE2IiBmb250LXNpemU9IjEzIiBmaWxsPSIjNmU2ZTczIj5FcyBnaWJ0IG51ciBlaW4gQXJyYXkuIFdhcyBsZWVyZW4gw7xiZXIgcGxhZXR6ZSDDpG5kZXJ0LDwvdGV4dD4KPHRleHQgeD0iMTAiIHk9IjQzNCIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzZlNmU3MyI+c2llaHQgZGFzIEhhdXB0cHJvZ3JhbW0gdW50ZXIgcmVpaGUuPC90ZXh0Pgo8L3N2Zz4K",sO=""+new URL("zk-zeichen-vYvc3iJg.svg",import.meta.url).href;function rO(i){const e=[];for(const t of i.replace(/\r\n/g,` `).split(` -`)){const n=/^###\s+(.+)$/.exec(t),a=e.at(-1);if(n){const s=n[1].trim();e.push({term:s,forms:[s],text:""})}else a&&/^(auch|also):/i.test(t)?a.forms.push(...t.replace(/^(auch|also):/i,"").split(",").map(s=>s.trim()).filter(Boolean)):a&&t.trim()!==""&&(a.text=(a.text+" "+t.trim()).trim())}return e.filter(t=>t.text!=="")}const sO=i=>i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");function p0(i){const e=i.flatMap(t=>t.forms).sort((t,n)=>n.length-t.length);if(e.length!==0)return new RegExp(`(?t.forms.includes(e))}class Or extends Error{}function rO(i){return i==="zuhoerer"||i==="vertrag"||i==="layout"||i==="bombe"||i==="frage"||i==="reihenfolge"}function oO(i,e,t){const n=h=>{throw new Or(`${t}: ${h}`)};let a="",s="",r="",o=[],l,u;const m=[];let c,d=!1;for(const h of e){const g=h.trim();if(c&&d&&(/^ {4}|^\t/.test(h)||g==="")){c.code+=(c.code?` +`)){const n=/^###\s+(.+)$/.exec(t),a=e.at(-1);if(n){const s=n[1].trim();e.push({term:s,forms:[s],text:""})}else a&&/^(auch|also):/i.test(t)?a.forms.push(...t.replace(/^(auch|also):/i,"").split(",").map(s=>s.trim()).filter(Boolean)):a&&t.trim()!==""&&(a.text=(a.text+" "+t.trim()).trim())}return e.filter(t=>t.text!=="")}const oO=i=>i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");function f0(i){const e=i.flatMap(t=>t.forms).sort((t,n)=>n.length-t.length);if(e.length!==0)return new RegExp(`(?t.forms.includes(e))}class Or extends Error{}function lO(i){return i==="zuhoerer"||i==="vertrag"||i==="layout"||i==="bombe"||i==="frage"||i==="reihenfolge"}function uO(i,e,t){const n=h=>{throw new Or(`${t}: ${h}`)};let a="",s="",r="",o=[],l,u;const m=[];let c,d=!1;for(const h of e){const g=h.trim();if(c&&d&&(/^ {4}|^\t/.test(h)||g==="")){c.code+=(c.code?` `:"")+h.replace(/^( {4}|\t)/,"");continue}if(d=!1,!g)continue;const p=/^(titel|intro|antworten|frage|runde|klicks|richtig|zeit|fehler|besser|daten):\s*(.*)$/.exec(g);if(p){const[,y,w]=p;y==="runde"?(c={code:"",question:r,options:[],explanation:"",clicks:[]},m.push(c),d=!0):c?y==="frage"?c.question=w:y==="fehler"?c.wrongLine=Number(w):y==="besser"?c.fix=w:y==="klicks"?c.clicks=w.split(",").map(v=>v.trim()).filter(Boolean):y==="richtig"?c.rightText=w:n(`„${y}:“ gehört vor die erste Runde.`):y==="titel"?a=w:y==="intro"?s=w:y==="antworten"?o=w.split("|").map(v=>v.trim()):y==="frage"?r=w:y==="zeit"?l=Number(w):y==="daten"?u=w==="csv"?w:n("„daten:“ kennt nur „csv“."):n(`„${y}:“ gehört in eine Runde.`);continue}c||n(`Unbekannte Zeile vor der ersten Runde: „${g}“`);const x=c,b=/^-\s+(\[x\]\s+)?(.+)$/.exec(g);b?x.options.push({text:b[2].trim().replaceAll("\\n",` `),right:!!b[1]}):g.startsWith(">")?x.explanation+=(x.explanation?" ":"")+g.slice(1).trim():n(`Unbekannte Zeile im Spiel: „${g}“`)}return a||n("Das Spiel braucht eine Zeile „titel:“."),m.length||n("Das Spiel braucht mindestens eine „runde:“."),m.forEach((h,g)=>{if(h.code=h.code.replace(/\n+$/,""),i==="bombe"){const p=h.code.split(` -`),x=h.wrongLine;(!x||!Number.isInteger(x)||x<1||x>p.length||!p[x-1].trim())&&n(`Runde ${g+1}: „fehler:“ muss eine Zeile des Codes sein.`),h.fix||n(`Runde ${g+1}: „besser:“ fehlt.`),h.options.length&&n(`Runde ${g+1}: Bei „bombe“ gibt es keine Antworten, man tippt auf die Zeile.`),h.question||n(`Runde ${g+1}: keine Frage.`);return}if(i==="reihenfolge"){h.options.length<3&&n(`Runde ${g+1}: „reihenfolge“ braucht mindestens drei Schritte.`),h.options.some(p=>p.right)&&n(`Runde ${g+1}: Bei „reihenfolge“ gibt es kein [x], die Schritte stehen der Reihe nach da.`),new Set(h.options.map(p=>p.text)).size!==h.options.length&&n(`Runde ${g+1}: zwei Schritte sind gleich.`),h.question||n(`Runde ${g+1}: keine Frage.`);return}if(h.options.length||(o.length||n(`Runde ${g+1}: keine Antworten.`),(!h.rightText||!o.includes(h.rightText))&&n(`Runde ${g+1}: „richtig:“ muss eine der Antworten sein.`),h.options=o.map(p=>({text:p,right:p===h.rightText}))),h.options.filter(p=>p.right).length!==1&&n(`Runde ${g+1}: genau eine Antwort muss richtig sein.`),h.question||n(`Runde ${g+1}: keine Frage.`),i==="layout"&&h.options.forEach(p=>Hc(p.text,`Runde ${g+1}`,n)),i==="zuhoerer")try{const p=Qc(h.code);for(const x of h.clicks)p.buttons.some(b=>b.caption===x)||n(`Runde ${g+1}: Knopf „${x}“ gibt es nicht.`);lO(p,h.clicks)}catch(p){if(p instanceof Or)throw p;n(`Runde ${g+1}: ${p.message}`)}delete h.rightText}),i==="bombe"&&!(l&&l>0)&&n("„bombe“ braucht „zeit:“ mit den Sekunden je Runde."),{kind:i,title:a,intro:s,...i==="bombe"?{seconds:l,...u?{data:u}:{}}:{},rounds:m}}function Hc(i,e="",t=n=>{throw new Or(n)}){const n=/^(grid|flow|border):\s*(.+)$/.exec(i);if(!n)return t(`${e}: Antwort „${i}“ ist kein Fensterbild (grid:, flow: oder border:).`);if(n[1]==="border"){const s={};for(const r of n[2].split(/\s+/)){const o=/^([NSWEC])=(.+)$/.exec(r);o||t(`${e}: „${r}“ im BorderLayout-Bild verstehe ich nicht (z. B. N=A).`),s[o[1]]=o[2]}return{kind:"border",areas:s}}const a=n[2].split("/").map(s=>s.trim().split(/\s+/).filter(Boolean));return{kind:n[1],rows:a}}const Ka='"((?:[^"\\\\]|\\\\.)*)"';function Qc(i){const e=i.split(` -`),t={title:"",buttons:[],labels:[],ints:{},listeners:[]},n=new Map,a=(r,o,l)=>{if(o.startsWith("{")){let m=r+1;const c=[];for(;m=e.length)throw new Error(`Dem Zuhörer fehlt „${l}“.`);return{from:r,to:m,statements:Tr(c.join(" "))}}const u=l==="});"?o.replace(/\)\s*;\s*$/,""):o.replace(/;\s*$/,"");return{from:r,to:r,statements:Tr(u)}},s=r=>{if(!t.buttons.some(o=>o.name===r))throw new Error(`Knopf ${r} ist nicht angelegt.`);return r};for(let r=0;r\s*(.*)$/.exec(o)){const u=a(r,l[2],"};");n.set(l[1],u),r=u.to}else if(l=/^(\w+)\.addActionListener\(\s*(\w+)\s*\)\s*;$/.exec(o)){const u=n.get(l[2]);if(!u)throw new Error(`Zuhörer ${l[2]} ist nicht angelegt.`);t.listeners.push({button:s(l[1]),...u})}else if(l=/^(\w+)\.addActionListener\(\s*\w+\s*->\s*(.*)$/.exec(o)){const u=a(r,l[2],"});");t.listeners.push({button:s(l[1]),...u}),r=u.to}}return t}function Tr(i){const e=[];let t=0;const n=()=>{for(;t{let u=0,m=!1;const c=t+1;for(;t{let o=0,l=!1;const u=t;for(;t{if(n(),i[t]==="{")return Tr(a("{","}"));if(/^if\s*\(/.test(i.slice(t))){t=i.indexOf("(",t);const l=a("(",")").trim(),u=r();n();let m=[];return/^else\b/.test(i.slice(t))&&(t+=4,m=r()),[{condition:l,then:u,otherwise:m}]}const o=s();return o?[o]:[]};for(n();ta.caption===t)??i.buttons.find(a=>e.texts[a.name]===t);if(!n)throw new Error(`Knopf „${t}“ gibt es nicht.`);return Uc(i,e,n.name)}function Uc(i,e,t){const n=i.listeners.find(r=>r.button===t),a=[],s={source:t,command:e.texts[t]};for(const r of(n==null?void 0:n.statements)??[])$c(r,e,a,s);return{button:t,listener:n,texts:{...e.texts},console:a}}function lO(i,e){const t=Vc(i);return e.map(n=>qc(i,t,n))}function $c(i,e,t,n){if(typeof i!="string"){for(const s of uO(i.condition,e,n)?i.then:i.otherwise)$c(s,e,t,n);return}let a;if(a=/^(\w+)\.setText\((.*)\)$/.exec(i)){if(!(a[1]in e.texts))throw new Error(`${a[1]} ist keine Beschriftung und kein Knopf.`);e.texts[a[1]]=String(An(a[2],e,n))}else if(a=/^System\.out\.println\((.*)\)$/.exec(i))t.push(String(An(a[1],e,n)));else if(a=/^(\w+)\s*(\+\+|--)$/.exec(i))e.ints[x0(a[1],e)]+=a[2]==="++"?1:-1;else if(a=/^(\w+)\s*([+-]?=)\s*(.+)$/.exec(i)){const s=x0(a[1],e),r=Number(An(a[3],e,n));e.ints[s]=a[2]==="="?r:a[2]==="+="?e.ints[s]+r:e.ints[s]-r}else throw new Error(`Diese Anweisung kann das Spiel nicht nachspielen: „${i}“`)}function uO(i,e,t){let n;if(n=/^e\.getSource\(\)\s*(==|!=)\s*(\w+)$/.exec(i)){if(!(n[2]in e.texts))throw new Error(`${n[2]} ist kein Knopf.`);return t.source===n[2]==(n[1]==="==")}if(n=/^(!?)(.+)\.equals\((.+)\)$/.exec(i))return String(An(n[2],e,t))===String(An(n[3],e,t))!=(n[1]==="!");if(n=/^(.+?)\s*(==|!=|<=|>=|<|>)\s*(.+)$/.exec(i)){const a=Number(An(n[1],e,t)),s=Number(An(n[3],e,t));return{"==":a===s,"!=":a!==s,"<=":a<=s,">=":a>=s,"<":a":a>s}[n[2]]}throw new Error(`Diese Bedingung kann das Spiel nicht nachspielen: „${i}“`)}function x0(i,e){if(!(i in e.ints))throw new Error(`Variable ${i} ist nicht angelegt.`);return i}function An(i,e,t){const n=i.match(new RegExp(`${Ka}|\\d+|e\\.getActionCommand\\(\\)|\\w+(?:\\.getText\\(\\))?|[-+*/()]`,"g"))??[];let a=0;const s=()=>{const l=n[a++];if(l===void 0)throw new Error(`Unvollständiger Ausdruck „${i}“`);if(l==="("){const u=o();return a++,u}if(l.startsWith('"'))return JSON.parse(l);if(/^\d+$/.test(l))return Number(l);if(l==="e.getActionCommand()"){if(!t)throw new Error("e.getActionCommand() gibt es nur im Zuhörer.");return t.command}if(l.endsWith(".getText()"))return e.texts[l.slice(0,-10)]??"";if(l in e.ints)return e.ints[l];throw new Error(`Unbekannt: „${l}“`)},r=()=>{let l=s();for(;n[a]==="*"||n[a]==="/";){const u=n[a++],m=Number(s());l=u==="*"?Number(l)*m:Math.trunc(Number(l)/m)}return l},o=()=>{let l=r();for(;n[a]==="+"||n[a]==="-";){const u=n[a++],m=r();u==="+"?l=typeof l=="string"||typeof m=="string"?`${l}${m}`:l+m:l=Number(l)-Number(m)}return l};return o()}class mO extends Error{}const zi="___";function cO(i){const e=Array.from({length:i.rows},()=>Array(i.cols).fill(""));for(const t of i.words)[...t.word].forEach((n,a)=>e[t.row+(t.across?0:a)][t.col+(t.across?a:0)]=n);return e}function dO(i,e){const t=O=>{throw new mO(`${e}: ${O}`)},n=(O,_)=>{const Z=/^(\d+)\s+(\d+)$/.exec(O.trim());return!Z||Number(Z[1])<1||Number(Z[2])<1?t(`${_}: „${O}“ ist kein Feld (Zeile Spalte, ab 1).`):{row:Number(Z[1])-1,col:Number(Z[2])-1}};let a="",s="",r="ABCDEFGHIJKLMNOPQRSTUVWXYZ",o="",l="",u="",m="";const c=[],d=[];let h=[],g,p="start";for(const O of i){const _=O.trim();if(g&&(/^( {4}|\t)/.test(O)||_==="")){const j=O.replace(/^( {4}|\t)/,"");if(g==="station"){const A=c[c.length-1];A.code+=(A.code?` +`),x=h.wrongLine;(!x||!Number.isInteger(x)||x<1||x>p.length||!p[x-1].trim())&&n(`Runde ${g+1}: „fehler:“ muss eine Zeile des Codes sein.`),h.fix||n(`Runde ${g+1}: „besser:“ fehlt.`),h.options.length&&n(`Runde ${g+1}: Bei „bombe“ gibt es keine Antworten, man tippt auf die Zeile.`),h.question||n(`Runde ${g+1}: keine Frage.`);return}if(i==="reihenfolge"){h.options.length<3&&n(`Runde ${g+1}: „reihenfolge“ braucht mindestens drei Schritte.`),h.options.some(p=>p.right)&&n(`Runde ${g+1}: Bei „reihenfolge“ gibt es kein [x], die Schritte stehen der Reihe nach da.`),new Set(h.options.map(p=>p.text)).size!==h.options.length&&n(`Runde ${g+1}: zwei Schritte sind gleich.`),h.question||n(`Runde ${g+1}: keine Frage.`);return}if(h.options.length||(o.length||n(`Runde ${g+1}: keine Antworten.`),(!h.rightText||!o.includes(h.rightText))&&n(`Runde ${g+1}: „richtig:“ muss eine der Antworten sein.`),h.options=o.map(p=>({text:p,right:p===h.rightText}))),h.options.filter(p=>p.right).length!==1&&n(`Runde ${g+1}: genau eine Antwort muss richtig sein.`),h.question||n(`Runde ${g+1}: keine Frage.`),i==="layout"&&h.options.forEach(p=>Qc(p.text,`Runde ${g+1}`,n)),i==="zuhoerer")try{const p=Vc(h.code);for(const x of h.clicks)p.buttons.some(b=>b.caption===x)||n(`Runde ${g+1}: Knopf „${x}“ gibt es nicht.`);mO(p,h.clicks)}catch(p){if(p instanceof Or)throw p;n(`Runde ${g+1}: ${p.message}`)}delete h.rightText}),i==="bombe"&&!(l&&l>0)&&n("„bombe“ braucht „zeit:“ mit den Sekunden je Runde."),{kind:i,title:a,intro:s,...i==="bombe"?{seconds:l,...u?{data:u}:{}}:{},rounds:m}}function Qc(i,e="",t=n=>{throw new Or(n)}){const n=/^(grid|flow|border):\s*(.+)$/.exec(i);if(!n)return t(`${e}: Antwort „${i}“ ist kein Fensterbild (grid:, flow: oder border:).`);if(n[1]==="border"){const s={};for(const r of n[2].split(/\s+/)){const o=/^([NSWEC])=(.+)$/.exec(r);o||t(`${e}: „${r}“ im BorderLayout-Bild verstehe ich nicht (z. B. N=A).`),s[o[1]]=o[2]}return{kind:"border",areas:s}}const a=n[2].split("/").map(s=>s.trim().split(/\s+/).filter(Boolean));return{kind:n[1],rows:a}}const Ka='"((?:[^"\\\\]|\\\\.)*)"';function Vc(i){const e=i.split(` +`),t={title:"",buttons:[],labels:[],ints:{},listeners:[]},n=new Map,a=(r,o,l)=>{if(o.startsWith("{")){let m=r+1;const c=[];for(;m=e.length)throw new Error(`Dem Zuhörer fehlt „${l}“.`);return{from:r,to:m,statements:Tr(c.join(" "))}}const u=l==="});"?o.replace(/\)\s*;\s*$/,""):o.replace(/;\s*$/,"");return{from:r,to:r,statements:Tr(u)}},s=r=>{if(!t.buttons.some(o=>o.name===r))throw new Error(`Knopf ${r} ist nicht angelegt.`);return r};for(let r=0;r\s*(.*)$/.exec(o)){const u=a(r,l[2],"};");n.set(l[1],u),r=u.to}else if(l=/^(\w+)\.addActionListener\(\s*(\w+)\s*\)\s*;$/.exec(o)){const u=n.get(l[2]);if(!u)throw new Error(`Zuhörer ${l[2]} ist nicht angelegt.`);t.listeners.push({button:s(l[1]),...u})}else if(l=/^(\w+)\.addActionListener\(\s*\w+\s*->\s*(.*)$/.exec(o)){const u=a(r,l[2],"});");t.listeners.push({button:s(l[1]),...u}),r=u.to}}return t}function Tr(i){const e=[];let t=0;const n=()=>{for(;t{let u=0,m=!1;const c=t+1;for(;t{let o=0,l=!1;const u=t;for(;t{if(n(),i[t]==="{")return Tr(a("{","}"));if(/^if\s*\(/.test(i.slice(t))){t=i.indexOf("(",t);const l=a("(",")").trim(),u=r();n();let m=[];return/^else\b/.test(i.slice(t))&&(t+=4,m=r()),[{condition:l,then:u,otherwise:m}]}const o=s();return o?[o]:[]};for(n();ta.caption===t)??i.buttons.find(a=>e.texts[a.name]===t);if(!n)throw new Error(`Knopf „${t}“ gibt es nicht.`);return $c(i,e,n.name)}function $c(i,e,t){const n=i.listeners.find(r=>r.button===t),a=[],s={source:t,command:e.texts[t]};for(const r of(n==null?void 0:n.statements)??[])Yc(r,e,a,s);return{button:t,listener:n,texts:{...e.texts},console:a}}function mO(i,e){const t=qc(i);return e.map(n=>Uc(i,t,n))}function Yc(i,e,t,n){if(typeof i!="string"){for(const s of cO(i.condition,e,n)?i.then:i.otherwise)Yc(s,e,t,n);return}let a;if(a=/^(\w+)\.setText\((.*)\)$/.exec(i)){if(!(a[1]in e.texts))throw new Error(`${a[1]} ist keine Beschriftung und kein Knopf.`);e.texts[a[1]]=String(An(a[2],e,n))}else if(a=/^System\.out\.println\((.*)\)$/.exec(i))t.push(String(An(a[1],e,n)));else if(a=/^(\w+)\s*(\+\+|--)$/.exec(i))e.ints[b0(a[1],e)]+=a[2]==="++"?1:-1;else if(a=/^(\w+)\s*([+-]?=)\s*(.+)$/.exec(i)){const s=b0(a[1],e),r=Number(An(a[3],e,n));e.ints[s]=a[2]==="="?r:a[2]==="+="?e.ints[s]+r:e.ints[s]-r}else throw new Error(`Diese Anweisung kann das Spiel nicht nachspielen: „${i}“`)}function cO(i,e,t){let n;if(n=/^e\.getSource\(\)\s*(==|!=)\s*(\w+)$/.exec(i)){if(!(n[2]in e.texts))throw new Error(`${n[2]} ist kein Knopf.`);return t.source===n[2]==(n[1]==="==")}if(n=/^(!?)(.+)\.equals\((.+)\)$/.exec(i))return String(An(n[2],e,t))===String(An(n[3],e,t))!=(n[1]==="!");if(n=/^(.+?)\s*(==|!=|<=|>=|<|>)\s*(.+)$/.exec(i)){const a=Number(An(n[1],e,t)),s=Number(An(n[3],e,t));return{"==":a===s,"!=":a!==s,"<=":a<=s,">=":a>=s,"<":a":a>s}[n[2]]}throw new Error(`Diese Bedingung kann das Spiel nicht nachspielen: „${i}“`)}function b0(i,e){if(!(i in e.ints))throw new Error(`Variable ${i} ist nicht angelegt.`);return i}function An(i,e,t){const n=i.match(new RegExp(`${Ka}|\\d+|e\\.getActionCommand\\(\\)|\\w+(?:\\.getText\\(\\))?|[-+*/()]`,"g"))??[];let a=0;const s=()=>{const l=n[a++];if(l===void 0)throw new Error(`Unvollständiger Ausdruck „${i}“`);if(l==="("){const u=o();return a++,u}if(l.startsWith('"'))return JSON.parse(l);if(/^\d+$/.test(l))return Number(l);if(l==="e.getActionCommand()"){if(!t)throw new Error("e.getActionCommand() gibt es nur im Zuhörer.");return t.command}if(l.endsWith(".getText()"))return e.texts[l.slice(0,-10)]??"";if(l in e.ints)return e.ints[l];throw new Error(`Unbekannt: „${l}“`)},r=()=>{let l=s();for(;n[a]==="*"||n[a]==="/";){const u=n[a++],m=Number(s());l=u==="*"?Number(l)*m:Math.trunc(Number(l)/m)}return l},o=()=>{let l=r();for(;n[a]==="+"||n[a]==="-";){const u=n[a++],m=r();u==="+"?l=typeof l=="string"||typeof m=="string"?`${l}${m}`:l+m:l=Number(l)-Number(m)}return l};return o()}class dO extends Error{}const zi="___";function hO(i){const e=Array.from({length:i.rows},()=>Array(i.cols).fill(""));for(const t of i.words)[...t.word].forEach((n,a)=>e[t.row+(t.across?0:a)][t.col+(t.across?a:0)]=n);return e}function gO(i,e){const t=O=>{throw new dO(`${e}: ${O}`)},n=(O,_)=>{const Z=/^(\d+)\s+(\d+)$/.exec(O.trim());return!Z||Number(Z[1])<1||Number(Z[2])<1?t(`${_}: „${O}“ ist kein Feld (Zeile Spalte, ab 1).`):{row:Number(Z[1])-1,col:Number(Z[2])-1}};let a="",s="",r="ABCDEFGHIJKLMNOPQRSTUVWXYZ",o="",l="",u="",m="";const c=[],d=[];let h=[],g,p="start";for(const O of i){const _=O.trim();if(g&&(/^( {4}|\t)/.test(O)||_==="")){const j=O.replace(/^( {4}|\t)/,"");if(g==="station"){const A=c[c.length-1];A.code+=(A.code?` `:"")+j}else u+=(u?` -`:"")+j;continue}if(g=void 0,!_)continue;const Z=/^(titel|intro|alphabet|station|frage|zahl|feld|tipp|kreuzwort|lösung|loesung|tor|ende):\s*(.*)$/.exec(_);if(Z){const[,j,A]=Z;if(j==="station")c.push({name:A,code:"",question:"",hint:"",explanation:""}),p="station",g="station";else if(j==="kreuzwort")o=A,p="crossword";else if(j==="tor")l=A,p="gate",g="gate";else if(j==="titel")a=A;else if(j==="intro")s=A;else if(j==="alphabet")r=A;else if(j==="ende")m=A;else if(j==="lösung"||j==="loesung")p!=="crossword"&&t("„lösung:“ gehört zum Kreuzworträtsel."),h=A.split(",").map(L=>n(L,"lösung"));else{p!=="station"&&t(`„${j}:“ gehört in eine Station.`);const L=c[c.length-1];j==="frage"?L.question=A:j==="tipp"?L.hint=A:j==="zahl"?L.answer=/^-?\d+$/.test(A)?Number(A):t(`Station „${L.name}“: „zahl:“ muss eine ganze Zahl sein.`):Object.assign(L,n(A,`Station „${L.name}“`))}continue}if(p==="crossword"){const j=/^-\s+([→↓])\s+(\d+)\s+(\d+)\s+([A-ZÄÖÜ]+):\s*(.+)$/u.exec(_);j||t(`Kreuzworträtsel: „${_}“ verstehe ich nicht (z. B. „- → 1 3 STRING: Hinweis“).`),d.push({across:j[1]==="→",row:Number(j[2])-1,col:Number(j[3])-1,word:j[4],clue:j[5]});continue}if(p==="station"&&_.startsWith(">")){const j=c[c.length-1];j.explanation+=(j.explanation?" ":"")+_.slice(1).trim();continue}t(`Unbekannte Zeile im Spiel: „${_}“`)}a||t("Das Spiel braucht eine Zeile „titel:“."),c.length||t("Das Spiel braucht mindestens eine „station:“."),d.length||t("Das Spiel braucht ein „kreuzwort:“ mit Wörtern."),h.length||t("Das Kreuzworträtsel braucht eine Zeile „lösung:“."),u.includes(zi)||t(`Der Code bei „tor:“ braucht ${zi} für das Eingabefeld.`),new Set(r).size!==r.length&&t("Im Alphabet kommt ein Zeichen doppelt vor.");const x=Math.max(...d.map(O=>O.row+(O.across?1:O.word.length))),b=Math.max(...d.map(O=>O.col+(O.across?O.word.length:1))),y=Array.from({length:x},()=>Array(b).fill(""));for(const O of d)[...O.word].forEach((_,Z)=>{const j=O.row+(O.across?0:Z),A=O.col+(O.across?Z:0);y[j][A]&&y[j][A]!==_&&t(`Kreuzworträtsel: ${O.word} passt in Zeile ${j+1}, Spalte ${A+1} nicht (dort steht ${y[j][A]}).`),y[j][A]=_});const w=[...new Set(d.map(O=>O.row*b+O.col))].sort((O,_)=>O-_),v=d.map(O=>({...O,number:w.indexOf(O.row*b+O.col)+1})),z=(O,_)=>{var Z;return((Z=y[O])==null?void 0:Z[_])??""},k=h.map(({row:O,col:_})=>z(O,_)||t(`lösung: In Zeile ${O+1}, Spalte ${_+1} ist kein Feld.`)).join(""),S=c.map(O=>{O.code||t(`Station „${O.name}“: Code fehlt.`),O.question||t(`Station „${O.name}“: „frage:“ fehlt.`),O.answer===void 0&&t(`Station „${O.name}“: „zahl:“ fehlt.`),O.row===void 0&&t(`Station „${O.name}“: „feld:“ fehlt.`);const _=r.charAt(O.answer);_||t(`Station „${O.name}“: alphabet.charAt(${O.answer}) gibt es nicht.`);const Z=z(O.row,O.col);return Z!==_&&t(`Station „${O.name}“: alphabet.charAt(${O.answer}) ist ${_}, im Feld ${O.row+1} ${O.col+1} steht aber „${Z}“.`),O.code=O.code.replace(/\n+$/,""),O});return{title:a,intro:s,alphabet:r,stations:S,crosswordText:o,rows:x,cols:b,words:v,solution:h,keyword:k,gateText:l,gateCode:u.replace(/\n+$/,""),end:m}}const hO=/\[\[(.+?)\]\]/g;function gO(i,e){const t={title:"",task:"",blocks:[]},n=[];let a=!1;for(const s of i){if(/^\s*```/.test(s)){a||n.push([]),a=!a;continue}if(a){n[n.length-1].push(s.replace(/\s+$/,""));continue}const r=s.trim();if(!r)continue;const o=/^([a-zäöü]+):\s*(.*)$/i.exec(r);if(!o)throw new Error(`${e}: Unbekannte Zeile im Lückentext: „${r}“.`);const l=o[2].trim();switch(o[1].toLowerCase()){case"titel":t.title=l;break;case"auftrag":t.task=l;break;case"erklärung":case"erklaerung":t.explanation=l;break;default:throw new Error(`${e}: Unbekannter Schlüssel „${o[1]}“ im Lückentext.`)}}if(a)throw new Error(`${e}: Der Codeblock im Lückentext wird nicht mit \`\`\` geschlossen.`);if(!t.title)throw new Error(`${e}: Ein Lückentext braucht einen Titel.`);if(!n.some(s=>s.some(r=>r.trim())))throw new Error(`${e}: Lückentext „${t.title}“ braucht einen Codeblock.`);if(t.blocks=n.map(s=>{const r=Math.min(...s.filter(o=>o.trim()).map(o=>/^ */.exec(o)[0].length));return s.map(o=>pO(o.slice(r),e,t.title))}),!fO(t).length)throw new Error(`${e}: Lückentext „${t.title}“ braucht mindestens eine Lücke [[…]].`);return t}function pO(i,e,t){const n=[];let a=0;for(const s of i.matchAll(hO)){s.index>a&&n.push(i.slice(a,s.index));const r=s[1].split(/\s+\|\s+/).map(o=>o.trim()).filter(Boolean);if(!r.length)throw new Error(`${e}: Leere Lücke im Lückentext „${t}“.`);n.push({answers:r}),a=s.index+s[0].length}if(atypeof s=="string"&&(s.includes("[[")||s.includes("]]"))))throw new Error(`${e}: Unvollständige Lücke im Lückentext „${t}“: „${i}“.`);return n}function fO(i){return i.blocks.flat().flatMap(e=>e.flatMap(t=>typeof t=="string"?[]:[t.answers]))}function xO(i,e){const t=n=>n.replace(/\s+/g,"");return t(e)!==""&&i.some(n=>t(n)===t(e))}class se extends Error{}function Yc(i,e){const t=/^---\n([\s\S]*?)\n---\n?/.exec(i.replace(/\r\n/g,` +`:"")+j;continue}if(g=void 0,!_)continue;const Z=/^(titel|intro|alphabet|station|frage|zahl|feld|tipp|kreuzwort|lösung|loesung|tor|ende):\s*(.*)$/.exec(_);if(Z){const[,j,A]=Z;if(j==="station")c.push({name:A,code:"",question:"",hint:"",explanation:""}),p="station",g="station";else if(j==="kreuzwort")o=A,p="crossword";else if(j==="tor")l=A,p="gate",g="gate";else if(j==="titel")a=A;else if(j==="intro")s=A;else if(j==="alphabet")r=A;else if(j==="ende")m=A;else if(j==="lösung"||j==="loesung")p!=="crossword"&&t("„lösung:“ gehört zum Kreuzworträtsel."),h=A.split(",").map(L=>n(L,"lösung"));else{p!=="station"&&t(`„${j}:“ gehört in eine Station.`);const L=c[c.length-1];j==="frage"?L.question=A:j==="tipp"?L.hint=A:j==="zahl"?L.answer=/^-?\d+$/.test(A)?Number(A):t(`Station „${L.name}“: „zahl:“ muss eine ganze Zahl sein.`):Object.assign(L,n(A,`Station „${L.name}“`))}continue}if(p==="crossword"){const j=/^-\s+([→↓])\s+(\d+)\s+(\d+)\s+([A-ZÄÖÜ]+):\s*(.+)$/u.exec(_);j||t(`Kreuzworträtsel: „${_}“ verstehe ich nicht (z. B. „- → 1 3 STRING: Hinweis“).`),d.push({across:j[1]==="→",row:Number(j[2])-1,col:Number(j[3])-1,word:j[4],clue:j[5]});continue}if(p==="station"&&_.startsWith(">")){const j=c[c.length-1];j.explanation+=(j.explanation?" ":"")+_.slice(1).trim();continue}t(`Unbekannte Zeile im Spiel: „${_}“`)}a||t("Das Spiel braucht eine Zeile „titel:“."),c.length||t("Das Spiel braucht mindestens eine „station:“."),d.length||t("Das Spiel braucht ein „kreuzwort:“ mit Wörtern."),h.length||t("Das Kreuzworträtsel braucht eine Zeile „lösung:“."),u.includes(zi)||t(`Der Code bei „tor:“ braucht ${zi} für das Eingabefeld.`),new Set(r).size!==r.length&&t("Im Alphabet kommt ein Zeichen doppelt vor.");const x=Math.max(...d.map(O=>O.row+(O.across?1:O.word.length))),b=Math.max(...d.map(O=>O.col+(O.across?O.word.length:1))),y=Array.from({length:x},()=>Array(b).fill(""));for(const O of d)[...O.word].forEach((_,Z)=>{const j=O.row+(O.across?0:Z),A=O.col+(O.across?Z:0);y[j][A]&&y[j][A]!==_&&t(`Kreuzworträtsel: ${O.word} passt in Zeile ${j+1}, Spalte ${A+1} nicht (dort steht ${y[j][A]}).`),y[j][A]=_});const w=[...new Set(d.map(O=>O.row*b+O.col))].sort((O,_)=>O-_),v=d.map(O=>({...O,number:w.indexOf(O.row*b+O.col)+1})),z=(O,_)=>{var Z;return((Z=y[O])==null?void 0:Z[_])??""},k=h.map(({row:O,col:_})=>z(O,_)||t(`lösung: In Zeile ${O+1}, Spalte ${_+1} ist kein Feld.`)).join(""),S=c.map(O=>{O.code||t(`Station „${O.name}“: Code fehlt.`),O.question||t(`Station „${O.name}“: „frage:“ fehlt.`),O.answer===void 0&&t(`Station „${O.name}“: „zahl:“ fehlt.`),O.row===void 0&&t(`Station „${O.name}“: „feld:“ fehlt.`);const _=r.charAt(O.answer);_||t(`Station „${O.name}“: alphabet.charAt(${O.answer}) gibt es nicht.`);const Z=z(O.row,O.col);return Z!==_&&t(`Station „${O.name}“: alphabet.charAt(${O.answer}) ist ${_}, im Feld ${O.row+1} ${O.col+1} steht aber „${Z}“.`),O.code=O.code.replace(/\n+$/,""),O});return{title:a,intro:s,alphabet:r,stations:S,crosswordText:o,rows:x,cols:b,words:v,solution:h,keyword:k,gateText:l,gateCode:u.replace(/\n+$/,""),end:m}}const pO=/\[\[(.+?)\]\]/g;function fO(i,e){const t={title:"",task:"",blocks:[]},n=[];let a=!1;for(const s of i){if(/^\s*```/.test(s)){a||n.push([]),a=!a;continue}if(a){n[n.length-1].push(s.replace(/\s+$/,""));continue}const r=s.trim();if(!r)continue;const o=/^([a-zäöü]+):\s*(.*)$/i.exec(r);if(!o)throw new Error(`${e}: Unbekannte Zeile im Lückentext: „${r}“.`);const l=o[2].trim();switch(o[1].toLowerCase()){case"titel":t.title=l;break;case"auftrag":t.task=l;break;case"erklärung":case"erklaerung":t.explanation=l;break;default:throw new Error(`${e}: Unbekannter Schlüssel „${o[1]}“ im Lückentext.`)}}if(a)throw new Error(`${e}: Der Codeblock im Lückentext wird nicht mit \`\`\` geschlossen.`);if(!t.title)throw new Error(`${e}: Ein Lückentext braucht einen Titel.`);if(!n.some(s=>s.some(r=>r.trim())))throw new Error(`${e}: Lückentext „${t.title}“ braucht einen Codeblock.`);if(t.blocks=n.map(s=>{const r=Math.min(...s.filter(o=>o.trim()).map(o=>/^ */.exec(o)[0].length));return s.map(o=>xO(o.slice(r),e,t.title))}),!bO(t).length)throw new Error(`${e}: Lückentext „${t.title}“ braucht mindestens eine Lücke [[…]].`);return t}function xO(i,e,t){const n=[];let a=0;for(const s of i.matchAll(pO)){s.index>a&&n.push(i.slice(a,s.index));const r=s[1].split(/\s+\|\s+/).map(o=>o.trim()).filter(Boolean);if(!r.length)throw new Error(`${e}: Leere Lücke im Lückentext „${t}“.`);n.push({answers:r}),a=s.index+s[0].length}if(atypeof s=="string"&&(s.includes("[[")||s.includes("]]"))))throw new Error(`${e}: Unvollständige Lücke im Lückentext „${t}“: „${i}“.`);return n}function bO(i){return i.blocks.flat().flatMap(e=>e.flatMap(t=>typeof t=="string"?[]:[t.answers]))}function yO(i,e){const t=n=>n.replace(/\s+/g,"");return t(e)!==""&&i.some(n=>t(n)===t(e))}class se extends Error{}function Xc(i,e){const t=/^---\n([\s\S]*?)\n---\n?/.exec(i.replace(/\r\n/g,` `));if(!t)throw new se(`${e}: Kopfzeilen (--- … ---) fehlen.`);const n=new Map;for(const a of t[1].split(` `)){const s=/^([a-zäöüß]+):\s*(.*)$/i.exec(a.trim());s&&n.set(s[1].toLowerCase(),s[2].trim())}return{meta:n,body:i.replace(/\r\n/g,` -`).slice(t[0].length)}}function bO(i,e){const t=i.split(/\s*(?:->|→)\s*/);if(t.length!==2)throw new se(`${e}: Test „${i}“ braucht genau ein „->“.`);const n=(a,s)=>a.trim()===""||a.trim()==="-"?[]:a.split(s).map(r=>r.trim());return{inputs:n(t[0],/\s*,\s*/),expected:n(t[1],/\s*\|\s*/)}}function yO(i,e,t){const n={id:i,title:"",task:"",tests:[],requires:[],hints:[],subprograms:[]};let a;for(const s of e){const r=/^(titel|auftrag|start|test|datei|braucht|tipp|lösung|loesung|unterprogramm|code):\s*(.*)$/i.exec(s.trim());if(r){const[,o,l]=r;switch(a=void 0,o.toLowerCase()){case"titel":n.title=l;break;case"auftrag":n.task=l,a="task";break;case"start":n.start=l;break;case"test":n.tests.push(bO(l,t));break;case"datei":{const u=/^([\w.-]+)\s*(?:->|→)\s*(.*)$/.exec(l.trim());if(!u||!n.tests.length)throw new se(`${t}: Übung „${i}“: „datei:“ braucht vorher einen Test und die Form „name.txt -> Zeile | Zeile“.`);const m=n.tests[n.tests.length-1];m.files=[...m.files??[],{name:u[1],lines:u[2].trim()===""?[]:u[2].split(/\s*\|\s*/).map(c=>c.trim())}];break}case"braucht":n.requires.push(...l.split(/\s*,\s*/).filter(Boolean));break;case"tipp":n.hints.push(l),a="hint";break;case"lösung":case"loesung":n.solution=l;break;case"unterprogramm":n.subprograms.push(...l.split(/\s*,\s*/).filter(Boolean));break;case"code":if(l.trim().toLowerCase()!=="java")throw new se(`${t}: Übung „${i}“: „code:“ kennt nur „java“.`);n.code="java";break}}else a&&s.trim()!==""?a==="task"?n.task+=` +`).slice(t[0].length)}}function vO(i,e){const t=i.split(/\s*(?:->|→)\s*/);if(t.length!==2)throw new se(`${e}: Test „${i}“ braucht genau ein „->“.`);const n=(a,s)=>a.trim()===""||a.trim()==="-"?[]:a.split(s).map(r=>r.trim());return{inputs:n(t[0],/\s*,\s*/),expected:n(t[1],/\s*\|\s*/)}}function wO(i,e,t){const n={id:i,title:"",task:"",tests:[],requires:[],hints:[],subprograms:[]};let a;for(const s of e){const r=/^(titel|auftrag|start|test|datei|braucht|tipp|lösung|loesung|unterprogramm|code):\s*(.*)$/i.exec(s.trim());if(r){const[,o,l]=r;switch(a=void 0,o.toLowerCase()){case"titel":n.title=l;break;case"auftrag":n.task=l,a="task";break;case"start":n.start=l;break;case"test":n.tests.push(vO(l,t));break;case"datei":{const u=/^([\w.-]+)\s*(?:->|→)\s*(.*)$/.exec(l.trim());if(!u||!n.tests.length)throw new se(`${t}: Übung „${i}“: „datei:“ braucht vorher einen Test und die Form „name.txt -> Zeile | Zeile“.`);const m=n.tests[n.tests.length-1];m.files=[...m.files??[],{name:u[1],lines:u[2].trim()===""?[]:u[2].split(/\s*\|\s*/).map(c=>c.trim())}];break}case"braucht":n.requires.push(...l.split(/\s*,\s*/).filter(Boolean));break;case"tipp":n.hints.push(l),a="hint";break;case"lösung":case"loesung":n.solution=l;break;case"unterprogramm":n.subprograms.push(...l.split(/\s*,\s*/).filter(Boolean));break;case"code":if(l.trim().toLowerCase()!=="java")throw new se(`${t}: Übung „${i}“: „code:“ kennt nur „java“.`);n.code="java";break}}else a&&s.trim()!==""?a==="task"?n.task+=` `+s.trim():n.hints[n.hints.length-1]+=` `+s.trim():s.trim()===""&&a==="task"&&(n.task+=` -`)}if(!n.title)throw new se(`${t}: Übung „${i}“ hat keinen Titel.`);if(!n.task.trim())throw new se(`${t}: Übung „${i}“ hat keinen Auftrag.`);return n.task=n.task.trim(),n}function vO(i,e){const t=[];for(const n of i){const a=n.trim();if(a.startsWith("?"))t.push({question:a.slice(1).trim(),options:[]});else if(/^- \[[ xX]\]/.test(a)){const s=t.at(-1);if(!s)throw new se(`${e}: Antwort ohne Frage im Quiz.`);s.options.push({text:a.slice(5).trim(),correct:a[3].toLowerCase()==="x"})}else if(a.startsWith("= ")){const s=t.at(-1),r=/^=\s+(.+?)\s+->\s+(.+)$/.exec(a);if(!s||!r)throw new se(`${e}: Zuordnung „${a}“ braucht die Form „= links -> rechts“ nach einer Frage.`);(s.pairs??(s.pairs=[])).push({left:r[1].trim(),right:r[2].trim()})}else if(a.startsWith(">")){const s=t.at(-1);s&&(s.explanation=((s.explanation?s.explanation+" ":"")+a.slice(1).trim()).trim())}}for(const n of t){if(n.pairs){const a=new Set(n.pairs.map(s=>s.right));if(n.options.length>0||n.pairs.length<2||a.size!==n.pairs.length)throw new se(`${e}: Zuordnung „${n.question}“ braucht mindestens zwei Paare mit verschiedenen rechten Seiten und keine Antworten.`);continue}if(n.options.length<2||!n.options.some(a=>a.correct))throw new se(`${e}: Quizfrage „${n.question}“ braucht mindestens zwei Antworten, davon eine richtige.`)}return t}function Xc(i,e){const t=[],n=i.split(` +`)}if(!n.title)throw new se(`${t}: Übung „${i}“ hat keinen Titel.`);if(!n.task.trim())throw new se(`${t}: Übung „${i}“ hat keinen Auftrag.`);return n.task=n.task.trim(),n}function zO(i,e){const t=[];for(const n of i){const a=n.trim();if(a.startsWith("?"))t.push({question:a.slice(1).trim(),options:[]});else if(/^- \[[ xX]\]/.test(a)){const s=t.at(-1);if(!s)throw new se(`${e}: Antwort ohne Frage im Quiz.`);s.options.push({text:a.slice(5).trim(),correct:a[3].toLowerCase()==="x"})}else if(a.startsWith("= ")){const s=t.at(-1),r=/^=\s+(.+?)\s+->\s+(.+)$/.exec(a);if(!s||!r)throw new se(`${e}: Zuordnung „${a}“ braucht die Form „= links -> rechts“ nach einer Frage.`);(s.pairs??(s.pairs=[])).push({left:r[1].trim(),right:r[2].trim()})}else if(a.startsWith(">")){const s=t.at(-1);s&&(s.explanation=((s.explanation?s.explanation+" ":"")+a.slice(1).trim()).trim())}}for(const n of t){if(n.pairs){const a=new Set(n.pairs.map(s=>s.right));if(n.options.length>0||n.pairs.length<2||a.size!==n.pairs.length)throw new se(`${e}: Zuordnung „${n.question}“ braucht mindestens zwei Paare mit verschiedenen rechten Seiten und keine Antworten.`);continue}if(n.options.length<2||!n.options.some(a=>a.correct))throw new se(`${e}: Quizfrage „${n.question}“ braucht mindestens zwei Antworten, davon eine richtige.`)}return t}function Kc(i,e){const t=[],n=i.split(` `);let a=[];const s=()=>{const r=a.join(` -`).trim();r&&t.push({kind:"markdown",text:r}),a=[]};for(let r=0;r=n.length)throw new se(`${e}: Block „::: ${o[1]}“ wird nicht mit „:::“ geschlossen.`);const m=o[1].toLowerCase(),c=o[2].trim();switch(m){case"diagramm":if(!c)throw new se(`${e}: „::: diagramm“ braucht einen Dateinamen.`);t.push({kind:"diagram",file:c,caption:l.join(" ").trim()});break;case"übung":case"uebung":if(!c)throw new se(`${e}: „::: übung“ braucht eine Kennung.`);t.push({kind:"exercise",exercise:yO(c,l,e)});break;case"checkliste":t.push({kind:"checklist",items:l.map(d=>d.trim()).filter(d=>d.startsWith("- ")).map(d=>wO(d.slice(2).trim()))});break;case"quiz":t.push({kind:"quiz",questions:vO(l,e)});break;case"bild":if(!c)throw new se(`${e}: „::: bild“ braucht einen Dateinamen.`);t.push({kind:"images",files:c.split(/\s+/),caption:l.join(" ").trim()});break;case"grafik":if(!c)throw new se(`${e}: „::: grafik“ braucht einen Dateinamen.`);t.push({kind:"graphic",file:c,caption:l.join(" ").trim()});break;case"angeberwissen":t.push({kind:"brag",text:l.join(` -`).trim()});break;case"spiel":try{if(rO(c))t.push({kind:"roundGame",game:oO(c,l,e)});else if(c==="prinzessin")t.push({kind:"rescueGame",game:dO(l,e)});else{if(c)throw new se(`${e}: Unbekanntes Spiel „${c}“ (zuhoerer, vertrag, layout, bombe, frage, reihenfolge oder prinzessin).`);t.push({kind:"game",game:Xf(l,e)})}}catch(d){throw new se(d.message)}break;case"lückentext":case"lueckentext":try{t.push({kind:"cloze",cloze:gO(l,e)})}catch(d){throw new se(d.message)}break;case"ludwig":t.push({kind:"brag",text:l.join(` +`).trim();r&&t.push({kind:"markdown",text:r}),a=[]};for(let r=0;r=n.length)throw new se(`${e}: Block „::: ${o[1]}“ wird nicht mit „:::“ geschlossen.`);const m=o[1].toLowerCase(),c=o[2].trim();switch(m){case"diagramm":if(!c)throw new se(`${e}: „::: diagramm“ braucht einen Dateinamen.`);t.push({kind:"diagram",file:c,caption:l.join(" ").trim()});break;case"übung":case"uebung":if(!c)throw new se(`${e}: „::: übung“ braucht eine Kennung.`);t.push({kind:"exercise",exercise:wO(c,l,e)});break;case"checkliste":t.push({kind:"checklist",items:l.map(d=>d.trim()).filter(d=>d.startsWith("- ")).map(d=>IO(d.slice(2).trim()))});break;case"quiz":t.push({kind:"quiz",questions:zO(l,e)});break;case"bild":if(!c)throw new se(`${e}: „::: bild“ braucht einen Dateinamen.`);t.push({kind:"images",files:c.split(/\s+/),caption:l.join(" ").trim()});break;case"grafik":if(!c)throw new se(`${e}: „::: grafik“ braucht einen Dateinamen.`);t.push({kind:"graphic",file:c,caption:l.join(" ").trim()});break;case"angeberwissen":t.push({kind:"brag",text:l.join(` +`).trim()});break;case"spiel":try{if(lO(c))t.push({kind:"roundGame",game:uO(c,l,e)});else if(c==="prinzessin")t.push({kind:"rescueGame",game:gO(l,e)});else{if(c)throw new se(`${e}: Unbekanntes Spiel „${c}“ (zuhoerer, vertrag, layout, bombe, frage, reihenfolge oder prinzessin).`);t.push({kind:"game",game:e3(l,e)})}}catch(d){throw new se(d.message)}break;case"lückentext":case"lueckentext":try{t.push({kind:"cloze",cloze:fO(l,e)})}catch(d){throw new se(d.message)}break;case"ludwig":t.push({kind:"brag",text:l.join(` `).trim(),tip:!0});break;case"caesar":{const d=c?Number(c):3;if(!Number.isInteger(d)||d<0||d>25)throw new se(`${e}: „::: caesar“ braucht einen Schlüssel von 0 bis 25.`);t.push({kind:"caesar",key:d,text:l.join(" ").trim()});break}case"datei":{if(!/^[\w.-]+\.(txt|csv|json)$/u.test(c))throw new se(`${e}: „::: datei“ braucht einen Dateinamen wie brief.txt, liste.csv oder daten.json.`);for(;l.length&&l[0].trim()==="";)l.shift();for(;l.length&&l[l.length-1].trim()==="";)l.pop();t.push({kind:"textFile",name:c,content:l.join(` -`)});break}default:throw new se(`${e}: Unbekannter Block „::: ${o[1]}“.`)}r=u}return s(),t}function wO(i){const e=/^(.*?)\s+→\s+(.+)$/.exec(i);return e?{text:e[1],ref:e[2].trim()}:{text:i}}function zO(i,e){const t=new Map(i.map((n,a)=>[n.title.toLowerCase(),a]));for(const n of i.flatMap(a=>a.blocks))if(n.kind==="checklist"){for(const a of n.items)if(a.ref!==void 0&&(a.step=t.get(a.ref.toLowerCase()),a.step===void 0))throw new se(`${e}: Checkliste verweist auf unbekannten Schritt „${a.ref}“.`)}}function IO(i,e){var c;const{meta:t,body:n}=Yc(i,e),a=e.replace(/^.*\//,"").replace(/\.md$/,""),s=Number((c=/^(\d+)/.exec(a))==null?void 0:c[1]);if(!Number.isFinite(s))throw new se(`${e}: Dateiname muss mit der Nummer beginnen (z. B. 01-…).`);const r=[];let o=[],l;const u=()=>{l&&r.push({title:l.title,blocks:Xc(l.lines.join(` +`)});break}default:throw new se(`${e}: Unbekannter Block „::: ${o[1]}“.`)}r=u}return s(),t}function IO(i){const e=/^(.*?)\s+→\s+(.+)$/.exec(i);return e?{text:e[1],ref:e[2].trim()}:{text:i}}function kO(i,e){const t=new Map(i.map((n,a)=>[n.title.toLowerCase(),a]));for(const n of i.flatMap(a=>a.blocks))if(n.kind==="checklist"){for(const a of n.items)if(a.ref!==void 0&&(a.step=t.get(a.ref.toLowerCase()),a.step===void 0))throw new se(`${e}: Checkliste verweist auf unbekannten Schritt „${a.ref}“.`)}}function SO(i,e){var c;const{meta:t,body:n}=Xc(i,e),a=e.replace(/^.*\//,"").replace(/\.md$/,""),s=Number((c=/^(\d+)/.exec(a))==null?void 0:c[1]);if(!Number.isFinite(s))throw new se(`${e}: Dateiname muss mit der Nummer beginnen (z. B. 01-…).`);const r=[];let o=[],l;const u=()=>{l&&r.push({title:l.title,blocks:Kc(l.lines.join(` `),e)})};for(const d of n.split(` -`)){const h=/^##\s+(.*)$/.exec(d);h?(u(),l={title:h[1].trim(),lines:[]}):l?l.lines.push(d):o.push(d)}if(u(),r.length===0)throw new se(`${e}: Keine Schritte (## Überschrift) gefunden.`);zO(r,e);const m=t.get("titel");if(!m)throw new se(`${e}: „titel:“ fehlt.`);return{id:a,number:s,title:m,section:t.get("bereich")??"",summary:t.get("kurz")??o.join(" ").trim(),steps:r}}function kO(i,e){const{meta:t,body:n}=Yc(i,e),a=t.get("titel");if(!a)throw new se(`${e}: „titel:“ fehlt.`);const s=t.get("nach");return{id:e.replace(/^.*\//,"").replace(/\.md$/,""),title:a,after:s?Number(s):void 0,level:Number(t.get("stufe")??"1")||1,blocks:Xc(n,e)}}const SO=Object.assign({"../../lessons/de/01-was-ist-ein-struktogramm.md":s3,"../../lessons/de/02-der-editor.md":r3,"../../lessons/de/03-speichern-oeffnen-exportieren.md":o3,"../../lessons/de/04-variablen-und-datentypen.md":l3,"../../lessons/de/05-sequenz.md":u3,"../../lessons/de/06-eingabe-und-ausgabe.md":m3,"../../lessons/de/07-simulation-und-schreibtischtest.md":c3,"../../lessons/de/08-verzweigung.md":d3,"../../lessons/de/09-bedingungen-verknuepfen.md":h3,"../../lessons/de/10-fallauswahl.md":g3,"../../lessons/de/11-while-schleife.md":p3,"../../lessons/de/12-do-while-schleife.md":f3,"../../lessons/de/13-for-schleife.md":x3,"../../lessons/de/14-verschachteln.md":b3,"../../lessons/de/15-arrays.md":y3,"../../lessons/de/16-zweidimensionale-arrays.md":v3,"../../lessons/de/17-zeichenketten.md":w3,"../../lessons/de/18-aufruf-und-aussprung.md":z3,"../../lessons/de/19-suchen-und-sortieren.md":I3,"../../lessons/de/20-java.md":k3,"../../lessons/de/21-python-und-javascript.md":S3,"../../lessons/de/22-try-und-catch.md":O3,"../../lessons/de/23-text-einlesen-und-speichern.md":T3,"../../lessons/de/24-zeile-fuer-zeile.md":A3,"../../lessons/de/25-tabellen-als-csv.md":P3,"../../lessons/de/26-json.md":j3,"../../lessons/de/27-formate-im-vergleich.md":C3,"../../lessons/de/28-erstes-fenster.md":_3,"../../lessons/de/29-knopf-im-fenster.md":Z3,"../../lessons/de/30-der-knopf-reagiert.md":M3,"../../lessons/de/31-zahl-verdoppeln.md":D3,"../../lessons/de/32-klickzaehler.md":B3,"../../lessons/de/33-ampel.md":W3,"../../lessons/de/34-notenrechner.md":L3,"../../lessons/de/35-taschenrechner.md":E3,"../../lessons/de/36-zahlenraten.md":N3,"../../lessons/de/37-viele-knoepfe-ein-zuhoerer.md":F3,"../../lessons/de/38-innere-klassen.md":J3,"../../lessons/de/39-zwei-reiter.md":G3,"../../lessons/de/40-model-view-controller.md":R3,"../../lessons/de/begriffe.md":H3,"../../lessons/de/nachschlagen.md":Q3,"../../lessons/en/01-was-ist-ein-struktogramm.md":V3,"../../lessons/en/02-der-editor.md":q3,"../../lessons/en/03-speichern-oeffnen-exportieren.md":U3,"../../lessons/en/04-variablen-und-datentypen.md":$3,"../../lessons/en/05-sequenz.md":Y3,"../../lessons/en/06-eingabe-und-ausgabe.md":X3,"../../lessons/en/07-simulation-und-schreibtischtest.md":K3,"../../lessons/en/08-verzweigung.md":e2,"../../lessons/en/09-bedingungen-verknuepfen.md":t2,"../../lessons/en/10-fallauswahl.md":n2,"../../lessons/en/11-while-schleife.md":a2,"../../lessons/en/12-do-while-schleife.md":i2,"../../lessons/en/13-for-schleife.md":s2,"../../lessons/en/14-verschachteln.md":r2,"../../lessons/en/15-arrays.md":o2,"../../lessons/en/16-zweidimensionale-arrays.md":l2,"../../lessons/en/17-zeichenketten.md":u2,"../../lessons/en/18-aufruf-und-aussprung.md":m2,"../../lessons/en/19-suchen-und-sortieren.md":c2,"../../lessons/en/20-java.md":d2,"../../lessons/en/21-python-und-javascript.md":h2,"../../lessons/en/22-try-und-catch.md":g2,"../../lessons/en/23-text-einlesen-und-speichern.md":p2,"../../lessons/en/24-zeile-fuer-zeile.md":f2,"../../lessons/en/25-tabellen-als-csv.md":x2,"../../lessons/en/26-json.md":b2,"../../lessons/en/27-formate-im-vergleich.md":y2,"../../lessons/en/28-erstes-fenster.md":v2,"../../lessons/en/29-knopf-im-fenster.md":w2,"../../lessons/en/30-der-knopf-reagiert.md":z2,"../../lessons/en/31-zahl-verdoppeln.md":I2,"../../lessons/en/32-klickzaehler.md":k2,"../../lessons/en/33-ampel.md":S2,"../../lessons/en/34-notenrechner.md":O2,"../../lessons/en/35-taschenrechner.md":T2,"../../lessons/en/36-zahlenraten.md":A2,"../../lessons/en/37-viele-knoepfe-ein-zuhoerer.md":P2,"../../lessons/en/38-innere-klassen.md":j2,"../../lessons/en/39-zwei-reiter.md":C2,"../../lessons/en/40-model-view-controller.md":_2,"../../lessons/en/begriffe.md":Z2,"../../lessons/en/nachschlagen.md":M2,"../../lessons/pt/01-was-ist-ein-struktogramm.md":D2,"../../lessons/pt/02-der-editor.md":B2,"../../lessons/pt/03-speichern-oeffnen-exportieren.md":W2,"../../lessons/pt/04-variablen-und-datentypen.md":L2,"../../lessons/pt/05-sequenz.md":E2,"../../lessons/pt/06-eingabe-und-ausgabe.md":N2,"../../lessons/pt/07-simulation-und-schreibtischtest.md":F2,"../../lessons/pt/08-verzweigung.md":J2,"../../lessons/pt/09-bedingungen-verknuepfen.md":G2,"../../lessons/pt/10-fallauswahl.md":R2,"../../lessons/pt/11-while-schleife.md":H2,"../../lessons/pt/12-do-while-schleife.md":Q2,"../../lessons/pt/13-for-schleife.md":V2,"../../lessons/pt/14-verschachteln.md":q2,"../../lessons/pt/15-arrays.md":U2,"../../lessons/pt/16-zweidimensionale-arrays.md":$2,"../../lessons/pt/17-zeichenketten.md":Y2,"../../lessons/pt/18-aufruf-und-aussprung.md":X2,"../../lessons/pt/19-suchen-und-sortieren.md":K2,"../../lessons/pt/20-java.md":ex,"../../lessons/pt/21-python-und-javascript.md":tx,"../../lessons/pt/22-try-und-catch.md":nx,"../../lessons/pt/23-text-einlesen-und-speichern.md":ax,"../../lessons/pt/24-zeile-fuer-zeile.md":ix,"../../lessons/pt/25-tabellen-als-csv.md":sx,"../../lessons/pt/26-json.md":rx,"../../lessons/pt/27-formate-im-vergleich.md":ox,"../../lessons/pt/28-erstes-fenster.md":lx,"../../lessons/pt/29-knopf-im-fenster.md":ux,"../../lessons/pt/30-der-knopf-reagiert.md":mx,"../../lessons/pt/31-zahl-verdoppeln.md":cx,"../../lessons/pt/32-klickzaehler.md":dx,"../../lessons/pt/33-ampel.md":hx,"../../lessons/pt/34-notenrechner.md":gx,"../../lessons/pt/35-taschenrechner.md":px,"../../lessons/pt/36-zahlenraten.md":fx,"../../lessons/pt/37-viele-knoepfe-ein-zuhoerer.md":xx,"../../lessons/pt/38-innere-klassen.md":bx,"../../lessons/pt/39-zwei-reiter.md":yx,"../../lessons/pt/40-model-view-controller.md":vx,"../../lessons/pt/begriffe.md":wx,"../../lessons/pt/nachschlagen.md":zx}),OO=Object.assign({"../../lessons/de/aufgaben/alter-unterprogramm.md":Ix,"../../lessons/de/aufgaben/ballwurf.md":kx,"../../lessons/de/aufgaben/bestenliste.md":Sx,"../../lessons/de/aufgaben/binaerzahl.md":Ox,"../../lessons/de/aufgaben/caesar.md":Tx,"../../lessons/de/aufgaben/collatz.md":Ax,"../../lessons/de/aufgaben/einheitenrechner.md":Px,"../../lessons/de/aufgaben/fibonacci.md":jx,"../../lessons/de/aufgaben/gerade-ungerade.md":Cx,"../../lessons/de/aufgaben/mehrwertsteuer.md":_x,"../../lessons/de/aufgaben/notendurchschnitt.md":Zx,"../../lessons/de/aufgaben/pin-pruefen.md":Mx,"../../lessons/de/aufgaben/schiffe-versenken.md":Dx,"../../lessons/de/aufgaben/speisekarte.md":Bx,"../../lessons/de/aufgaben/summe-bilden.md":Wx,"../../lessons/de/aufgaben/tafeldienst.md":Lx,"../../lessons/de/aufgaben/taschenrechner.md":Ex,"../../lessons/de/aufgaben/verleih-menue.md":Nx,"../../lessons/de/aufgaben/vokabeltrainer.md":Fx,"../../lessons/de/aufgaben/volljaehrig.md":Jx,"../../lessons/de/aufgaben/wuerfel-mvc.md":Gx,"../../lessons/de/aufgaben/zahl-verdoppeln.md":Rx,"../../lessons/en/aufgaben/alter-unterprogramm.md":Hx,"../../lessons/en/aufgaben/ballwurf.md":Qx,"../../lessons/en/aufgaben/bestenliste.md":Vx,"../../lessons/en/aufgaben/binaerzahl.md":qx,"../../lessons/en/aufgaben/caesar.md":Ux,"../../lessons/en/aufgaben/collatz.md":$x,"../../lessons/en/aufgaben/einheitenrechner.md":Yx,"../../lessons/en/aufgaben/fibonacci.md":Xx,"../../lessons/en/aufgaben/gerade-ungerade.md":Kx,"../../lessons/en/aufgaben/mehrwertsteuer.md":eb,"../../lessons/en/aufgaben/notendurchschnitt.md":tb,"../../lessons/en/aufgaben/pin-pruefen.md":nb,"../../lessons/en/aufgaben/schiffe-versenken.md":ab,"../../lessons/en/aufgaben/speisekarte.md":ib,"../../lessons/en/aufgaben/summe-bilden.md":sb,"../../lessons/en/aufgaben/tafeldienst.md":rb,"../../lessons/en/aufgaben/taschenrechner.md":ob,"../../lessons/en/aufgaben/verleih-menue.md":lb,"../../lessons/en/aufgaben/vokabeltrainer.md":ub,"../../lessons/en/aufgaben/volljaehrig.md":mb,"../../lessons/en/aufgaben/wuerfel-mvc.md":cb,"../../lessons/en/aufgaben/zahl-verdoppeln.md":db,"../../lessons/pt/aufgaben/alter-unterprogramm.md":hb,"../../lessons/pt/aufgaben/ballwurf.md":gb,"../../lessons/pt/aufgaben/bestenliste.md":pb,"../../lessons/pt/aufgaben/binaerzahl.md":fb,"../../lessons/pt/aufgaben/caesar.md":xb,"../../lessons/pt/aufgaben/collatz.md":bb,"../../lessons/pt/aufgaben/einheitenrechner.md":yb,"../../lessons/pt/aufgaben/fibonacci.md":vb,"../../lessons/pt/aufgaben/gerade-ungerade.md":wb,"../../lessons/pt/aufgaben/mehrwertsteuer.md":zb,"../../lessons/pt/aufgaben/notendurchschnitt.md":Ib,"../../lessons/pt/aufgaben/pin-pruefen.md":kb,"../../lessons/pt/aufgaben/schiffe-versenken.md":Sb,"../../lessons/pt/aufgaben/speisekarte.md":Ob,"../../lessons/pt/aufgaben/summe-bilden.md":Tb,"../../lessons/pt/aufgaben/tafeldienst.md":Ab,"../../lessons/pt/aufgaben/taschenrechner.md":Pb,"../../lessons/pt/aufgaben/verleih-menue.md":jb,"../../lessons/pt/aufgaben/vokabeltrainer.md":Cb,"../../lessons/pt/aufgaben/volljaehrig.md":_b,"../../lessons/pt/aufgaben/wuerfel-mvc.md":Zb,"../../lessons/pt/aufgaben/zahl-verdoppeln.md":Mb}),TO=Object.assign({"../../lessons/diagramme/aufgabe-alter-haupt-loesung.visustruct":Db,"../../lessons/diagramme/aufgabe-alter-unterprogramm-loesung.visustruct":Bb,"../../lessons/diagramme/aufgabe-ballwurf-loesung.visustruct":Wb,"../../lessons/diagramme/aufgabe-ballwurf-start.visustruct":Lb,"../../lessons/diagramme/aufgabe-bestenliste-loesung.visustruct":Eb,"../../lessons/diagramme/aufgabe-binaer-loesung.visustruct":Nb,"../../lessons/diagramme/aufgabe-caesar-array-loesung.visustruct":Fb,"../../lessons/diagramme/aufgabe-caesar-array-start.visustruct":Jb,"../../lessons/diagramme/aufgabe-caesar-ascii-loesung.visustruct":Gb,"../../lessons/diagramme/aufgabe-caesar-entschluesseln-loesung.visustruct":Rb,"../../lessons/diagramme/aufgabe-collatz-loesung.visustruct":Hb,"../../lessons/diagramme/aufgabe-durchschnitt-loesung.visustruct":Qb,"../../lessons/diagramme/aufgabe-fibonacci-loesung.visustruct":Vb,"../../lessons/diagramme/aufgabe-gerade-loesung.visustruct":qb,"../../lessons/diagramme/aufgabe-mehrwertsteuer-loesung.visustruct":Ub,"../../lessons/diagramme/aufgabe-pin-java-loesung.visustruct":$b,"../../lessons/diagramme/aufgabe-pin-loesung.visustruct":Yb,"../../lessons/diagramme/aufgabe-rechner-loesung.visustruct":Xb,"../../lessons/diagramme/aufgabe-schiffe-loesung.visustruct":Kb,"../../lessons/diagramme/aufgabe-schiffe-start.visustruct":e4,"../../lessons/diagramme/aufgabe-speisekarte-loesung.visustruct":t4,"../../lessons/diagramme/aufgabe-summe-loesung.visustruct":n4,"../../lessons/diagramme/aufgabe-tafeldienst-loesung.visustruct":a4,"../../lessons/diagramme/aufgabe-verdoppeln-loesung.visustruct":i4,"../../lessons/diagramme/aufgabe-verleih-java-loesung.visustruct":s4,"../../lessons/diagramme/aufgabe-verleih-loesung.visustruct":r4,"../../lessons/diagramme/aufgabe-vokabeln-loesung.visustruct":o4,"../../lessons/diagramme/aufgabe-vokabeln-start.visustruct":l4,"../../lessons/diagramme/aufgabe-volljaehrig-loesung.visustruct":u4,"../../lessons/diagramme/dt-buffered.visustruct":m4,"../../lessons/diagramme/dt-csv.visustruct":c4,"../../lessons/diagramme/dt-json.visustruct":d4,"../../lessons/diagramme/dt-lesen.visustruct":h4,"../../lessons/diagramme/en/aufgabe-alter-haupt-loesung.visustruct":g4,"../../lessons/diagramme/en/aufgabe-alter-unterprogramm-loesung.visustruct":p4,"../../lessons/diagramme/en/aufgabe-ballwurf-loesung.visustruct":f4,"../../lessons/diagramme/en/aufgabe-ballwurf-start.visustruct":x4,"../../lessons/diagramme/en/aufgabe-bestenliste-loesung.visustruct":b4,"../../lessons/diagramme/en/aufgabe-binaer-loesung.visustruct":y4,"../../lessons/diagramme/en/aufgabe-caesar-array-loesung.visustruct":v4,"../../lessons/diagramme/en/aufgabe-caesar-array-start.visustruct":w4,"../../lessons/diagramme/en/aufgabe-caesar-ascii-loesung.visustruct":z4,"../../lessons/diagramme/en/aufgabe-caesar-entschluesseln-loesung.visustruct":I4,"../../lessons/diagramme/en/aufgabe-collatz-loesung.visustruct":k4,"../../lessons/diagramme/en/aufgabe-durchschnitt-loesung.visustruct":S4,"../../lessons/diagramme/en/aufgabe-fibonacci-loesung.visustruct":O4,"../../lessons/diagramme/en/aufgabe-gerade-loesung.visustruct":T4,"../../lessons/diagramme/en/aufgabe-mehrwertsteuer-loesung.visustruct":A4,"../../lessons/diagramme/en/aufgabe-pin-java-loesung.visustruct":P4,"../../lessons/diagramme/en/aufgabe-pin-loesung.visustruct":j4,"../../lessons/diagramme/en/aufgabe-rechner-loesung.visustruct":C4,"../../lessons/diagramme/en/aufgabe-schiffe-loesung.visustruct":_4,"../../lessons/diagramme/en/aufgabe-schiffe-start.visustruct":Z4,"../../lessons/diagramme/en/aufgabe-speisekarte-loesung.visustruct":M4,"../../lessons/diagramme/en/aufgabe-summe-loesung.visustruct":D4,"../../lessons/diagramme/en/aufgabe-tafeldienst-loesung.visustruct":B4,"../../lessons/diagramme/en/aufgabe-verdoppeln-loesung.visustruct":W4,"../../lessons/diagramme/en/aufgabe-verleih-java-loesung.visustruct":L4,"../../lessons/diagramme/en/aufgabe-verleih-loesung.visustruct":E4,"../../lessons/diagramme/en/aufgabe-vokabeln-loesung.visustruct":N4,"../../lessons/diagramme/en/aufgabe-vokabeln-start.visustruct":F4,"../../lessons/diagramme/en/aufgabe-volljaehrig-loesung.visustruct":J4,"../../lessons/diagramme/en/dt-buffered.visustruct":G4,"../../lessons/diagramme/en/dt-csv.visustruct":R4,"../../lessons/diagramme/en/dt-json.visustruct":H4,"../../lessons/diagramme/en/dt-lesen.visustruct":Q4,"../../lessons/diagramme/en/kino-einmaleins-loesung.visustruct":V4,"../../lessons/diagramme/en/kino-frei-loesung.visustruct":q4,"../../lessons/diagramme/en/kino-frei-start.visustruct":U4,"../../lessons/diagramme/en/kino-karte-loesung.visustruct":$4,"../../lessons/diagramme/en/kino-karte-start.visustruct":Y4,"../../lessons/diagramme/en/kino-saalplan.visustruct":X4,"../../lessons/diagramme/en/kino-verkaufen.visustruct":K4,"../../lessons/diagramme/en/l04-java-fehler-loesung.visustruct":ey,"../../lessons/diagramme/en/l04-java-fehler-start.visustruct":ty,"../../lessons/diagramme/en/l04-java-steckbrief-loesung.visustruct":ny,"../../lessons/diagramme/en/l04-rechnen.visustruct":ay,"../../lessons/diagramme/en/l04-reihenfolge-loesung.visustruct":iy,"../../lessons/diagramme/en/l04-reihenfolge-start.visustruct":sy,"../../lessons/diagramme/en/l04-tauschen-loesung.visustruct":ry,"../../lessons/diagramme/en/l04-tauschen-start.visustruct":oy,"../../lessons/diagramme/en/l04-tauschen.visustruct":ly,"../../lessons/diagramme/en/l05-datentypen.visustruct":uy,"../../lessons/diagramme/en/l05-division.visustruct":my,"../../lessons/diagramme/en/l05-einkauf-loesung.visustruct":cy,"../../lessons/diagramme/en/l05-java-fehler-loesung.visustruct":dy,"../../lessons/diagramme/en/l05-java-fehler-start.visustruct":hy,"../../lessons/diagramme/en/l05-java-kino-loesung.visustruct":gy,"../../lessons/diagramme/en/l05-rechteck-loesung.visustruct":py,"../../lessons/diagramme/en/l05-sekunden-loesung.visustruct":fy,"../../lessons/diagramme/en/l05-sekunden-start.visustruct":xy,"../../lessons/diagramme/en/l06-begruessung-loesung.visustruct":by,"../../lessons/diagramme/en/l06-eva.visustruct":yy,"../../lessons/diagramme/en/l06-java-fehler-loesung.visustruct":vy,"../../lessons/diagramme/en/l06-java-fehler-start.visustruct":wy,"../../lessons/diagramme/en/l06-java-tage-loesung.visustruct":zy,"../../lessons/diagramme/en/l06-mittelwert-loesung.visustruct":Iy,"../../lessons/diagramme/en/l06-rechner-loesung.visustruct":ky,"../../lessons/diagramme/en/l07-alter-pruefen.visustruct":Sy,"../../lessons/diagramme/en/l07-betrag-loesung.visustruct":Oy,"../../lessons/diagramme/en/l07-gerade-loesung.visustruct":Ty,"../../lessons/diagramme/en/l07-java-fehler-loesung.visustruct":Ay,"../../lessons/diagramme/en/l07-java-fehler-start.visustruct":Py,"../../lessons/diagramme/en/l07-java-pizza-loesung.visustruct":jy,"../../lessons/diagramme/en/l07-java-pizza-start.visustruct":Cy,"../../lessons/diagramme/en/l07-maximum-loesung.visustruct":_y,"../../lessons/diagramme/en/l07-rabatt.visustruct":Zy,"../../lessons/diagramme/en/l08-gueltig-loesung.visustruct":My,"../../lessons/diagramme/en/l08-java-bestanden-loesung.visustruct":Dy,"../../lessons/diagramme/en/l08-java-fehler-loesung.visustruct":By,"../../lessons/diagramme/en/l08-java-fehler-start.visustruct":Wy,"../../lessons/diagramme/en/l08-jugendticket.visustruct":Ly,"../../lessons/diagramme/en/l08-note.visustruct":Ey,"../../lessons/diagramme/en/l08-schaltjahr-loesung.visustruct":Ny,"../../lessons/diagramme/en/l08-wochenende-loesung.visustruct":Fy,"../../lessons/diagramme/en/l09-ampel.visustruct":Jy,"../../lessons/diagramme/en/l09-automat.visustruct":Gy,"../../lessons/diagramme/en/l09-java-fehler-loesung.visustruct":Ry,"../../lessons/diagramme/en/l09-java-fehler-start.visustruct":Hy,"../../lessons/diagramme/en/l09-java-schule-loesung.visustruct":Qy,"../../lessons/diagramme/en/l09-note-loesung.visustruct":Vy,"../../lessons/diagramme/en/l09-rechner-loesung.visustruct":qy,"../../lessons/diagramme/en/l09-verschachtelt.visustruct":Uy,"../../lessons/diagramme/en/l1-grundbausteine.visustruct":$y,"../../lessons/diagramme/en/l1-sequenz.visustruct":Yy,"../../lessons/diagramme/en/l1-tee.visustruct":Xy,"../../lessons/diagramme/en/l1-verzweigung.visustruct":Ky,"../../lessons/diagramme/en/l1-wiederholung.visustruct":ev,"../../lessons/diagramme/en/l10-bis-n-loesung.visustruct":tv,"../../lessons/diagramme/en/l10-countdown.visustruct":nv,"../../lessons/diagramme/en/l10-endlos.visustruct":av,"../../lessons/diagramme/en/l10-fakultaet.visustruct":iv,"../../lessons/diagramme/en/l10-java-fehler-loesung.visustruct":sv,"../../lessons/diagramme/en/l10-java-fehler-start.visustruct":rv,"../../lessons/diagramme/en/l10-java-wuerfel-loesung.visustruct":ov,"../../lessons/diagramme/en/l10-verdoppeln-loesung.visustruct":lv,"../../lessons/diagramme/en/l11-eingabe-pruefen.visustruct":uv,"../../lessons/diagramme/en/l11-einmal.visustruct":mv,"../../lessons/diagramme/en/l11-java-fehler-loesung.visustruct":cv,"../../lessons/diagramme/en/l11-java-fehler-start.visustruct":dv,"../../lessons/diagramme/en/l11-java-gerade-loesung.visustruct":hv,"../../lessons/diagramme/en/l11-note-loesung.visustruct":gv,"../../lessons/diagramme/en/l11-summe-loesung.visustruct":pv,"../../lessons/diagramme/en/l12-countdown-loesung.visustruct":fv,"../../lessons/diagramme/en/l12-einmaleins-loesung.visustruct":xv,"../../lessons/diagramme/en/l12-eins-bis-fuenf.visustruct":bv,"../../lessons/diagramme/en/l12-java-fehler-loesung.visustruct":yv,"../../lessons/diagramme/en/l12-java-fehler-start.visustruct":vv,"../../lessons/diagramme/en/l12-java-verdoppeln-loesung.visustruct":wv,"../../lessons/diagramme/en/l12-summe.visustruct":zv,"../../lessons/diagramme/en/l13-dreieck.visustruct":Iv,"../../lessons/diagramme/en/l13-gerade-eingaben-loesung.visustruct":kv,"../../lessons/diagramme/en/l13-gerade-zaehlen.visustruct":Sv,"../../lessons/diagramme/en/l13-java-fehler-loesung.visustruct":Ov,"../../lessons/diagramme/en/l13-java-fehler-start.visustruct":Tv,"../../lessons/diagramme/en/l13-java-quadrate-loesung.visustruct":Av,"../../lessons/diagramme/en/l13-rechteck-loesung.visustruct":Pv,"../../lessons/diagramme/en/l14-array-durchlaufen.visustruct":jv,"../../lessons/diagramme/en/l14-erster-letzter-loesung.visustruct":Cv,"../../lessons/diagramme/en/l14-java-fehler-loesung.visustruct":_v,"../../lessons/diagramme/en/l14-java-fehler-start.visustruct":Zv,"../../lessons/diagramme/en/l14-java-treppe-loesung.visustruct":Mv,"../../lessons/diagramme/en/l14-namen-eingeben.visustruct":Dv,"../../lessons/diagramme/en/l14-rueckwaerts-loesung.visustruct":Bv,"../../lessons/diagramme/en/l14-summe-max-loesung.visustruct":Wv,"../../lessons/diagramme/en/l14-summe-maximum.visustruct":Lv,"../../lessons/diagramme/en/l15-bis-null-loesung.visustruct":Ev,"../../lessons/diagramme/en/l15-endlos-aussprung.visustruct":Nv,"../../lessons/diagramme/en/l15-flaeche-loesung.visustruct":Fv,"../../lessons/diagramme/en/l15-flaeche-unterprogramm-loesung.visustruct":Jv,"../../lessons/diagramme/en/l15-hauptprogramm.visustruct":Gv,"../../lessons/diagramme/en/l15-java-fehler-loesung.visustruct":Rv,"../../lessons/diagramme/en/l15-java-fehler-start.visustruct":Hv,"../../lessons/diagramme/en/l15-java-noten-loesung.visustruct":Qv,"../../lessons/diagramme/en/l15-quadrat-haupt.visustruct":Vv,"../../lessons/diagramme/en/l15-quadrat.visustruct":qv,"../../lessons/diagramme/en/l15-titel-loesung.visustruct":Uv,"../../lessons/diagramme/en/l15-unterprogramm.visustruct":$v,"../../lessons/diagramme/en/l15-zeige-summe-haupt.visustruct":Yv,"../../lessons/diagramme/en/l15-zeige-summe.visustruct":Xv,"../../lessons/diagramme/en/l16-countdown-loesung.visustruct":Kv,"../../lessons/diagramme/en/l16-countdown-start.visustruct":e9,"../../lessons/diagramme/en/l16-java-fehler-loesung.visustruct":t9,"../../lessons/diagramme/en/l16-java-fehler-start.visustruct":n9,"../../lessons/diagramme/en/l16-java-punkte-loesung.visustruct":a9,"../../lessons/diagramme/en/l16-schreibtisch.visustruct":i9,"../../lessons/diagramme/en/l16-summe-loesung.visustruct":s9,"../../lessons/diagramme/en/l16-summe-start.visustruct":r9,"../../lessons/diagramme/en/l17-beispiel.visustruct":o9,"../../lessons/diagramme/en/l17-fakultaet-loesung.visustruct":l9,"../../lessons/diagramme/en/l17-java-brief-loesung.visustruct":u9,"../../lessons/diagramme/en/l17-java-brief-start.visustruct":m9,"../../lessons/diagramme/en/l17-java-fehler-loesung.visustruct":c9,"../../lessons/diagramme/en/l17-java-fehler-start.visustruct":d9,"../../lessons/diagramme/en/l17-java-passwort-loesung.visustruct":h9,"../../lessons/diagramme/en/l17-ticket-loesung.visustruct":g9,"../../lessons/diagramme/en/l18-beispiel.visustruct":p9,"../../lessons/diagramme/en/l18-java-fehler-loesung.visustruct":f9,"../../lessons/diagramme/en/l18-java-fehler-start.visustruct":x9,"../../lessons/diagramme/en/l18-java-kasse-loesung.visustruct":b9,"../../lessons/diagramme/en/l18-js-loesung.visustruct":y9,"../../lessons/diagramme/en/l18-python-loesung.visustruct":v9,"../../lessons/diagramme/en/l19-java-fehler-loesung.visustruct":w9,"../../lessons/diagramme/en/l19-java-fehler-start.visustruct":z9,"../../lessons/diagramme/en/l19-java-zaehlen-loesung.visustruct":I9,"../../lessons/diagramme/en/l2-ausgabe.visustruct":k9,"../../lessons/diagramme/en/l2-hallo-loesung.visustruct":S9,"../../lessons/diagramme/en/l2-zwei-zeilen-loesung.visustruct":O9,"../../lessons/diagramme/en/l23-java-ergaenzen-loesung.visustruct":T9,"../../lessons/diagramme/en/l23-java-ergaenzen-start.visustruct":A9,"../../lessons/diagramme/en/l23-java-nummern-loesung.visustruct":P9,"../../lessons/diagramme/en/l23-java-nummern-start.visustruct":j9,"../../lessons/diagramme/en/l24-java-fuchs-loesung.visustruct":C9,"../../lessons/diagramme/en/l24-java-fuchs-start.visustruct":_9,"../../lessons/diagramme/en/l24-java-laengster-loesung.visustruct":Z9,"../../lessons/diagramme/en/l24-java-laengster-start.visustruct":M9,"../../lessons/diagramme/en/l25-java-beste-loesung.visustruct":D9,"../../lessons/diagramme/en/l25-java-beste-start.visustruct":B9,"../../lessons/diagramme/en/l25-java-schnitt-loesung.visustruct":W9,"../../lessons/diagramme/en/l25-java-schnitt-start.visustruct":L9,"../../lessons/diagramme/en/l26-java-namen-loesung.visustruct":E9,"../../lessons/diagramme/en/l26-java-namen-start.visustruct":N9,"../../lessons/diagramme/en/l26-java-schreiben-loesung.visustruct":F9,"../../lessons/diagramme/en/l26-java-schreiben-start.visustruct":J9,"../../lessons/diagramme/en/l27-java-json-loesung.visustruct":G9,"../../lessons/diagramme/en/l27-java-json-start.visustruct":R9,"../../lessons/diagramme/en/l27-java-saetze-loesung.visustruct":H9,"../../lessons/diagramme/en/l27-java-saetze-start.visustruct":Q9,"../../lessons/diagramme/en/sim-kino-loesung.visustruct":V9,"../../lessons/diagramme/en/sim-kino-start.visustruct":q9,"../../lessons/diagramme/en/sim-tausch-loesung.visustruct":U9,"../../lessons/diagramme/en/sim-tausch-start.visustruct":$9,"../../lessons/diagramme/en/sim-tausch.visustruct":Y9,"../../lessons/diagramme/en/ss-absteigend-loesung.visustruct":X9,"../../lessons/diagramme/en/ss-absteigend-start.visustruct":K9,"../../lessons/diagramme/en/ss-binaere-suche.visustruct":e5,"../../lessons/diagramme/en/ss-bubblesort.visustruct":t5,"../../lessons/diagramme/en/ss-karte-suchen-loesung.visustruct":n5,"../../lessons/diagramme/en/ss-lineare-suche.visustruct":a5,"../../lessons/diagramme/en/uebergabe-bonus-loesung.visustruct":i5,"../../lessons/diagramme/en/uebergabe-bonus-start.visustruct":s5,"../../lessons/diagramme/en/uebergabe-bonus-unterprogramm-loesung.visustruct":r5,"../../lessons/diagramme/en/uebergabe-haupt.visustruct":o5,"../../lessons/diagramme/en/uebergabe-leeren.visustruct":l5,"../../lessons/diagramme/en/uebergabe-verdopple.visustruct":u5,"../../lessons/diagramme/en/zk-initialen-loesung.visustruct":m5,"../../lessons/diagramme/en/zk-mehr.visustruct":c5,"../../lessons/diagramme/en/zk-rueckwaerts-loesung.visustruct":d5,"../../lessons/diagramme/en/zk-split.visustruct":h5,"../../lessons/diagramme/en/zk-woerter-loesung.visustruct":g5,"../../lessons/diagramme/en/zk-zaehlen.visustruct":p5,"../../lessons/diagramme/en/zk-zeichen.visustruct":f5,"../../lessons/diagramme/kino-einmaleins-loesung.visustruct":x5,"../../lessons/diagramme/kino-frei-loesung.visustruct":b5,"../../lessons/diagramme/kino-frei-start.visustruct":y5,"../../lessons/diagramme/kino-karte-loesung.visustruct":v5,"../../lessons/diagramme/kino-karte-start.visustruct":w5,"../../lessons/diagramme/kino-saalplan.visustruct":z5,"../../lessons/diagramme/kino-verkaufen.visustruct":I5,"../../lessons/diagramme/l04-java-fehler-loesung.visustruct":k5,"../../lessons/diagramme/l04-java-fehler-start.visustruct":S5,"../../lessons/diagramme/l04-java-steckbrief-loesung.visustruct":O5,"../../lessons/diagramme/l04-rechnen.visustruct":T5,"../../lessons/diagramme/l04-reihenfolge-loesung.visustruct":A5,"../../lessons/diagramme/l04-reihenfolge-start.visustruct":P5,"../../lessons/diagramme/l04-tauschen-loesung.visustruct":j5,"../../lessons/diagramme/l04-tauschen-start.visustruct":C5,"../../lessons/diagramme/l04-tauschen.visustruct":_5,"../../lessons/diagramme/l05-datentypen.visustruct":Z5,"../../lessons/diagramme/l05-division.visustruct":M5,"../../lessons/diagramme/l05-einkauf-loesung.visustruct":D5,"../../lessons/diagramme/l05-java-fehler-loesung.visustruct":B5,"../../lessons/diagramme/l05-java-fehler-start.visustruct":W5,"../../lessons/diagramme/l05-java-kino-loesung.visustruct":L5,"../../lessons/diagramme/l05-rechteck-loesung.visustruct":E5,"../../lessons/diagramme/l05-sekunden-loesung.visustruct":N5,"../../lessons/diagramme/l05-sekunden-start.visustruct":F5,"../../lessons/diagramme/l06-begruessung-loesung.visustruct":J5,"../../lessons/diagramme/l06-eva.visustruct":G5,"../../lessons/diagramme/l06-java-fehler-loesung.visustruct":R5,"../../lessons/diagramme/l06-java-fehler-start.visustruct":H5,"../../lessons/diagramme/l06-java-tage-loesung.visustruct":Q5,"../../lessons/diagramme/l06-mittelwert-loesung.visustruct":V5,"../../lessons/diagramme/l06-rechner-loesung.visustruct":q5,"../../lessons/diagramme/l07-alter-pruefen.visustruct":U5,"../../lessons/diagramme/l07-betrag-loesung.visustruct":$5,"../../lessons/diagramme/l07-gerade-loesung.visustruct":Y5,"../../lessons/diagramme/l07-java-fehler-loesung.visustruct":X5,"../../lessons/diagramme/l07-java-fehler-start.visustruct":K5,"../../lessons/diagramme/l07-java-pizza-loesung.visustruct":ew,"../../lessons/diagramme/l07-java-pizza-start.visustruct":tw,"../../lessons/diagramme/l07-maximum-loesung.visustruct":nw,"../../lessons/diagramme/l07-rabatt.visustruct":aw,"../../lessons/diagramme/l08-gueltig-loesung.visustruct":iw,"../../lessons/diagramme/l08-java-bestanden-loesung.visustruct":sw,"../../lessons/diagramme/l08-java-fehler-loesung.visustruct":rw,"../../lessons/diagramme/l08-java-fehler-start.visustruct":ow,"../../lessons/diagramme/l08-jugendticket.visustruct":lw,"../../lessons/diagramme/l08-note.visustruct":uw,"../../lessons/diagramme/l08-schaltjahr-loesung.visustruct":mw,"../../lessons/diagramme/l08-wochenende-loesung.visustruct":cw,"../../lessons/diagramme/l09-ampel.visustruct":dw,"../../lessons/diagramme/l09-automat.visustruct":hw,"../../lessons/diagramme/l09-java-fehler-loesung.visustruct":gw,"../../lessons/diagramme/l09-java-fehler-start.visustruct":pw,"../../lessons/diagramme/l09-java-schule-loesung.visustruct":fw,"../../lessons/diagramme/l09-note-loesung.visustruct":xw,"../../lessons/diagramme/l09-rechner-loesung.visustruct":bw,"../../lessons/diagramme/l09-verschachtelt.visustruct":yw,"../../lessons/diagramme/l1-grundbausteine.visustruct":vw,"../../lessons/diagramme/l1-sequenz.visustruct":ww,"../../lessons/diagramme/l1-tee.visustruct":zw,"../../lessons/diagramme/l1-verzweigung.visustruct":Iw,"../../lessons/diagramme/l1-wiederholung.visustruct":kw,"../../lessons/diagramme/l10-bis-n-loesung.visustruct":Sw,"../../lessons/diagramme/l10-countdown.visustruct":Ow,"../../lessons/diagramme/l10-endlos.visustruct":Tw,"../../lessons/diagramme/l10-fakultaet.visustruct":Aw,"../../lessons/diagramme/l10-java-fehler-loesung.visustruct":Pw,"../../lessons/diagramme/l10-java-fehler-start.visustruct":jw,"../../lessons/diagramme/l10-java-wuerfel-loesung.visustruct":Cw,"../../lessons/diagramme/l10-verdoppeln-loesung.visustruct":_w,"../../lessons/diagramme/l11-eingabe-pruefen.visustruct":Zw,"../../lessons/diagramme/l11-einmal.visustruct":Mw,"../../lessons/diagramme/l11-java-fehler-loesung.visustruct":Dw,"../../lessons/diagramme/l11-java-fehler-start.visustruct":Bw,"../../lessons/diagramme/l11-java-gerade-loesung.visustruct":Ww,"../../lessons/diagramme/l11-note-loesung.visustruct":Lw,"../../lessons/diagramme/l11-summe-loesung.visustruct":Ew,"../../lessons/diagramme/l12-countdown-loesung.visustruct":Nw,"../../lessons/diagramme/l12-einmaleins-loesung.visustruct":Fw,"../../lessons/diagramme/l12-eins-bis-fuenf.visustruct":Jw,"../../lessons/diagramme/l12-java-fehler-loesung.visustruct":Gw,"../../lessons/diagramme/l12-java-fehler-start.visustruct":Rw,"../../lessons/diagramme/l12-java-verdoppeln-loesung.visustruct":Hw,"../../lessons/diagramme/l12-summe.visustruct":Qw,"../../lessons/diagramme/l13-dreieck.visustruct":Vw,"../../lessons/diagramme/l13-gerade-eingaben-loesung.visustruct":qw,"../../lessons/diagramme/l13-gerade-zaehlen.visustruct":Uw,"../../lessons/diagramme/l13-java-fehler-loesung.visustruct":$w,"../../lessons/diagramme/l13-java-fehler-start.visustruct":Yw,"../../lessons/diagramme/l13-java-quadrate-loesung.visustruct":Xw,"../../lessons/diagramme/l13-rechteck-loesung.visustruct":Kw,"../../lessons/diagramme/l14-array-durchlaufen.visustruct":ez,"../../lessons/diagramme/l14-erster-letzter-loesung.visustruct":tz,"../../lessons/diagramme/l14-java-fehler-loesung.visustruct":nz,"../../lessons/diagramme/l14-java-fehler-start.visustruct":az,"../../lessons/diagramme/l14-java-treppe-loesung.visustruct":iz,"../../lessons/diagramme/l14-namen-eingeben.visustruct":sz,"../../lessons/diagramme/l14-rueckwaerts-loesung.visustruct":rz,"../../lessons/diagramme/l14-summe-max-loesung.visustruct":oz,"../../lessons/diagramme/l14-summe-maximum.visustruct":lz,"../../lessons/diagramme/l15-bis-null-loesung.visustruct":uz,"../../lessons/diagramme/l15-endlos-aussprung.visustruct":mz,"../../lessons/diagramme/l15-flaeche-loesung.visustruct":cz,"../../lessons/diagramme/l15-flaeche-unterprogramm-loesung.visustruct":dz,"../../lessons/diagramme/l15-hauptprogramm.visustruct":hz,"../../lessons/diagramme/l15-java-fehler-loesung.visustruct":gz,"../../lessons/diagramme/l15-java-fehler-start.visustruct":pz,"../../lessons/diagramme/l15-java-noten-loesung.visustruct":fz,"../../lessons/diagramme/l15-quadrat-haupt.visustruct":xz,"../../lessons/diagramme/l15-quadrat.visustruct":bz,"../../lessons/diagramme/l15-titel-loesung.visustruct":yz,"../../lessons/diagramme/l15-unterprogramm.visustruct":vz,"../../lessons/diagramme/l15-zeige-summe-haupt.visustruct":wz,"../../lessons/diagramme/l15-zeige-summe.visustruct":zz,"../../lessons/diagramme/l16-countdown-loesung.visustruct":Iz,"../../lessons/diagramme/l16-countdown-start.visustruct":kz,"../../lessons/diagramme/l16-java-fehler-loesung.visustruct":Sz,"../../lessons/diagramme/l16-java-fehler-start.visustruct":Oz,"../../lessons/diagramme/l16-java-punkte-loesung.visustruct":Tz,"../../lessons/diagramme/l16-schreibtisch.visustruct":Az,"../../lessons/diagramme/l16-summe-loesung.visustruct":Pz,"../../lessons/diagramme/l16-summe-start.visustruct":jz,"../../lessons/diagramme/l17-beispiel.visustruct":Cz,"../../lessons/diagramme/l17-fakultaet-loesung.visustruct":_z,"../../lessons/diagramme/l17-java-brief-loesung.visustruct":Zz,"../../lessons/diagramme/l17-java-brief-start.visustruct":Mz,"../../lessons/diagramme/l17-java-fehler-loesung.visustruct":Dz,"../../lessons/diagramme/l17-java-fehler-start.visustruct":Bz,"../../lessons/diagramme/l17-java-passwort-loesung.visustruct":Wz,"../../lessons/diagramme/l17-ticket-loesung.visustruct":Lz,"../../lessons/diagramme/l18-beispiel.visustruct":Ez,"../../lessons/diagramme/l18-java-fehler-loesung.visustruct":Nz,"../../lessons/diagramme/l18-java-fehler-start.visustruct":Fz,"../../lessons/diagramme/l18-java-kasse-loesung.visustruct":Jz,"../../lessons/diagramme/l18-js-loesung.visustruct":Gz,"../../lessons/diagramme/l18-python-loesung.visustruct":Rz,"../../lessons/diagramme/l19-java-fehler-loesung.visustruct":Hz,"../../lessons/diagramme/l19-java-fehler-start.visustruct":Qz,"../../lessons/diagramme/l19-java-zaehlen-loesung.visustruct":Vz,"../../lessons/diagramme/l2-ausgabe.visustruct":qz,"../../lessons/diagramme/l2-hallo-loesung.visustruct":Uz,"../../lessons/diagramme/l2-zwei-zeilen-loesung.visustruct":$z,"../../lessons/diagramme/l20-countdown-loesung.visustruct":Yz,"../../lessons/diagramme/l23-java-ergaenzen-loesung.visustruct":Xz,"../../lessons/diagramme/l23-java-ergaenzen-start.visustruct":Kz,"../../lessons/diagramme/l23-java-nummern-loesung.visustruct":e6,"../../lessons/diagramme/l23-java-nummern-start.visustruct":t6,"../../lessons/diagramme/l24-java-fuchs-loesung.visustruct":n6,"../../lessons/diagramme/l24-java-fuchs-start.visustruct":a6,"../../lessons/diagramme/l24-java-laengster-loesung.visustruct":i6,"../../lessons/diagramme/l24-java-laengster-start.visustruct":s6,"../../lessons/diagramme/l25-java-beste-loesung.visustruct":r6,"../../lessons/diagramme/l25-java-beste-start.visustruct":o6,"../../lessons/diagramme/l25-java-schnitt-loesung.visustruct":l6,"../../lessons/diagramme/l25-java-schnitt-start.visustruct":u6,"../../lessons/diagramme/l26-java-namen-loesung.visustruct":m6,"../../lessons/diagramme/l26-java-namen-start.visustruct":c6,"../../lessons/diagramme/l26-java-schreiben-loesung.visustruct":d6,"../../lessons/diagramme/l26-java-schreiben-start.visustruct":h6,"../../lessons/diagramme/l27-java-json-loesung.visustruct":g6,"../../lessons/diagramme/l27-java-json-start.visustruct":p6,"../../lessons/diagramme/l27-java-saetze-loesung.visustruct":f6,"../../lessons/diagramme/l27-java-saetze-start.visustruct":x6,"../../lessons/diagramme/pt/aufgabe-alter-haupt-loesung.visustruct":b6,"../../lessons/diagramme/pt/aufgabe-alter-unterprogramm-loesung.visustruct":y6,"../../lessons/diagramme/pt/aufgabe-ballwurf-loesung.visustruct":v6,"../../lessons/diagramme/pt/aufgabe-ballwurf-start.visustruct":w6,"../../lessons/diagramme/pt/aufgabe-bestenliste-loesung.visustruct":z6,"../../lessons/diagramme/pt/aufgabe-binaer-loesung.visustruct":I6,"../../lessons/diagramme/pt/aufgabe-caesar-array-loesung.visustruct":k6,"../../lessons/diagramme/pt/aufgabe-caesar-array-start.visustruct":S6,"../../lessons/diagramme/pt/aufgabe-caesar-ascii-loesung.visustruct":O6,"../../lessons/diagramme/pt/aufgabe-caesar-entschluesseln-loesung.visustruct":T6,"../../lessons/diagramme/pt/aufgabe-collatz-loesung.visustruct":A6,"../../lessons/diagramme/pt/aufgabe-durchschnitt-loesung.visustruct":P6,"../../lessons/diagramme/pt/aufgabe-fibonacci-loesung.visustruct":j6,"../../lessons/diagramme/pt/aufgabe-gerade-loesung.visustruct":C6,"../../lessons/diagramme/pt/aufgabe-mehrwertsteuer-loesung.visustruct":_6,"../../lessons/diagramme/pt/aufgabe-pin-java-loesung.visustruct":Z6,"../../lessons/diagramme/pt/aufgabe-pin-loesung.visustruct":M6,"../../lessons/diagramme/pt/aufgabe-rechner-loesung.visustruct":D6,"../../lessons/diagramme/pt/aufgabe-schiffe-loesung.visustruct":B6,"../../lessons/diagramme/pt/aufgabe-schiffe-start.visustruct":W6,"../../lessons/diagramme/pt/aufgabe-speisekarte-loesung.visustruct":L6,"../../lessons/diagramme/pt/aufgabe-summe-loesung.visustruct":E6,"../../lessons/diagramme/pt/aufgabe-tafeldienst-loesung.visustruct":N6,"../../lessons/diagramme/pt/aufgabe-verdoppeln-loesung.visustruct":F6,"../../lessons/diagramme/pt/aufgabe-verleih-java-loesung.visustruct":J6,"../../lessons/diagramme/pt/aufgabe-verleih-loesung.visustruct":G6,"../../lessons/diagramme/pt/aufgabe-vokabeln-loesung.visustruct":R6,"../../lessons/diagramme/pt/aufgabe-vokabeln-start.visustruct":H6,"../../lessons/diagramme/pt/aufgabe-volljaehrig-loesung.visustruct":Q6,"../../lessons/diagramme/pt/dt-buffered.visustruct":V6,"../../lessons/diagramme/pt/dt-csv.visustruct":q6,"../../lessons/diagramme/pt/dt-json.visustruct":U6,"../../lessons/diagramme/pt/dt-lesen.visustruct":$6,"../../lessons/diagramme/pt/kino-einmaleins-loesung.visustruct":Y6,"../../lessons/diagramme/pt/kino-frei-loesung.visustruct":X6,"../../lessons/diagramme/pt/kino-frei-start.visustruct":K6,"../../lessons/diagramme/pt/kino-karte-loesung.visustruct":e7,"../../lessons/diagramme/pt/kino-karte-start.visustruct":t7,"../../lessons/diagramme/pt/kino-saalplan.visustruct":n7,"../../lessons/diagramme/pt/kino-verkaufen.visustruct":a7,"../../lessons/diagramme/pt/l04-java-fehler-loesung.visustruct":i7,"../../lessons/diagramme/pt/l04-java-fehler-start.visustruct":s7,"../../lessons/diagramme/pt/l04-java-steckbrief-loesung.visustruct":r7,"../../lessons/diagramme/pt/l04-rechnen.visustruct":o7,"../../lessons/diagramme/pt/l04-reihenfolge-loesung.visustruct":l7,"../../lessons/diagramme/pt/l04-reihenfolge-start.visustruct":u7,"../../lessons/diagramme/pt/l04-tauschen-loesung.visustruct":m7,"../../lessons/diagramme/pt/l04-tauschen-start.visustruct":c7,"../../lessons/diagramme/pt/l04-tauschen.visustruct":d7,"../../lessons/diagramme/pt/l05-datentypen.visustruct":h7,"../../lessons/diagramme/pt/l05-division.visustruct":g7,"../../lessons/diagramme/pt/l05-einkauf-loesung.visustruct":p7,"../../lessons/diagramme/pt/l05-java-fehler-loesung.visustruct":f7,"../../lessons/diagramme/pt/l05-java-fehler-start.visustruct":x7,"../../lessons/diagramme/pt/l05-java-kino-loesung.visustruct":b7,"../../lessons/diagramme/pt/l05-rechteck-loesung.visustruct":y7,"../../lessons/diagramme/pt/l05-sekunden-loesung.visustruct":v7,"../../lessons/diagramme/pt/l05-sekunden-start.visustruct":w7,"../../lessons/diagramme/pt/l06-begruessung-loesung.visustruct":z7,"../../lessons/diagramme/pt/l06-eva.visustruct":I7,"../../lessons/diagramme/pt/l06-java-fehler-loesung.visustruct":k7,"../../lessons/diagramme/pt/l06-java-fehler-start.visustruct":S7,"../../lessons/diagramme/pt/l06-java-tage-loesung.visustruct":O7,"../../lessons/diagramme/pt/l06-mittelwert-loesung.visustruct":T7,"../../lessons/diagramme/pt/l06-rechner-loesung.visustruct":A7,"../../lessons/diagramme/pt/l07-alter-pruefen.visustruct":P7,"../../lessons/diagramme/pt/l07-betrag-loesung.visustruct":j7,"../../lessons/diagramme/pt/l07-gerade-loesung.visustruct":C7,"../../lessons/diagramme/pt/l07-java-fehler-loesung.visustruct":_7,"../../lessons/diagramme/pt/l07-java-fehler-start.visustruct":Z7,"../../lessons/diagramme/pt/l07-java-pizza-loesung.visustruct":M7,"../../lessons/diagramme/pt/l07-java-pizza-start.visustruct":D7,"../../lessons/diagramme/pt/l07-maximum-loesung.visustruct":B7,"../../lessons/diagramme/pt/l07-rabatt.visustruct":W7,"../../lessons/diagramme/pt/l08-gueltig-loesung.visustruct":L7,"../../lessons/diagramme/pt/l08-java-bestanden-loesung.visustruct":E7,"../../lessons/diagramme/pt/l08-java-fehler-loesung.visustruct":N7,"../../lessons/diagramme/pt/l08-java-fehler-start.visustruct":F7,"../../lessons/diagramme/pt/l08-jugendticket.visustruct":J7,"../../lessons/diagramme/pt/l08-note.visustruct":G7,"../../lessons/diagramme/pt/l08-schaltjahr-loesung.visustruct":R7,"../../lessons/diagramme/pt/l08-wochenende-loesung.visustruct":H7,"../../lessons/diagramme/pt/l09-ampel.visustruct":Q7,"../../lessons/diagramme/pt/l09-automat.visustruct":V7,"../../lessons/diagramme/pt/l09-java-fehler-loesung.visustruct":q7,"../../lessons/diagramme/pt/l09-java-fehler-start.visustruct":U7,"../../lessons/diagramme/pt/l09-java-schule-loesung.visustruct":$7,"../../lessons/diagramme/pt/l09-note-loesung.visustruct":Y7,"../../lessons/diagramme/pt/l09-rechner-loesung.visustruct":X7,"../../lessons/diagramme/pt/l09-verschachtelt.visustruct":K7,"../../lessons/diagramme/pt/l1-grundbausteine.visustruct":eI,"../../lessons/diagramme/pt/l1-sequenz.visustruct":tI,"../../lessons/diagramme/pt/l1-tee.visustruct":nI,"../../lessons/diagramme/pt/l1-verzweigung.visustruct":aI,"../../lessons/diagramme/pt/l1-wiederholung.visustruct":iI,"../../lessons/diagramme/pt/l10-bis-n-loesung.visustruct":sI,"../../lessons/diagramme/pt/l10-countdown.visustruct":rI,"../../lessons/diagramme/pt/l10-endlos.visustruct":oI,"../../lessons/diagramme/pt/l10-fakultaet.visustruct":lI,"../../lessons/diagramme/pt/l10-java-fehler-loesung.visustruct":uI,"../../lessons/diagramme/pt/l10-java-fehler-start.visustruct":mI,"../../lessons/diagramme/pt/l10-java-wuerfel-loesung.visustruct":cI,"../../lessons/diagramme/pt/l10-verdoppeln-loesung.visustruct":dI,"../../lessons/diagramme/pt/l11-eingabe-pruefen.visustruct":hI,"../../lessons/diagramme/pt/l11-einmal.visustruct":gI,"../../lessons/diagramme/pt/l11-java-fehler-loesung.visustruct":pI,"../../lessons/diagramme/pt/l11-java-fehler-start.visustruct":fI,"../../lessons/diagramme/pt/l11-java-gerade-loesung.visustruct":xI,"../../lessons/diagramme/pt/l11-note-loesung.visustruct":bI,"../../lessons/diagramme/pt/l11-summe-loesung.visustruct":yI,"../../lessons/diagramme/pt/l12-countdown-loesung.visustruct":vI,"../../lessons/diagramme/pt/l12-einmaleins-loesung.visustruct":wI,"../../lessons/diagramme/pt/l12-eins-bis-fuenf.visustruct":zI,"../../lessons/diagramme/pt/l12-java-fehler-loesung.visustruct":II,"../../lessons/diagramme/pt/l12-java-fehler-start.visustruct":kI,"../../lessons/diagramme/pt/l12-java-verdoppeln-loesung.visustruct":SI,"../../lessons/diagramme/pt/l12-summe.visustruct":OI,"../../lessons/diagramme/pt/l13-dreieck.visustruct":TI,"../../lessons/diagramme/pt/l13-gerade-eingaben-loesung.visustruct":AI,"../../lessons/diagramme/pt/l13-gerade-zaehlen.visustruct":PI,"../../lessons/diagramme/pt/l13-java-fehler-loesung.visustruct":jI,"../../lessons/diagramme/pt/l13-java-fehler-start.visustruct":CI,"../../lessons/diagramme/pt/l13-java-quadrate-loesung.visustruct":_I,"../../lessons/diagramme/pt/l13-rechteck-loesung.visustruct":ZI,"../../lessons/diagramme/pt/l14-array-durchlaufen.visustruct":MI,"../../lessons/diagramme/pt/l14-erster-letzter-loesung.visustruct":DI,"../../lessons/diagramme/pt/l14-java-fehler-loesung.visustruct":BI,"../../lessons/diagramme/pt/l14-java-fehler-start.visustruct":WI,"../../lessons/diagramme/pt/l14-java-treppe-loesung.visustruct":LI,"../../lessons/diagramme/pt/l14-namen-eingeben.visustruct":EI,"../../lessons/diagramme/pt/l14-rueckwaerts-loesung.visustruct":NI,"../../lessons/diagramme/pt/l14-summe-max-loesung.visustruct":FI,"../../lessons/diagramme/pt/l14-summe-maximum.visustruct":JI,"../../lessons/diagramme/pt/l15-bis-null-loesung.visustruct":GI,"../../lessons/diagramme/pt/l15-endlos-aussprung.visustruct":RI,"../../lessons/diagramme/pt/l15-flaeche-loesung.visustruct":HI,"../../lessons/diagramme/pt/l15-hauptprogramm.visustruct":QI,"../../lessons/diagramme/pt/l15-java-fehler-loesung.visustruct":VI,"../../lessons/diagramme/pt/l15-java-fehler-start.visustruct":qI,"../../lessons/diagramme/pt/l15-java-noten-loesung.visustruct":UI,"../../lessons/diagramme/pt/l15-quadrat-haupt.visustruct":$I,"../../lessons/diagramme/pt/l15-quadrat.visustruct":YI,"../../lessons/diagramme/pt/l15-titel-loesung.visustruct":XI,"../../lessons/diagramme/pt/l15-unterprogramm.visustruct":KI,"../../lessons/diagramme/pt/l15-zeige-summe-haupt.visustruct":ek,"../../lessons/diagramme/pt/l15-zeige-summe.visustruct":tk,"../../lessons/diagramme/pt/l16-countdown-loesung.visustruct":nk,"../../lessons/diagramme/pt/l16-countdown-start.visustruct":ak,"../../lessons/diagramme/pt/l16-java-fehler-loesung.visustruct":ik,"../../lessons/diagramme/pt/l16-java-fehler-start.visustruct":sk,"../../lessons/diagramme/pt/l16-java-punkte-loesung.visustruct":rk,"../../lessons/diagramme/pt/l16-schreibtisch.visustruct":ok,"../../lessons/diagramme/pt/l16-summe-loesung.visustruct":lk,"../../lessons/diagramme/pt/l16-summe-start.visustruct":uk,"../../lessons/diagramme/pt/l17-beispiel.visustruct":mk,"../../lessons/diagramme/pt/l17-fakultaet-loesung.visustruct":ck,"../../lessons/diagramme/pt/l17-java-brief-loesung.visustruct":dk,"../../lessons/diagramme/pt/l17-java-brief-start.visustruct":hk,"../../lessons/diagramme/pt/l17-java-fehler-loesung.visustruct":gk,"../../lessons/diagramme/pt/l17-java-fehler-start.visustruct":pk,"../../lessons/diagramme/pt/l17-java-passwort-loesung.visustruct":fk,"../../lessons/diagramme/pt/l17-ticket-loesung.visustruct":xk,"../../lessons/diagramme/pt/l18-beispiel.visustruct":bk,"../../lessons/diagramme/pt/l18-java-fehler-loesung.visustruct":yk,"../../lessons/diagramme/pt/l18-java-fehler-start.visustruct":vk,"../../lessons/diagramme/pt/l18-java-kasse-loesung.visustruct":wk,"../../lessons/diagramme/pt/l18-js-loesung.visustruct":zk,"../../lessons/diagramme/pt/l18-python-loesung.visustruct":Ik,"../../lessons/diagramme/pt/l19-java-fehler-loesung.visustruct":kk,"../../lessons/diagramme/pt/l19-java-fehler-start.visustruct":Sk,"../../lessons/diagramme/pt/l19-java-zaehlen-loesung.visustruct":Ok,"../../lessons/diagramme/pt/l2-ausgabe.visustruct":Tk,"../../lessons/diagramme/pt/l2-hallo-loesung.visustruct":Ak,"../../lessons/diagramme/pt/l2-zwei-zeilen-loesung.visustruct":Pk,"../../lessons/diagramme/pt/l23-java-ergaenzen-loesung.visustruct":jk,"../../lessons/diagramme/pt/l23-java-ergaenzen-start.visustruct":Ck,"../../lessons/diagramme/pt/l23-java-nummern-loesung.visustruct":_k,"../../lessons/diagramme/pt/l23-java-nummern-start.visustruct":Zk,"../../lessons/diagramme/pt/l24-java-fuchs-loesung.visustruct":Mk,"../../lessons/diagramme/pt/l24-java-fuchs-start.visustruct":Dk,"../../lessons/diagramme/pt/l24-java-laengster-loesung.visustruct":Bk,"../../lessons/diagramme/pt/l24-java-laengster-start.visustruct":Wk,"../../lessons/diagramme/pt/l25-java-beste-loesung.visustruct":Lk,"../../lessons/diagramme/pt/l25-java-beste-start.visustruct":Ek,"../../lessons/diagramme/pt/l25-java-schnitt-loesung.visustruct":Nk,"../../lessons/diagramme/pt/l25-java-schnitt-start.visustruct":Fk,"../../lessons/diagramme/pt/l26-java-namen-loesung.visustruct":Jk,"../../lessons/diagramme/pt/l26-java-namen-start.visustruct":Gk,"../../lessons/diagramme/pt/l26-java-schreiben-loesung.visustruct":Rk,"../../lessons/diagramme/pt/l26-java-schreiben-start.visustruct":Hk,"../../lessons/diagramme/pt/l27-java-json-loesung.visustruct":Qk,"../../lessons/diagramme/pt/l27-java-json-start.visustruct":Vk,"../../lessons/diagramme/pt/l27-java-saetze-loesung.visustruct":qk,"../../lessons/diagramme/pt/l27-java-saetze-start.visustruct":Uk,"../../lessons/diagramme/pt/sim-kino-loesung.visustruct":$k,"../../lessons/diagramme/pt/sim-kino-start.visustruct":Yk,"../../lessons/diagramme/pt/sim-tausch-loesung.visustruct":Xk,"../../lessons/diagramme/pt/sim-tausch-start.visustruct":Kk,"../../lessons/diagramme/pt/sim-tausch.visustruct":e8,"../../lessons/diagramme/pt/ss-absteigend-loesung.visustruct":t8,"../../lessons/diagramme/pt/ss-absteigend-start.visustruct":n8,"../../lessons/diagramme/pt/ss-binaere-suche.visustruct":a8,"../../lessons/diagramme/pt/ss-bubblesort.visustruct":i8,"../../lessons/diagramme/pt/ss-karte-suchen-loesung.visustruct":s8,"../../lessons/diagramme/pt/ss-lineare-suche.visustruct":r8,"../../lessons/diagramme/pt/uebergabe-bonus-loesung.visustruct":o8,"../../lessons/diagramme/pt/uebergabe-bonus-start.visustruct":l8,"../../lessons/diagramme/pt/uebergabe-bonus-unterprogramm-loesung.visustruct":u8,"../../lessons/diagramme/pt/uebergabe-haupt.visustruct":m8,"../../lessons/diagramme/pt/uebergabe-leeren.visustruct":c8,"../../lessons/diagramme/pt/uebergabe-verdopple.visustruct":d8,"../../lessons/diagramme/pt/zk-initialen-loesung.visustruct":h8,"../../lessons/diagramme/pt/zk-mehr.visustruct":g8,"../../lessons/diagramme/pt/zk-rueckwaerts-loesung.visustruct":p8,"../../lessons/diagramme/pt/zk-split.visustruct":f8,"../../lessons/diagramme/pt/zk-woerter-loesung.visustruct":x8,"../../lessons/diagramme/pt/zk-zaehlen.visustruct":b8,"../../lessons/diagramme/pt/zk-zeichen.visustruct":y8,"../../lessons/diagramme/sim-kino-loesung.visustruct":v8,"../../lessons/diagramme/sim-kino-start.visustruct":w8,"../../lessons/diagramme/sim-tausch-loesung.visustruct":z8,"../../lessons/diagramme/sim-tausch-start.visustruct":I8,"../../lessons/diagramme/sim-tausch.visustruct":k8,"../../lessons/diagramme/ss-absteigend-loesung.visustruct":S8,"../../lessons/diagramme/ss-absteigend-start.visustruct":O8,"../../lessons/diagramme/ss-binaere-suche.visustruct":T8,"../../lessons/diagramme/ss-bubblesort.visustruct":A8,"../../lessons/diagramme/ss-karte-suchen-loesung.visustruct":P8,"../../lessons/diagramme/ss-lineare-suche.visustruct":j8,"../../lessons/diagramme/uebergabe-bonus-loesung.visustruct":C8,"../../lessons/diagramme/uebergabe-bonus-start.visustruct":_8,"../../lessons/diagramme/uebergabe-bonus-unterprogramm-loesung.visustruct":Z8,"../../lessons/diagramme/uebergabe-haupt.visustruct":M8,"../../lessons/diagramme/uebergabe-leeren.visustruct":D8,"../../lessons/diagramme/uebergabe-verdopple.visustruct":B8,"../../lessons/diagramme/zk-initialen-loesung.visustruct":W8,"../../lessons/diagramme/zk-mehr.visustruct":L8,"../../lessons/diagramme/zk-rueckwaerts-loesung.visustruct":E8,"../../lessons/diagramme/zk-split.visustruct":N8,"../../lessons/diagramme/zk-woerter-loesung.visustruct":F8,"../../lessons/diagramme/zk-zaehlen.visustruct":J8,"../../lessons/diagramme/zk-zeichen.visustruct":G8}),AO=Object.assign({"../../lessons/bilder/aufgabe-mehrwertsteuer.svg":R8,"../../lessons/bilder/ben-shneiderman.jpg":H8,"../../lessons/bilder/caesar-ascii.svg":Q8,"../../lessons/bilder/caesar-scheibe.svg":V8,"../../lessons/bilder/caesar-verschiebung.svg":q8,"../../lessons/bilder/en/aufgabe-mehrwertsteuer.svg":U8,"../../lessons/bilder/en/kino-saal.svg":$8,"../../lessons/bilder/en/kino-schleifen.svg":Y8,"../../lessons/bilder/en/l01-pap.svg":X8,"../../lessons/bilder/en/l02-einfuegen.svg":K8,"../../lessons/bilder/en/l04-variable.svg":eS,"../../lessons/bilder/en/l04-zuweisung.svg":tS,"../../lessons/bilder/en/l05-tauschen.svg":nS,"../../lessons/bilder/en/l08-zahlenstrahl.svg":aS,"../../lessons/bilder/en/l10-kopfgesteuert.svg":iS,"../../lessons/bilder/en/l11-vergleich.svg":sS,"../../lessons/bilder/en/l12-for-ablauf.svg":rS,"../../lessons/bilder/en/l14-array.svg":oS,"../../lessons/bilder/en/mvc-klick.svg":lS,"../../lessons/bilder/en/ss-binaere-suche.svg":uS,"../../lessons/bilder/en/ss-bubblesort.svg":mS,"../../lessons/bilder/en/ss-lineare-suche.svg":cS,"../../lessons/bilder/en/ss-vergleiche.svg":dS,"../../lessons/bilder/en/uebergabe.svg":hS,"../../lessons/bilder/en/zk-zeichen.svg":gS,"../../lessons/bilder/ike-nassi.jpg":pS,"../../lessons/bilder/kino-saal.svg":fS,"../../lessons/bilder/kino-schleifen.svg":xS,"../../lessons/bilder/l01-pap.svg":bS,"../../lessons/bilder/l02-einfuegen.svg":yS,"../../lessons/bilder/l04-variable.svg":vS,"../../lessons/bilder/l04-zuweisung.svg":wS,"../../lessons/bilder/l05-tauschen.svg":zS,"../../lessons/bilder/l08-zahlenstrahl.svg":IS,"../../lessons/bilder/l09-wahrheitstabelle.svg":kS,"../../lessons/bilder/l10-kopfgesteuert.svg":SS,"../../lessons/bilder/l11-vergleich.svg":OS,"../../lessons/bilder/l12-for-ablauf.svg":TS,"../../lessons/bilder/l14-array.svg":AS,"../../lessons/bilder/mvc-klick.svg":PS,"../../lessons/bilder/pt/aufgabe-mehrwertsteuer.svg":jS,"../../lessons/bilder/pt/kino-saal.svg":CS,"../../lessons/bilder/pt/kino-schleifen.svg":_S,"../../lessons/bilder/pt/l01-pap.svg":ZS,"../../lessons/bilder/pt/l02-einfuegen.svg":MS,"../../lessons/bilder/pt/l04-variable.svg":DS,"../../lessons/bilder/pt/l04-zuweisung.svg":BS,"../../lessons/bilder/pt/l05-tauschen.svg":WS,"../../lessons/bilder/pt/l08-zahlenstrahl.svg":LS,"../../lessons/bilder/pt/l10-kopfgesteuert.svg":ES,"../../lessons/bilder/pt/l11-vergleich.svg":NS,"../../lessons/bilder/pt/l12-for-ablauf.svg":FS,"../../lessons/bilder/pt/l14-array.svg":JS,"../../lessons/bilder/pt/mvc-klick.svg":GS,"../../lessons/bilder/pt/schiffe-versenken.svg":RS,"../../lessons/bilder/pt/ss-binaere-suche.svg":HS,"../../lessons/bilder/pt/ss-bubblesort.svg":QS,"../../lessons/bilder/pt/ss-lineare-suche.svg":VS,"../../lessons/bilder/pt/ss-vergleiche.svg":qS,"../../lessons/bilder/pt/uebergabe.svg":US,"../../lessons/bilder/pt/zk-zeichen.svg":$S,"../../lessons/bilder/schiffe-versenken.svg":YS,"../../lessons/bilder/ss-binaere-suche.svg":XS,"../../lessons/bilder/ss-bubblesort.svg":KS,"../../lessons/bilder/ss-lineare-suche.svg":eO,"../../lessons/bilder/ss-vergleiche.svg":tO,"../../lessons/bilder/uebergabe.svg":nO,"../../lessons/bilder/zk-zeichen.svg":aO}),PO=i=>i.replace(/^.*\//,"");function b0(i,e,t){const n=s=>new Map(Object.entries(i).filter(([r])=>{var o;return((o=e.exec(r))==null?void 0:o[1])===s}).map(([r,o])=>[PO(r),o]));return[...new Map([...n("en"),...t==="en"?[]:n(t)])]}function y0(i){return i==="de"?"de":i==="pt-PT"?"pt":"en"}let Z1="en",Gt=[],M1=[],Kc="",ei=[];function Ar(i){var t,n;if(i===Z1&&Gt.length>0)return;Z1=i;const e=b0(SO,/\/lessons\/([^/]+)\/[^/]+\.md$/,i);Gt=e.filter(([a])=>/^\d+/.test(a)).map(([a,s])=>IO(s,`${i}/${a}`)).sort((a,s)=>a.number-s.number),M1=b0(OO,/\/lessons\/([^/]+)\/aufgaben\/[^/]+\.md$/,i).map(([a,s])=>kO(s,`${i}/aufgaben/${a}`)).sort((a,s)=>(a.after??0)-(s.after??0)||a.level-s.level||a.title.localeCompare(s.title,i));for(const a of[...Gt.flatMap(s=>s.steps.flatMap(r=>r.blocks)),...M1.flatMap(s=>s.blocks)])a.kind==="textFile"&&Cp(a.name,a.content);Kc=((t=e.find(([a])=>a==="nachschlagen.md"))==null?void 0:t[1])??"",ei=iO(((n=e.find(([a])=>a==="begriffe.md"))==null?void 0:n[1])??"")}Ar("en");function ed(i,e){return Z1==="de"?i.get(e)??i.get(`en/${e}`):(Z1==="en"?void 0:i.get(`${Z1}/${e}`))??i.get(`en/${e}`)??i.get(e)}const td=(i,e)=>i.slice(i.indexOf(e)+e.length),jO=new Map(Object.entries(TO).map(([i,e])=>[td(i,"/diagramme/"),e]));function T1(i){const e=ed(jO,i);return e===void 0?void 0:Co(e)}const CO=new Map(Object.entries(AO).map(([i,e])=>[td(i,"/bilder/"),e]));function v0(i){return ed(CO,i)}const nd=i=>i.replace(/&/g,"&").replace(//g,">").replace(/"/g,""");function je(i){const e=[];let t=nd(i).replace(/`([^`]+)`/g,(n,a)=>(e.push(a),`\0${e.length-1}\0`));return t=t.replace(/\*\*(.+?)\*\*/g,"$1").replace(/(^|[^*])\*([^*\s][^*]*?)\*/g,"$1$2").replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(n,a,s)=>{const r=/^(https?:|mailto:|#|\.{0,2}\/)/.test(s)?s:"#",o=/^https?:/.test(r)?' target="_blank" rel="noopener noreferrer"':"";return`${a}`}).replace(/\[([^\]]+)\]\{\.(blau|orange|gruen)\}/g,'$1'),t.replace(/\u0000(\d+)\u0000/g,(n,a)=>`${e[Number(a)]}`)}function Rn(i){const e=[],t=i.replace(/\r\n/g,` +`)){const h=/^##\s+(.*)$/.exec(d);h?(u(),l={title:h[1].trim(),lines:[]}):l?l.lines.push(d):o.push(d)}if(u(),r.length===0)throw new se(`${e}: Keine Schritte (## Überschrift) gefunden.`);kO(r,e);const m=t.get("titel");if(!m)throw new se(`${e}: „titel:“ fehlt.`);return{id:a,number:s,title:m,section:t.get("bereich")??"",summary:t.get("kurz")??o.join(" ").trim(),steps:r}}function OO(i,e){const{meta:t,body:n}=Xc(i,e),a=t.get("titel");if(!a)throw new se(`${e}: „titel:“ fehlt.`);const s=t.get("nach");return{id:e.replace(/^.*\//,"").replace(/\.md$/,""),title:a,after:s?Number(s):void 0,level:Number(t.get("stufe")??"1")||1,blocks:Kc(n,e)}}const TO=Object.assign({"../../lessons/de/01-was-ist-ein-struktogramm.md":o3,"../../lessons/de/02-der-editor.md":l3,"../../lessons/de/03-speichern-oeffnen-exportieren.md":u3,"../../lessons/de/04-variablen-und-datentypen.md":m3,"../../lessons/de/05-sequenz.md":c3,"../../lessons/de/06-eingabe-und-ausgabe.md":d3,"../../lessons/de/07-simulation-und-schreibtischtest.md":h3,"../../lessons/de/08-verzweigung.md":g3,"../../lessons/de/09-bedingungen-verknuepfen.md":p3,"../../lessons/de/10-fallauswahl.md":f3,"../../lessons/de/11-while-schleife.md":x3,"../../lessons/de/12-do-while-schleife.md":b3,"../../lessons/de/13-for-schleife.md":y3,"../../lessons/de/14-verschachteln.md":v3,"../../lessons/de/15-arrays.md":w3,"../../lessons/de/16-zweidimensionale-arrays.md":z3,"../../lessons/de/17-zeichenketten.md":I3,"../../lessons/de/18-aufruf-und-aussprung.md":k3,"../../lessons/de/19-suchen-und-sortieren.md":S3,"../../lessons/de/20-java.md":O3,"../../lessons/de/21-python-und-javascript.md":T3,"../../lessons/de/22-try-und-catch.md":A3,"../../lessons/de/23-text-einlesen-und-speichern.md":P3,"../../lessons/de/24-zeile-fuer-zeile.md":j3,"../../lessons/de/25-tabellen-als-csv.md":C3,"../../lessons/de/26-json.md":_3,"../../lessons/de/27-formate-im-vergleich.md":Z3,"../../lessons/de/28-erstes-fenster.md":M3,"../../lessons/de/29-knopf-im-fenster.md":D3,"../../lessons/de/30-der-knopf-reagiert.md":B3,"../../lessons/de/31-zahl-verdoppeln.md":W3,"../../lessons/de/32-klickzaehler.md":L3,"../../lessons/de/33-ampel.md":E3,"../../lessons/de/34-notenrechner.md":N3,"../../lessons/de/35-taschenrechner.md":F3,"../../lessons/de/36-zahlenraten.md":J3,"../../lessons/de/37-viele-knoepfe-ein-zuhoerer.md":G3,"../../lessons/de/38-innere-klassen.md":R3,"../../lessons/de/39-zwei-reiter.md":H3,"../../lessons/de/40-model-view-controller.md":Q3,"../../lessons/de/begriffe.md":V3,"../../lessons/de/nachschlagen.md":q3,"../../lessons/en/01-was-ist-ein-struktogramm.md":U3,"../../lessons/en/02-der-editor.md":$3,"../../lessons/en/03-speichern-oeffnen-exportieren.md":Y3,"../../lessons/en/04-variablen-und-datentypen.md":X3,"../../lessons/en/05-sequenz.md":K3,"../../lessons/en/06-eingabe-und-ausgabe.md":e2,"../../lessons/en/07-simulation-und-schreibtischtest.md":t2,"../../lessons/en/08-verzweigung.md":n2,"../../lessons/en/09-bedingungen-verknuepfen.md":a2,"../../lessons/en/10-fallauswahl.md":i2,"../../lessons/en/11-while-schleife.md":s2,"../../lessons/en/12-do-while-schleife.md":r2,"../../lessons/en/13-for-schleife.md":o2,"../../lessons/en/14-verschachteln.md":l2,"../../lessons/en/15-arrays.md":u2,"../../lessons/en/16-zweidimensionale-arrays.md":m2,"../../lessons/en/17-zeichenketten.md":c2,"../../lessons/en/18-aufruf-und-aussprung.md":d2,"../../lessons/en/19-suchen-und-sortieren.md":h2,"../../lessons/en/20-java.md":g2,"../../lessons/en/21-python-und-javascript.md":p2,"../../lessons/en/22-try-und-catch.md":f2,"../../lessons/en/23-text-einlesen-und-speichern.md":x2,"../../lessons/en/24-zeile-fuer-zeile.md":b2,"../../lessons/en/25-tabellen-als-csv.md":y2,"../../lessons/en/26-json.md":v2,"../../lessons/en/27-formate-im-vergleich.md":w2,"../../lessons/en/28-erstes-fenster.md":z2,"../../lessons/en/29-knopf-im-fenster.md":I2,"../../lessons/en/30-der-knopf-reagiert.md":k2,"../../lessons/en/31-zahl-verdoppeln.md":S2,"../../lessons/en/32-klickzaehler.md":O2,"../../lessons/en/33-ampel.md":T2,"../../lessons/en/34-notenrechner.md":A2,"../../lessons/en/35-taschenrechner.md":P2,"../../lessons/en/36-zahlenraten.md":j2,"../../lessons/en/37-viele-knoepfe-ein-zuhoerer.md":C2,"../../lessons/en/38-innere-klassen.md":_2,"../../lessons/en/39-zwei-reiter.md":Z2,"../../lessons/en/40-model-view-controller.md":M2,"../../lessons/en/begriffe.md":D2,"../../lessons/en/nachschlagen.md":B2,"../../lessons/pt/01-was-ist-ein-struktogramm.md":W2,"../../lessons/pt/02-der-editor.md":L2,"../../lessons/pt/03-speichern-oeffnen-exportieren.md":E2,"../../lessons/pt/04-variablen-und-datentypen.md":N2,"../../lessons/pt/05-sequenz.md":F2,"../../lessons/pt/06-eingabe-und-ausgabe.md":J2,"../../lessons/pt/07-simulation-und-schreibtischtest.md":G2,"../../lessons/pt/08-verzweigung.md":R2,"../../lessons/pt/09-bedingungen-verknuepfen.md":H2,"../../lessons/pt/10-fallauswahl.md":Q2,"../../lessons/pt/11-while-schleife.md":V2,"../../lessons/pt/12-do-while-schleife.md":q2,"../../lessons/pt/13-for-schleife.md":U2,"../../lessons/pt/14-verschachteln.md":$2,"../../lessons/pt/15-arrays.md":Y2,"../../lessons/pt/16-zweidimensionale-arrays.md":X2,"../../lessons/pt/17-zeichenketten.md":K2,"../../lessons/pt/18-aufruf-und-aussprung.md":ex,"../../lessons/pt/19-suchen-und-sortieren.md":tx,"../../lessons/pt/20-java.md":nx,"../../lessons/pt/21-python-und-javascript.md":ax,"../../lessons/pt/22-try-und-catch.md":ix,"../../lessons/pt/23-text-einlesen-und-speichern.md":sx,"../../lessons/pt/24-zeile-fuer-zeile.md":rx,"../../lessons/pt/25-tabellen-als-csv.md":ox,"../../lessons/pt/26-json.md":lx,"../../lessons/pt/27-formate-im-vergleich.md":ux,"../../lessons/pt/28-erstes-fenster.md":mx,"../../lessons/pt/29-knopf-im-fenster.md":cx,"../../lessons/pt/30-der-knopf-reagiert.md":dx,"../../lessons/pt/31-zahl-verdoppeln.md":hx,"../../lessons/pt/32-klickzaehler.md":gx,"../../lessons/pt/33-ampel.md":px,"../../lessons/pt/34-notenrechner.md":fx,"../../lessons/pt/35-taschenrechner.md":xx,"../../lessons/pt/36-zahlenraten.md":bx,"../../lessons/pt/37-viele-knoepfe-ein-zuhoerer.md":yx,"../../lessons/pt/38-innere-klassen.md":vx,"../../lessons/pt/39-zwei-reiter.md":wx,"../../lessons/pt/40-model-view-controller.md":zx,"../../lessons/pt/begriffe.md":Ix,"../../lessons/pt/nachschlagen.md":kx}),AO=Object.assign({"../../lessons/de/aufgaben/alter-unterprogramm.md":Sx,"../../lessons/de/aufgaben/ballwurf.md":Ox,"../../lessons/de/aufgaben/bestenliste.md":Tx,"../../lessons/de/aufgaben/binaerzahl.md":Ax,"../../lessons/de/aufgaben/caesar.md":Px,"../../lessons/de/aufgaben/collatz.md":jx,"../../lessons/de/aufgaben/einheitenrechner.md":Cx,"../../lessons/de/aufgaben/fibonacci.md":_x,"../../lessons/de/aufgaben/gerade-ungerade.md":Zx,"../../lessons/de/aufgaben/mehrwertsteuer.md":Mx,"../../lessons/de/aufgaben/notendurchschnitt.md":Dx,"../../lessons/de/aufgaben/pin-pruefen.md":Bx,"../../lessons/de/aufgaben/schiffe-versenken.md":Wx,"../../lessons/de/aufgaben/speisekarte.md":Lx,"../../lessons/de/aufgaben/summe-bilden.md":Ex,"../../lessons/de/aufgaben/tafeldienst.md":Nx,"../../lessons/de/aufgaben/taschenrechner.md":Fx,"../../lessons/de/aufgaben/verleih-menue.md":Jx,"../../lessons/de/aufgaben/vokabeltrainer.md":Gx,"../../lessons/de/aufgaben/volljaehrig.md":Rx,"../../lessons/de/aufgaben/wuerfel-mvc.md":Hx,"../../lessons/de/aufgaben/zahl-verdoppeln.md":Qx,"../../lessons/en/aufgaben/alter-unterprogramm.md":Vx,"../../lessons/en/aufgaben/ballwurf.md":qx,"../../lessons/en/aufgaben/bestenliste.md":Ux,"../../lessons/en/aufgaben/binaerzahl.md":$x,"../../lessons/en/aufgaben/caesar.md":Yx,"../../lessons/en/aufgaben/collatz.md":Xx,"../../lessons/en/aufgaben/einheitenrechner.md":Kx,"../../lessons/en/aufgaben/fibonacci.md":eb,"../../lessons/en/aufgaben/gerade-ungerade.md":tb,"../../lessons/en/aufgaben/mehrwertsteuer.md":nb,"../../lessons/en/aufgaben/notendurchschnitt.md":ab,"../../lessons/en/aufgaben/pin-pruefen.md":ib,"../../lessons/en/aufgaben/schiffe-versenken.md":sb,"../../lessons/en/aufgaben/speisekarte.md":rb,"../../lessons/en/aufgaben/summe-bilden.md":ob,"../../lessons/en/aufgaben/tafeldienst.md":lb,"../../lessons/en/aufgaben/taschenrechner.md":ub,"../../lessons/en/aufgaben/verleih-menue.md":mb,"../../lessons/en/aufgaben/vokabeltrainer.md":cb,"../../lessons/en/aufgaben/volljaehrig.md":db,"../../lessons/en/aufgaben/wuerfel-mvc.md":hb,"../../lessons/en/aufgaben/zahl-verdoppeln.md":gb,"../../lessons/pt/aufgaben/alter-unterprogramm.md":pb,"../../lessons/pt/aufgaben/ballwurf.md":fb,"../../lessons/pt/aufgaben/bestenliste.md":xb,"../../lessons/pt/aufgaben/binaerzahl.md":bb,"../../lessons/pt/aufgaben/caesar.md":yb,"../../lessons/pt/aufgaben/collatz.md":vb,"../../lessons/pt/aufgaben/einheitenrechner.md":wb,"../../lessons/pt/aufgaben/fibonacci.md":zb,"../../lessons/pt/aufgaben/gerade-ungerade.md":Ib,"../../lessons/pt/aufgaben/mehrwertsteuer.md":kb,"../../lessons/pt/aufgaben/notendurchschnitt.md":Sb,"../../lessons/pt/aufgaben/pin-pruefen.md":Ob,"../../lessons/pt/aufgaben/schiffe-versenken.md":Tb,"../../lessons/pt/aufgaben/speisekarte.md":Ab,"../../lessons/pt/aufgaben/summe-bilden.md":Pb,"../../lessons/pt/aufgaben/tafeldienst.md":jb,"../../lessons/pt/aufgaben/taschenrechner.md":Cb,"../../lessons/pt/aufgaben/verleih-menue.md":_b,"../../lessons/pt/aufgaben/vokabeltrainer.md":Zb,"../../lessons/pt/aufgaben/volljaehrig.md":Mb,"../../lessons/pt/aufgaben/wuerfel-mvc.md":Db,"../../lessons/pt/aufgaben/zahl-verdoppeln.md":Bb}),PO=Object.assign({"../../lessons/diagramme/aufgabe-alter-haupt-loesung.visustruct":Wb,"../../lessons/diagramme/aufgabe-alter-unterprogramm-loesung.visustruct":Lb,"../../lessons/diagramme/aufgabe-ballwurf-loesung.visustruct":Eb,"../../lessons/diagramme/aufgabe-ballwurf-start.visustruct":Nb,"../../lessons/diagramme/aufgabe-bestenliste-loesung.visustruct":Fb,"../../lessons/diagramme/aufgabe-binaer-loesung.visustruct":Jb,"../../lessons/diagramme/aufgabe-caesar-array-loesung.visustruct":Gb,"../../lessons/diagramme/aufgabe-caesar-array-start.visustruct":Rb,"../../lessons/diagramme/aufgabe-caesar-ascii-loesung.visustruct":Hb,"../../lessons/diagramme/aufgabe-caesar-entschluesseln-loesung.visustruct":Qb,"../../lessons/diagramme/aufgabe-collatz-loesung.visustruct":Vb,"../../lessons/diagramme/aufgabe-durchschnitt-loesung.visustruct":qb,"../../lessons/diagramme/aufgabe-fibonacci-loesung.visustruct":Ub,"../../lessons/diagramme/aufgabe-gerade-loesung.visustruct":$b,"../../lessons/diagramme/aufgabe-mehrwertsteuer-loesung.visustruct":Yb,"../../lessons/diagramme/aufgabe-pin-java-loesung.visustruct":Xb,"../../lessons/diagramme/aufgabe-pin-loesung.visustruct":Kb,"../../lessons/diagramme/aufgabe-rechner-loesung.visustruct":e4,"../../lessons/diagramme/aufgabe-schiffe-loesung.visustruct":t4,"../../lessons/diagramme/aufgabe-schiffe-start.visustruct":n4,"../../lessons/diagramme/aufgabe-speisekarte-loesung.visustruct":a4,"../../lessons/diagramme/aufgabe-summe-loesung.visustruct":i4,"../../lessons/diagramme/aufgabe-tafeldienst-loesung.visustruct":s4,"../../lessons/diagramme/aufgabe-verdoppeln-loesung.visustruct":r4,"../../lessons/diagramme/aufgabe-verleih-java-loesung.visustruct":o4,"../../lessons/diagramme/aufgabe-verleih-loesung.visustruct":l4,"../../lessons/diagramme/aufgabe-vokabeln-loesung.visustruct":u4,"../../lessons/diagramme/aufgabe-vokabeln-start.visustruct":m4,"../../lessons/diagramme/aufgabe-volljaehrig-loesung.visustruct":c4,"../../lessons/diagramme/dt-buffered.visustruct":d4,"../../lessons/diagramme/dt-csv.visustruct":h4,"../../lessons/diagramme/dt-json.visustruct":g4,"../../lessons/diagramme/dt-lesen.visustruct":p4,"../../lessons/diagramme/en/aufgabe-alter-haupt-loesung.visustruct":f4,"../../lessons/diagramme/en/aufgabe-alter-unterprogramm-loesung.visustruct":x4,"../../lessons/diagramme/en/aufgabe-ballwurf-loesung.visustruct":b4,"../../lessons/diagramme/en/aufgabe-ballwurf-start.visustruct":y4,"../../lessons/diagramme/en/aufgabe-bestenliste-loesung.visustruct":v4,"../../lessons/diagramme/en/aufgabe-binaer-loesung.visustruct":w4,"../../lessons/diagramme/en/aufgabe-caesar-array-loesung.visustruct":z4,"../../lessons/diagramme/en/aufgabe-caesar-array-start.visustruct":I4,"../../lessons/diagramme/en/aufgabe-caesar-ascii-loesung.visustruct":k4,"../../lessons/diagramme/en/aufgabe-caesar-entschluesseln-loesung.visustruct":S4,"../../lessons/diagramme/en/aufgabe-collatz-loesung.visustruct":O4,"../../lessons/diagramme/en/aufgabe-durchschnitt-loesung.visustruct":T4,"../../lessons/diagramme/en/aufgabe-fibonacci-loesung.visustruct":A4,"../../lessons/diagramme/en/aufgabe-gerade-loesung.visustruct":P4,"../../lessons/diagramme/en/aufgabe-mehrwertsteuer-loesung.visustruct":j4,"../../lessons/diagramme/en/aufgabe-pin-java-loesung.visustruct":C4,"../../lessons/diagramme/en/aufgabe-pin-loesung.visustruct":_4,"../../lessons/diagramme/en/aufgabe-rechner-loesung.visustruct":Z4,"../../lessons/diagramme/en/aufgabe-schiffe-loesung.visustruct":M4,"../../lessons/diagramme/en/aufgabe-schiffe-start.visustruct":D4,"../../lessons/diagramme/en/aufgabe-speisekarte-loesung.visustruct":B4,"../../lessons/diagramme/en/aufgabe-summe-loesung.visustruct":W4,"../../lessons/diagramme/en/aufgabe-tafeldienst-loesung.visustruct":L4,"../../lessons/diagramme/en/aufgabe-verdoppeln-loesung.visustruct":E4,"../../lessons/diagramme/en/aufgabe-verleih-java-loesung.visustruct":N4,"../../lessons/diagramme/en/aufgabe-verleih-loesung.visustruct":F4,"../../lessons/diagramme/en/aufgabe-vokabeln-loesung.visustruct":J4,"../../lessons/diagramme/en/aufgabe-vokabeln-start.visustruct":G4,"../../lessons/diagramme/en/aufgabe-volljaehrig-loesung.visustruct":R4,"../../lessons/diagramme/en/dt-buffered.visustruct":H4,"../../lessons/diagramme/en/dt-csv.visustruct":Q4,"../../lessons/diagramme/en/dt-json.visustruct":V4,"../../lessons/diagramme/en/dt-lesen.visustruct":q4,"../../lessons/diagramme/en/kino-einmaleins-loesung.visustruct":U4,"../../lessons/diagramme/en/kino-frei-loesung.visustruct":$4,"../../lessons/diagramme/en/kino-frei-start.visustruct":Y4,"../../lessons/diagramme/en/kino-karte-loesung.visustruct":X4,"../../lessons/diagramme/en/kino-karte-start.visustruct":K4,"../../lessons/diagramme/en/kino-saalplan.visustruct":ey,"../../lessons/diagramme/en/kino-verkaufen.visustruct":ty,"../../lessons/diagramme/en/l04-java-fehler-loesung.visustruct":ny,"../../lessons/diagramme/en/l04-java-fehler-start.visustruct":ay,"../../lessons/diagramme/en/l04-java-steckbrief-loesung.visustruct":iy,"../../lessons/diagramme/en/l04-rechnen.visustruct":sy,"../../lessons/diagramme/en/l04-reihenfolge-loesung.visustruct":ry,"../../lessons/diagramme/en/l04-reihenfolge-start.visustruct":oy,"../../lessons/diagramme/en/l04-tauschen-loesung.visustruct":ly,"../../lessons/diagramme/en/l04-tauschen-start.visustruct":uy,"../../lessons/diagramme/en/l04-tauschen.visustruct":my,"../../lessons/diagramme/en/l05-datentypen.visustruct":cy,"../../lessons/diagramme/en/l05-division.visustruct":dy,"../../lessons/diagramme/en/l05-einkauf-loesung.visustruct":hy,"../../lessons/diagramme/en/l05-java-fehler-loesung.visustruct":gy,"../../lessons/diagramme/en/l05-java-fehler-start.visustruct":py,"../../lessons/diagramme/en/l05-java-kino-loesung.visustruct":fy,"../../lessons/diagramme/en/l05-rechteck-loesung.visustruct":xy,"../../lessons/diagramme/en/l05-sekunden-loesung.visustruct":by,"../../lessons/diagramme/en/l05-sekunden-start.visustruct":yy,"../../lessons/diagramme/en/l06-begruessung-loesung.visustruct":vy,"../../lessons/diagramme/en/l06-eva.visustruct":wy,"../../lessons/diagramme/en/l06-java-fehler-loesung.visustruct":zy,"../../lessons/diagramme/en/l06-java-fehler-start.visustruct":Iy,"../../lessons/diagramme/en/l06-java-tage-loesung.visustruct":ky,"../../lessons/diagramme/en/l06-mittelwert-loesung.visustruct":Sy,"../../lessons/diagramme/en/l06-rechner-loesung.visustruct":Oy,"../../lessons/diagramme/en/l07-alter-pruefen.visustruct":Ty,"../../lessons/diagramme/en/l07-betrag-loesung.visustruct":Ay,"../../lessons/diagramme/en/l07-gerade-loesung.visustruct":Py,"../../lessons/diagramme/en/l07-java-fehler-loesung.visustruct":jy,"../../lessons/diagramme/en/l07-java-fehler-start.visustruct":Cy,"../../lessons/diagramme/en/l07-java-pizza-loesung.visustruct":_y,"../../lessons/diagramme/en/l07-java-pizza-start.visustruct":Zy,"../../lessons/diagramme/en/l07-maximum-loesung.visustruct":My,"../../lessons/diagramme/en/l07-rabatt.visustruct":Dy,"../../lessons/diagramme/en/l08-gueltig-loesung.visustruct":By,"../../lessons/diagramme/en/l08-java-bestanden-loesung.visustruct":Wy,"../../lessons/diagramme/en/l08-java-fehler-loesung.visustruct":Ly,"../../lessons/diagramme/en/l08-java-fehler-start.visustruct":Ey,"../../lessons/diagramme/en/l08-jugendticket.visustruct":Ny,"../../lessons/diagramme/en/l08-note.visustruct":Fy,"../../lessons/diagramme/en/l08-schaltjahr-loesung.visustruct":Jy,"../../lessons/diagramme/en/l08-wochenende-loesung.visustruct":Gy,"../../lessons/diagramme/en/l09-ampel.visustruct":Ry,"../../lessons/diagramme/en/l09-automat.visustruct":Hy,"../../lessons/diagramme/en/l09-java-fehler-loesung.visustruct":Qy,"../../lessons/diagramme/en/l09-java-fehler-start.visustruct":Vy,"../../lessons/diagramme/en/l09-java-schule-loesung.visustruct":qy,"../../lessons/diagramme/en/l09-note-loesung.visustruct":Uy,"../../lessons/diagramme/en/l09-rechner-loesung.visustruct":$y,"../../lessons/diagramme/en/l09-verschachtelt.visustruct":Yy,"../../lessons/diagramme/en/l1-grundbausteine.visustruct":Xy,"../../lessons/diagramme/en/l1-sequenz.visustruct":Ky,"../../lessons/diagramme/en/l1-tee.visustruct":ev,"../../lessons/diagramme/en/l1-verzweigung.visustruct":tv,"../../lessons/diagramme/en/l1-wiederholung.visustruct":nv,"../../lessons/diagramme/en/l10-bis-n-loesung.visustruct":av,"../../lessons/diagramme/en/l10-countdown.visustruct":iv,"../../lessons/diagramme/en/l10-endlos.visustruct":sv,"../../lessons/diagramme/en/l10-fakultaet.visustruct":rv,"../../lessons/diagramme/en/l10-java-fehler-loesung.visustruct":ov,"../../lessons/diagramme/en/l10-java-fehler-start.visustruct":lv,"../../lessons/diagramme/en/l10-java-wuerfel-loesung.visustruct":uv,"../../lessons/diagramme/en/l10-verdoppeln-loesung.visustruct":mv,"../../lessons/diagramme/en/l11-eingabe-pruefen.visustruct":cv,"../../lessons/diagramme/en/l11-einmal.visustruct":dv,"../../lessons/diagramme/en/l11-java-fehler-loesung.visustruct":hv,"../../lessons/diagramme/en/l11-java-fehler-start.visustruct":gv,"../../lessons/diagramme/en/l11-java-gerade-loesung.visustruct":pv,"../../lessons/diagramme/en/l11-note-loesung.visustruct":fv,"../../lessons/diagramme/en/l11-summe-loesung.visustruct":xv,"../../lessons/diagramme/en/l12-countdown-loesung.visustruct":bv,"../../lessons/diagramme/en/l12-einmaleins-loesung.visustruct":yv,"../../lessons/diagramme/en/l12-eins-bis-fuenf.visustruct":vv,"../../lessons/diagramme/en/l12-java-fehler-loesung.visustruct":wv,"../../lessons/diagramme/en/l12-java-fehler-start.visustruct":zv,"../../lessons/diagramme/en/l12-java-verdoppeln-loesung.visustruct":Iv,"../../lessons/diagramme/en/l12-summe.visustruct":kv,"../../lessons/diagramme/en/l13-dreieck.visustruct":Sv,"../../lessons/diagramme/en/l13-gerade-eingaben-loesung.visustruct":Ov,"../../lessons/diagramme/en/l13-gerade-zaehlen.visustruct":Tv,"../../lessons/diagramme/en/l13-java-fehler-loesung.visustruct":Av,"../../lessons/diagramme/en/l13-java-fehler-start.visustruct":Pv,"../../lessons/diagramme/en/l13-java-quadrate-loesung.visustruct":jv,"../../lessons/diagramme/en/l13-rechteck-loesung.visustruct":Cv,"../../lessons/diagramme/en/l14-array-durchlaufen.visustruct":_v,"../../lessons/diagramme/en/l14-erster-letzter-loesung.visustruct":Zv,"../../lessons/diagramme/en/l14-java-fehler-loesung.visustruct":Mv,"../../lessons/diagramme/en/l14-java-fehler-start.visustruct":Dv,"../../lessons/diagramme/en/l14-java-treppe-loesung.visustruct":Bv,"../../lessons/diagramme/en/l14-namen-eingeben.visustruct":Wv,"../../lessons/diagramme/en/l14-rueckwaerts-loesung.visustruct":Lv,"../../lessons/diagramme/en/l14-summe-max-loesung.visustruct":Ev,"../../lessons/diagramme/en/l14-summe-maximum.visustruct":Nv,"../../lessons/diagramme/en/l15-bis-null-loesung.visustruct":Fv,"../../lessons/diagramme/en/l15-endlos-aussprung.visustruct":Jv,"../../lessons/diagramme/en/l15-flaeche-loesung.visustruct":Gv,"../../lessons/diagramme/en/l15-flaeche-unterprogramm-loesung.visustruct":Rv,"../../lessons/diagramme/en/l15-hauptprogramm.visustruct":Hv,"../../lessons/diagramme/en/l15-java-fehler-loesung.visustruct":Qv,"../../lessons/diagramme/en/l15-java-fehler-start.visustruct":Vv,"../../lessons/diagramme/en/l15-java-noten-loesung.visustruct":qv,"../../lessons/diagramme/en/l15-quadrat-haupt.visustruct":Uv,"../../lessons/diagramme/en/l15-quadrat.visustruct":$v,"../../lessons/diagramme/en/l15-titel-loesung.visustruct":Yv,"../../lessons/diagramme/en/l15-unterprogramm.visustruct":Xv,"../../lessons/diagramme/en/l15-zeige-summe-haupt.visustruct":Kv,"../../lessons/diagramme/en/l15-zeige-summe.visustruct":e9,"../../lessons/diagramme/en/l16-countdown-loesung.visustruct":t9,"../../lessons/diagramme/en/l16-countdown-start.visustruct":n9,"../../lessons/diagramme/en/l16-java-fehler-loesung.visustruct":a9,"../../lessons/diagramme/en/l16-java-fehler-start.visustruct":i9,"../../lessons/diagramme/en/l16-java-punkte-loesung.visustruct":s9,"../../lessons/diagramme/en/l16-schreibtisch.visustruct":r9,"../../lessons/diagramme/en/l16-summe-loesung.visustruct":o9,"../../lessons/diagramme/en/l16-summe-start.visustruct":l9,"../../lessons/diagramme/en/l17-beispiel.visustruct":u9,"../../lessons/diagramme/en/l17-fakultaet-loesung.visustruct":m9,"../../lessons/diagramme/en/l17-java-brief-loesung.visustruct":c9,"../../lessons/diagramme/en/l17-java-brief-start.visustruct":d9,"../../lessons/diagramme/en/l17-java-fehler-loesung.visustruct":h9,"../../lessons/diagramme/en/l17-java-fehler-start.visustruct":g9,"../../lessons/diagramme/en/l17-java-passwort-loesung.visustruct":p9,"../../lessons/diagramme/en/l17-ticket-loesung.visustruct":f9,"../../lessons/diagramme/en/l18-beispiel.visustruct":x9,"../../lessons/diagramme/en/l18-java-fehler-loesung.visustruct":b9,"../../lessons/diagramme/en/l18-java-fehler-start.visustruct":y9,"../../lessons/diagramme/en/l18-java-kasse-loesung.visustruct":v9,"../../lessons/diagramme/en/l18-js-loesung.visustruct":w9,"../../lessons/diagramme/en/l18-python-loesung.visustruct":z9,"../../lessons/diagramme/en/l19-java-fehler-loesung.visustruct":I9,"../../lessons/diagramme/en/l19-java-fehler-start.visustruct":k9,"../../lessons/diagramme/en/l19-java-zaehlen-loesung.visustruct":S9,"../../lessons/diagramme/en/l2-ausgabe.visustruct":O9,"../../lessons/diagramme/en/l2-hallo-loesung.visustruct":T9,"../../lessons/diagramme/en/l2-zwei-zeilen-loesung.visustruct":A9,"../../lessons/diagramme/en/l23-java-ergaenzen-loesung.visustruct":P9,"../../lessons/diagramme/en/l23-java-ergaenzen-start.visustruct":j9,"../../lessons/diagramme/en/l23-java-nummern-loesung.visustruct":C9,"../../lessons/diagramme/en/l23-java-nummern-start.visustruct":_9,"../../lessons/diagramme/en/l24-java-fuchs-loesung.visustruct":Z9,"../../lessons/diagramme/en/l24-java-fuchs-start.visustruct":M9,"../../lessons/diagramme/en/l24-java-laengster-loesung.visustruct":D9,"../../lessons/diagramme/en/l24-java-laengster-start.visustruct":B9,"../../lessons/diagramme/en/l25-java-beste-loesung.visustruct":W9,"../../lessons/diagramme/en/l25-java-beste-start.visustruct":L9,"../../lessons/diagramme/en/l25-java-schnitt-loesung.visustruct":E9,"../../lessons/diagramme/en/l25-java-schnitt-start.visustruct":N9,"../../lessons/diagramme/en/l26-java-namen-loesung.visustruct":F9,"../../lessons/diagramme/en/l26-java-namen-start.visustruct":J9,"../../lessons/diagramme/en/l26-java-schreiben-loesung.visustruct":G9,"../../lessons/diagramme/en/l26-java-schreiben-start.visustruct":R9,"../../lessons/diagramme/en/l27-java-json-loesung.visustruct":H9,"../../lessons/diagramme/en/l27-java-json-start.visustruct":Q9,"../../lessons/diagramme/en/l27-java-saetze-loesung.visustruct":V9,"../../lessons/diagramme/en/l27-java-saetze-start.visustruct":q9,"../../lessons/diagramme/en/sim-kino-loesung.visustruct":U9,"../../lessons/diagramme/en/sim-kino-start.visustruct":$9,"../../lessons/diagramme/en/sim-tausch-loesung.visustruct":Y9,"../../lessons/diagramme/en/sim-tausch-start.visustruct":X9,"../../lessons/diagramme/en/sim-tausch.visustruct":K9,"../../lessons/diagramme/en/ss-absteigend-loesung.visustruct":e5,"../../lessons/diagramme/en/ss-absteigend-start.visustruct":t5,"../../lessons/diagramme/en/ss-binaere-suche.visustruct":n5,"../../lessons/diagramme/en/ss-bubblesort.visustruct":a5,"../../lessons/diagramme/en/ss-karte-suchen-loesung.visustruct":i5,"../../lessons/diagramme/en/ss-lineare-suche.visustruct":s5,"../../lessons/diagramme/en/uebergabe-bonus-loesung.visustruct":r5,"../../lessons/diagramme/en/uebergabe-bonus-start.visustruct":o5,"../../lessons/diagramme/en/uebergabe-bonus-unterprogramm-loesung.visustruct":l5,"../../lessons/diagramme/en/uebergabe-haupt.visustruct":u5,"../../lessons/diagramme/en/uebergabe-leeren.visustruct":m5,"../../lessons/diagramme/en/uebergabe-verdopple.visustruct":c5,"../../lessons/diagramme/en/zk-initialen-loesung.visustruct":d5,"../../lessons/diagramme/en/zk-mehr.visustruct":h5,"../../lessons/diagramme/en/zk-rueckwaerts-loesung.visustruct":g5,"../../lessons/diagramme/en/zk-split.visustruct":p5,"../../lessons/diagramme/en/zk-woerter-loesung.visustruct":f5,"../../lessons/diagramme/en/zk-zaehlen.visustruct":x5,"../../lessons/diagramme/en/zk-zeichen.visustruct":b5,"../../lessons/diagramme/kino-einmaleins-loesung.visustruct":y5,"../../lessons/diagramme/kino-frei-loesung.visustruct":v5,"../../lessons/diagramme/kino-frei-start.visustruct":w5,"../../lessons/diagramme/kino-karte-loesung.visustruct":z5,"../../lessons/diagramme/kino-karte-start.visustruct":I5,"../../lessons/diagramme/kino-saalplan.visustruct":k5,"../../lessons/diagramme/kino-verkaufen.visustruct":S5,"../../lessons/diagramme/l04-java-fehler-loesung.visustruct":O5,"../../lessons/diagramme/l04-java-fehler-start.visustruct":T5,"../../lessons/diagramme/l04-java-steckbrief-loesung.visustruct":A5,"../../lessons/diagramme/l04-rechnen.visustruct":P5,"../../lessons/diagramme/l04-reihenfolge-loesung.visustruct":j5,"../../lessons/diagramme/l04-reihenfolge-start.visustruct":C5,"../../lessons/diagramme/l04-tauschen-loesung.visustruct":_5,"../../lessons/diagramme/l04-tauschen-start.visustruct":Z5,"../../lessons/diagramme/l04-tauschen.visustruct":M5,"../../lessons/diagramme/l05-datentypen.visustruct":D5,"../../lessons/diagramme/l05-division.visustruct":B5,"../../lessons/diagramme/l05-einkauf-loesung.visustruct":W5,"../../lessons/diagramme/l05-java-fehler-loesung.visustruct":L5,"../../lessons/diagramme/l05-java-fehler-start.visustruct":E5,"../../lessons/diagramme/l05-java-kino-loesung.visustruct":N5,"../../lessons/diagramme/l05-rechteck-loesung.visustruct":F5,"../../lessons/diagramme/l05-sekunden-loesung.visustruct":J5,"../../lessons/diagramme/l05-sekunden-start.visustruct":G5,"../../lessons/diagramme/l06-begruessung-loesung.visustruct":R5,"../../lessons/diagramme/l06-eva.visustruct":H5,"../../lessons/diagramme/l06-java-fehler-loesung.visustruct":Q5,"../../lessons/diagramme/l06-java-fehler-start.visustruct":V5,"../../lessons/diagramme/l06-java-tage-loesung.visustruct":q5,"../../lessons/diagramme/l06-mittelwert-loesung.visustruct":U5,"../../lessons/diagramme/l06-rechner-loesung.visustruct":$5,"../../lessons/diagramme/l07-alter-pruefen.visustruct":Y5,"../../lessons/diagramme/l07-betrag-loesung.visustruct":X5,"../../lessons/diagramme/l07-gerade-loesung.visustruct":K5,"../../lessons/diagramme/l07-java-fehler-loesung.visustruct":ew,"../../lessons/diagramme/l07-java-fehler-start.visustruct":tw,"../../lessons/diagramme/l07-java-pizza-loesung.visustruct":nw,"../../lessons/diagramme/l07-java-pizza-start.visustruct":aw,"../../lessons/diagramme/l07-maximum-loesung.visustruct":iw,"../../lessons/diagramme/l07-rabatt.visustruct":sw,"../../lessons/diagramme/l08-gueltig-loesung.visustruct":rw,"../../lessons/diagramme/l08-java-bestanden-loesung.visustruct":ow,"../../lessons/diagramme/l08-java-fehler-loesung.visustruct":lw,"../../lessons/diagramme/l08-java-fehler-start.visustruct":uw,"../../lessons/diagramme/l08-jugendticket.visustruct":mw,"../../lessons/diagramme/l08-note.visustruct":cw,"../../lessons/diagramme/l08-schaltjahr-loesung.visustruct":dw,"../../lessons/diagramme/l08-wochenende-loesung.visustruct":hw,"../../lessons/diagramme/l09-ampel.visustruct":gw,"../../lessons/diagramme/l09-automat.visustruct":pw,"../../lessons/diagramme/l09-java-fehler-loesung.visustruct":fw,"../../lessons/diagramme/l09-java-fehler-start.visustruct":xw,"../../lessons/diagramme/l09-java-schule-loesung.visustruct":bw,"../../lessons/diagramme/l09-note-loesung.visustruct":yw,"../../lessons/diagramme/l09-rechner-loesung.visustruct":vw,"../../lessons/diagramme/l09-verschachtelt.visustruct":ww,"../../lessons/diagramme/l1-grundbausteine.visustruct":zw,"../../lessons/diagramme/l1-sequenz.visustruct":Iw,"../../lessons/diagramme/l1-tee.visustruct":kw,"../../lessons/diagramme/l1-verzweigung.visustruct":Sw,"../../lessons/diagramme/l1-wiederholung.visustruct":Ow,"../../lessons/diagramme/l10-bis-n-loesung.visustruct":Tw,"../../lessons/diagramme/l10-countdown.visustruct":Aw,"../../lessons/diagramme/l10-endlos.visustruct":Pw,"../../lessons/diagramme/l10-fakultaet.visustruct":jw,"../../lessons/diagramme/l10-java-fehler-loesung.visustruct":Cw,"../../lessons/diagramme/l10-java-fehler-start.visustruct":_w,"../../lessons/diagramme/l10-java-wuerfel-loesung.visustruct":Zw,"../../lessons/diagramme/l10-verdoppeln-loesung.visustruct":Mw,"../../lessons/diagramme/l11-eingabe-pruefen.visustruct":Dw,"../../lessons/diagramme/l11-einmal.visustruct":Bw,"../../lessons/diagramme/l11-java-fehler-loesung.visustruct":Ww,"../../lessons/diagramme/l11-java-fehler-start.visustruct":Lw,"../../lessons/diagramme/l11-java-gerade-loesung.visustruct":Ew,"../../lessons/diagramme/l11-note-loesung.visustruct":Nw,"../../lessons/diagramme/l11-summe-loesung.visustruct":Fw,"../../lessons/diagramme/l12-countdown-loesung.visustruct":Jw,"../../lessons/diagramme/l12-einmaleins-loesung.visustruct":Gw,"../../lessons/diagramme/l12-eins-bis-fuenf.visustruct":Rw,"../../lessons/diagramme/l12-java-fehler-loesung.visustruct":Hw,"../../lessons/diagramme/l12-java-fehler-start.visustruct":Qw,"../../lessons/diagramme/l12-java-verdoppeln-loesung.visustruct":Vw,"../../lessons/diagramme/l12-summe.visustruct":qw,"../../lessons/diagramme/l13-dreieck.visustruct":Uw,"../../lessons/diagramme/l13-gerade-eingaben-loesung.visustruct":$w,"../../lessons/diagramme/l13-gerade-zaehlen.visustruct":Yw,"../../lessons/diagramme/l13-java-fehler-loesung.visustruct":Xw,"../../lessons/diagramme/l13-java-fehler-start.visustruct":Kw,"../../lessons/diagramme/l13-java-quadrate-loesung.visustruct":ez,"../../lessons/diagramme/l13-rechteck-loesung.visustruct":tz,"../../lessons/diagramme/l14-array-durchlaufen.visustruct":nz,"../../lessons/diagramme/l14-erster-letzter-loesung.visustruct":az,"../../lessons/diagramme/l14-java-fehler-loesung.visustruct":iz,"../../lessons/diagramme/l14-java-fehler-start.visustruct":sz,"../../lessons/diagramme/l14-java-treppe-loesung.visustruct":rz,"../../lessons/diagramme/l14-namen-eingeben.visustruct":oz,"../../lessons/diagramme/l14-rueckwaerts-loesung.visustruct":lz,"../../lessons/diagramme/l14-summe-max-loesung.visustruct":uz,"../../lessons/diagramme/l14-summe-maximum.visustruct":mz,"../../lessons/diagramme/l15-bis-null-loesung.visustruct":cz,"../../lessons/diagramme/l15-endlos-aussprung.visustruct":dz,"../../lessons/diagramme/l15-flaeche-loesung.visustruct":hz,"../../lessons/diagramme/l15-flaeche-unterprogramm-loesung.visustruct":gz,"../../lessons/diagramme/l15-hauptprogramm.visustruct":pz,"../../lessons/diagramme/l15-java-fehler-loesung.visustruct":fz,"../../lessons/diagramme/l15-java-fehler-start.visustruct":xz,"../../lessons/diagramme/l15-java-noten-loesung.visustruct":bz,"../../lessons/diagramme/l15-quadrat-haupt.visustruct":yz,"../../lessons/diagramme/l15-quadrat.visustruct":vz,"../../lessons/diagramme/l15-titel-loesung.visustruct":wz,"../../lessons/diagramme/l15-unterprogramm.visustruct":zz,"../../lessons/diagramme/l15-zeige-summe-haupt.visustruct":Iz,"../../lessons/diagramme/l15-zeige-summe.visustruct":kz,"../../lessons/diagramme/l16-countdown-loesung.visustruct":Sz,"../../lessons/diagramme/l16-countdown-start.visustruct":Oz,"../../lessons/diagramme/l16-java-fehler-loesung.visustruct":Tz,"../../lessons/diagramme/l16-java-fehler-start.visustruct":Az,"../../lessons/diagramme/l16-java-punkte-loesung.visustruct":Pz,"../../lessons/diagramme/l16-schreibtisch.visustruct":jz,"../../lessons/diagramme/l16-summe-loesung.visustruct":Cz,"../../lessons/diagramme/l16-summe-start.visustruct":_z,"../../lessons/diagramme/l17-beispiel.visustruct":Zz,"../../lessons/diagramme/l17-fakultaet-loesung.visustruct":Mz,"../../lessons/diagramme/l17-java-brief-loesung.visustruct":Dz,"../../lessons/diagramme/l17-java-brief-start.visustruct":Bz,"../../lessons/diagramme/l17-java-fehler-loesung.visustruct":Wz,"../../lessons/diagramme/l17-java-fehler-start.visustruct":Lz,"../../lessons/diagramme/l17-java-passwort-loesung.visustruct":Ez,"../../lessons/diagramme/l17-ticket-loesung.visustruct":Nz,"../../lessons/diagramme/l18-beispiel.visustruct":Fz,"../../lessons/diagramme/l18-java-fehler-loesung.visustruct":Jz,"../../lessons/diagramme/l18-java-fehler-start.visustruct":Gz,"../../lessons/diagramme/l18-java-kasse-loesung.visustruct":Rz,"../../lessons/diagramme/l18-js-loesung.visustruct":Hz,"../../lessons/diagramme/l18-python-loesung.visustruct":Qz,"../../lessons/diagramme/l19-java-fehler-loesung.visustruct":Vz,"../../lessons/diagramme/l19-java-fehler-start.visustruct":qz,"../../lessons/diagramme/l19-java-zaehlen-loesung.visustruct":Uz,"../../lessons/diagramme/l2-ausgabe.visustruct":$z,"../../lessons/diagramme/l2-hallo-loesung.visustruct":Yz,"../../lessons/diagramme/l2-zwei-zeilen-loesung.visustruct":Xz,"../../lessons/diagramme/l20-countdown-loesung.visustruct":Kz,"../../lessons/diagramme/l23-java-ergaenzen-loesung.visustruct":e6,"../../lessons/diagramme/l23-java-ergaenzen-start.visustruct":t6,"../../lessons/diagramme/l23-java-nummern-loesung.visustruct":n6,"../../lessons/diagramme/l23-java-nummern-start.visustruct":a6,"../../lessons/diagramme/l24-java-fuchs-loesung.visustruct":i6,"../../lessons/diagramme/l24-java-fuchs-start.visustruct":s6,"../../lessons/diagramme/l24-java-laengster-loesung.visustruct":r6,"../../lessons/diagramme/l24-java-laengster-start.visustruct":o6,"../../lessons/diagramme/l25-java-beste-loesung.visustruct":l6,"../../lessons/diagramme/l25-java-beste-start.visustruct":u6,"../../lessons/diagramme/l25-java-schnitt-loesung.visustruct":m6,"../../lessons/diagramme/l25-java-schnitt-start.visustruct":c6,"../../lessons/diagramme/l26-java-namen-loesung.visustruct":d6,"../../lessons/diagramme/l26-java-namen-start.visustruct":h6,"../../lessons/diagramme/l26-java-schreiben-loesung.visustruct":g6,"../../lessons/diagramme/l26-java-schreiben-start.visustruct":p6,"../../lessons/diagramme/l27-java-json-loesung.visustruct":f6,"../../lessons/diagramme/l27-java-json-start.visustruct":x6,"../../lessons/diagramme/l27-java-saetze-loesung.visustruct":b6,"../../lessons/diagramme/l27-java-saetze-start.visustruct":y6,"../../lessons/diagramme/pt/aufgabe-alter-haupt-loesung.visustruct":v6,"../../lessons/diagramme/pt/aufgabe-alter-unterprogramm-loesung.visustruct":w6,"../../lessons/diagramme/pt/aufgabe-ballwurf-loesung.visustruct":z6,"../../lessons/diagramme/pt/aufgabe-ballwurf-start.visustruct":I6,"../../lessons/diagramme/pt/aufgabe-bestenliste-loesung.visustruct":k6,"../../lessons/diagramme/pt/aufgabe-binaer-loesung.visustruct":S6,"../../lessons/diagramme/pt/aufgabe-caesar-array-loesung.visustruct":O6,"../../lessons/diagramme/pt/aufgabe-caesar-array-start.visustruct":T6,"../../lessons/diagramme/pt/aufgabe-caesar-ascii-loesung.visustruct":A6,"../../lessons/diagramme/pt/aufgabe-caesar-entschluesseln-loesung.visustruct":P6,"../../lessons/diagramme/pt/aufgabe-collatz-loesung.visustruct":j6,"../../lessons/diagramme/pt/aufgabe-durchschnitt-loesung.visustruct":C6,"../../lessons/diagramme/pt/aufgabe-fibonacci-loesung.visustruct":_6,"../../lessons/diagramme/pt/aufgabe-gerade-loesung.visustruct":Z6,"../../lessons/diagramme/pt/aufgabe-mehrwertsteuer-loesung.visustruct":M6,"../../lessons/diagramme/pt/aufgabe-pin-java-loesung.visustruct":D6,"../../lessons/diagramme/pt/aufgabe-pin-loesung.visustruct":B6,"../../lessons/diagramme/pt/aufgabe-rechner-loesung.visustruct":W6,"../../lessons/diagramme/pt/aufgabe-schiffe-loesung.visustruct":L6,"../../lessons/diagramme/pt/aufgabe-schiffe-start.visustruct":E6,"../../lessons/diagramme/pt/aufgabe-speisekarte-loesung.visustruct":N6,"../../lessons/diagramme/pt/aufgabe-summe-loesung.visustruct":F6,"../../lessons/diagramme/pt/aufgabe-tafeldienst-loesung.visustruct":J6,"../../lessons/diagramme/pt/aufgabe-verdoppeln-loesung.visustruct":G6,"../../lessons/diagramme/pt/aufgabe-verleih-java-loesung.visustruct":R6,"../../lessons/diagramme/pt/aufgabe-verleih-loesung.visustruct":H6,"../../lessons/diagramme/pt/aufgabe-vokabeln-loesung.visustruct":Q6,"../../lessons/diagramme/pt/aufgabe-vokabeln-start.visustruct":V6,"../../lessons/diagramme/pt/aufgabe-volljaehrig-loesung.visustruct":q6,"../../lessons/diagramme/pt/dt-buffered.visustruct":U6,"../../lessons/diagramme/pt/dt-csv.visustruct":$6,"../../lessons/diagramme/pt/dt-json.visustruct":Y6,"../../lessons/diagramme/pt/dt-lesen.visustruct":X6,"../../lessons/diagramme/pt/kino-einmaleins-loesung.visustruct":K6,"../../lessons/diagramme/pt/kino-frei-loesung.visustruct":e7,"../../lessons/diagramme/pt/kino-frei-start.visustruct":t7,"../../lessons/diagramme/pt/kino-karte-loesung.visustruct":n7,"../../lessons/diagramme/pt/kino-karte-start.visustruct":a7,"../../lessons/diagramme/pt/kino-saalplan.visustruct":i7,"../../lessons/diagramme/pt/kino-verkaufen.visustruct":s7,"../../lessons/diagramme/pt/l04-java-fehler-loesung.visustruct":r7,"../../lessons/diagramme/pt/l04-java-fehler-start.visustruct":o7,"../../lessons/diagramme/pt/l04-java-steckbrief-loesung.visustruct":l7,"../../lessons/diagramme/pt/l04-rechnen.visustruct":u7,"../../lessons/diagramme/pt/l04-reihenfolge-loesung.visustruct":m7,"../../lessons/diagramme/pt/l04-reihenfolge-start.visustruct":c7,"../../lessons/diagramme/pt/l04-tauschen-loesung.visustruct":d7,"../../lessons/diagramme/pt/l04-tauschen-start.visustruct":h7,"../../lessons/diagramme/pt/l04-tauschen.visustruct":g7,"../../lessons/diagramme/pt/l05-datentypen.visustruct":p7,"../../lessons/diagramme/pt/l05-division.visustruct":f7,"../../lessons/diagramme/pt/l05-einkauf-loesung.visustruct":x7,"../../lessons/diagramme/pt/l05-java-fehler-loesung.visustruct":b7,"../../lessons/diagramme/pt/l05-java-fehler-start.visustruct":y7,"../../lessons/diagramme/pt/l05-java-kino-loesung.visustruct":v7,"../../lessons/diagramme/pt/l05-rechteck-loesung.visustruct":w7,"../../lessons/diagramme/pt/l05-sekunden-loesung.visustruct":z7,"../../lessons/diagramme/pt/l05-sekunden-start.visustruct":I7,"../../lessons/diagramme/pt/l06-begruessung-loesung.visustruct":k7,"../../lessons/diagramme/pt/l06-eva.visustruct":S7,"../../lessons/diagramme/pt/l06-java-fehler-loesung.visustruct":O7,"../../lessons/diagramme/pt/l06-java-fehler-start.visustruct":T7,"../../lessons/diagramme/pt/l06-java-tage-loesung.visustruct":A7,"../../lessons/diagramme/pt/l06-mittelwert-loesung.visustruct":P7,"../../lessons/diagramme/pt/l06-rechner-loesung.visustruct":j7,"../../lessons/diagramme/pt/l07-alter-pruefen.visustruct":C7,"../../lessons/diagramme/pt/l07-betrag-loesung.visustruct":_7,"../../lessons/diagramme/pt/l07-gerade-loesung.visustruct":Z7,"../../lessons/diagramme/pt/l07-java-fehler-loesung.visustruct":M7,"../../lessons/diagramme/pt/l07-java-fehler-start.visustruct":D7,"../../lessons/diagramme/pt/l07-java-pizza-loesung.visustruct":B7,"../../lessons/diagramme/pt/l07-java-pizza-start.visustruct":W7,"../../lessons/diagramme/pt/l07-maximum-loesung.visustruct":L7,"../../lessons/diagramme/pt/l07-rabatt.visustruct":E7,"../../lessons/diagramme/pt/l08-gueltig-loesung.visustruct":N7,"../../lessons/diagramme/pt/l08-java-bestanden-loesung.visustruct":F7,"../../lessons/diagramme/pt/l08-java-fehler-loesung.visustruct":J7,"../../lessons/diagramme/pt/l08-java-fehler-start.visustruct":G7,"../../lessons/diagramme/pt/l08-jugendticket.visustruct":R7,"../../lessons/diagramme/pt/l08-note.visustruct":H7,"../../lessons/diagramme/pt/l08-schaltjahr-loesung.visustruct":Q7,"../../lessons/diagramme/pt/l08-wochenende-loesung.visustruct":V7,"../../lessons/diagramme/pt/l09-ampel.visustruct":q7,"../../lessons/diagramme/pt/l09-automat.visustruct":U7,"../../lessons/diagramme/pt/l09-java-fehler-loesung.visustruct":$7,"../../lessons/diagramme/pt/l09-java-fehler-start.visustruct":Y7,"../../lessons/diagramme/pt/l09-java-schule-loesung.visustruct":X7,"../../lessons/diagramme/pt/l09-note-loesung.visustruct":K7,"../../lessons/diagramme/pt/l09-rechner-loesung.visustruct":eI,"../../lessons/diagramme/pt/l09-verschachtelt.visustruct":tI,"../../lessons/diagramme/pt/l1-grundbausteine.visustruct":nI,"../../lessons/diagramme/pt/l1-sequenz.visustruct":aI,"../../lessons/diagramme/pt/l1-tee.visustruct":iI,"../../lessons/diagramme/pt/l1-verzweigung.visustruct":sI,"../../lessons/diagramme/pt/l1-wiederholung.visustruct":rI,"../../lessons/diagramme/pt/l10-bis-n-loesung.visustruct":oI,"../../lessons/diagramme/pt/l10-countdown.visustruct":lI,"../../lessons/diagramme/pt/l10-endlos.visustruct":uI,"../../lessons/diagramme/pt/l10-fakultaet.visustruct":mI,"../../lessons/diagramme/pt/l10-java-fehler-loesung.visustruct":cI,"../../lessons/diagramme/pt/l10-java-fehler-start.visustruct":dI,"../../lessons/diagramme/pt/l10-java-wuerfel-loesung.visustruct":hI,"../../lessons/diagramme/pt/l10-verdoppeln-loesung.visustruct":gI,"../../lessons/diagramme/pt/l11-eingabe-pruefen.visustruct":pI,"../../lessons/diagramme/pt/l11-einmal.visustruct":fI,"../../lessons/diagramme/pt/l11-java-fehler-loesung.visustruct":xI,"../../lessons/diagramme/pt/l11-java-fehler-start.visustruct":bI,"../../lessons/diagramme/pt/l11-java-gerade-loesung.visustruct":yI,"../../lessons/diagramme/pt/l11-note-loesung.visustruct":vI,"../../lessons/diagramme/pt/l11-summe-loesung.visustruct":wI,"../../lessons/diagramme/pt/l12-countdown-loesung.visustruct":zI,"../../lessons/diagramme/pt/l12-einmaleins-loesung.visustruct":II,"../../lessons/diagramme/pt/l12-eins-bis-fuenf.visustruct":kI,"../../lessons/diagramme/pt/l12-java-fehler-loesung.visustruct":SI,"../../lessons/diagramme/pt/l12-java-fehler-start.visustruct":OI,"../../lessons/diagramme/pt/l12-java-verdoppeln-loesung.visustruct":TI,"../../lessons/diagramme/pt/l12-summe.visustruct":AI,"../../lessons/diagramme/pt/l13-dreieck.visustruct":PI,"../../lessons/diagramme/pt/l13-gerade-eingaben-loesung.visustruct":jI,"../../lessons/diagramme/pt/l13-gerade-zaehlen.visustruct":CI,"../../lessons/diagramme/pt/l13-java-fehler-loesung.visustruct":_I,"../../lessons/diagramme/pt/l13-java-fehler-start.visustruct":ZI,"../../lessons/diagramme/pt/l13-java-quadrate-loesung.visustruct":MI,"../../lessons/diagramme/pt/l13-rechteck-loesung.visustruct":DI,"../../lessons/diagramme/pt/l14-array-durchlaufen.visustruct":BI,"../../lessons/diagramme/pt/l14-erster-letzter-loesung.visustruct":WI,"../../lessons/diagramme/pt/l14-java-fehler-loesung.visustruct":LI,"../../lessons/diagramme/pt/l14-java-fehler-start.visustruct":EI,"../../lessons/diagramme/pt/l14-java-treppe-loesung.visustruct":NI,"../../lessons/diagramme/pt/l14-namen-eingeben.visustruct":FI,"../../lessons/diagramme/pt/l14-rueckwaerts-loesung.visustruct":JI,"../../lessons/diagramme/pt/l14-summe-max-loesung.visustruct":GI,"../../lessons/diagramme/pt/l14-summe-maximum.visustruct":RI,"../../lessons/diagramme/pt/l15-bis-null-loesung.visustruct":HI,"../../lessons/diagramme/pt/l15-endlos-aussprung.visustruct":QI,"../../lessons/diagramme/pt/l15-flaeche-loesung.visustruct":VI,"../../lessons/diagramme/pt/l15-hauptprogramm.visustruct":qI,"../../lessons/diagramme/pt/l15-java-fehler-loesung.visustruct":UI,"../../lessons/diagramme/pt/l15-java-fehler-start.visustruct":$I,"../../lessons/diagramme/pt/l15-java-noten-loesung.visustruct":YI,"../../lessons/diagramme/pt/l15-quadrat-haupt.visustruct":XI,"../../lessons/diagramme/pt/l15-quadrat.visustruct":KI,"../../lessons/diagramme/pt/l15-titel-loesung.visustruct":ek,"../../lessons/diagramme/pt/l15-unterprogramm.visustruct":tk,"../../lessons/diagramme/pt/l15-zeige-summe-haupt.visustruct":nk,"../../lessons/diagramme/pt/l15-zeige-summe.visustruct":ak,"../../lessons/diagramme/pt/l16-countdown-loesung.visustruct":ik,"../../lessons/diagramme/pt/l16-countdown-start.visustruct":sk,"../../lessons/diagramme/pt/l16-java-fehler-loesung.visustruct":rk,"../../lessons/diagramme/pt/l16-java-fehler-start.visustruct":ok,"../../lessons/diagramme/pt/l16-java-punkte-loesung.visustruct":lk,"../../lessons/diagramme/pt/l16-schreibtisch.visustruct":uk,"../../lessons/diagramme/pt/l16-summe-loesung.visustruct":mk,"../../lessons/diagramme/pt/l16-summe-start.visustruct":ck,"../../lessons/diagramme/pt/l17-beispiel.visustruct":dk,"../../lessons/diagramme/pt/l17-fakultaet-loesung.visustruct":hk,"../../lessons/diagramme/pt/l17-java-brief-loesung.visustruct":gk,"../../lessons/diagramme/pt/l17-java-brief-start.visustruct":pk,"../../lessons/diagramme/pt/l17-java-fehler-loesung.visustruct":fk,"../../lessons/diagramme/pt/l17-java-fehler-start.visustruct":xk,"../../lessons/diagramme/pt/l17-java-passwort-loesung.visustruct":bk,"../../lessons/diagramme/pt/l17-ticket-loesung.visustruct":yk,"../../lessons/diagramme/pt/l18-beispiel.visustruct":vk,"../../lessons/diagramme/pt/l18-java-fehler-loesung.visustruct":wk,"../../lessons/diagramme/pt/l18-java-fehler-start.visustruct":zk,"../../lessons/diagramme/pt/l18-java-kasse-loesung.visustruct":Ik,"../../lessons/diagramme/pt/l18-js-loesung.visustruct":kk,"../../lessons/diagramme/pt/l18-python-loesung.visustruct":Sk,"../../lessons/diagramme/pt/l19-java-fehler-loesung.visustruct":Ok,"../../lessons/diagramme/pt/l19-java-fehler-start.visustruct":Tk,"../../lessons/diagramme/pt/l19-java-zaehlen-loesung.visustruct":Ak,"../../lessons/diagramme/pt/l2-ausgabe.visustruct":Pk,"../../lessons/diagramme/pt/l2-hallo-loesung.visustruct":jk,"../../lessons/diagramme/pt/l2-zwei-zeilen-loesung.visustruct":Ck,"../../lessons/diagramme/pt/l23-java-ergaenzen-loesung.visustruct":_k,"../../lessons/diagramme/pt/l23-java-ergaenzen-start.visustruct":Zk,"../../lessons/diagramme/pt/l23-java-nummern-loesung.visustruct":Mk,"../../lessons/diagramme/pt/l23-java-nummern-start.visustruct":Dk,"../../lessons/diagramme/pt/l24-java-fuchs-loesung.visustruct":Bk,"../../lessons/diagramme/pt/l24-java-fuchs-start.visustruct":Wk,"../../lessons/diagramme/pt/l24-java-laengster-loesung.visustruct":Lk,"../../lessons/diagramme/pt/l24-java-laengster-start.visustruct":Ek,"../../lessons/diagramme/pt/l25-java-beste-loesung.visustruct":Nk,"../../lessons/diagramme/pt/l25-java-beste-start.visustruct":Fk,"../../lessons/diagramme/pt/l25-java-schnitt-loesung.visustruct":Jk,"../../lessons/diagramme/pt/l25-java-schnitt-start.visustruct":Gk,"../../lessons/diagramme/pt/l26-java-namen-loesung.visustruct":Rk,"../../lessons/diagramme/pt/l26-java-namen-start.visustruct":Hk,"../../lessons/diagramme/pt/l26-java-schreiben-loesung.visustruct":Qk,"../../lessons/diagramme/pt/l26-java-schreiben-start.visustruct":Vk,"../../lessons/diagramme/pt/l27-java-json-loesung.visustruct":qk,"../../lessons/diagramme/pt/l27-java-json-start.visustruct":Uk,"../../lessons/diagramme/pt/l27-java-saetze-loesung.visustruct":$k,"../../lessons/diagramme/pt/l27-java-saetze-start.visustruct":Yk,"../../lessons/diagramme/pt/sim-kino-loesung.visustruct":Xk,"../../lessons/diagramme/pt/sim-kino-start.visustruct":Kk,"../../lessons/diagramme/pt/sim-tausch-loesung.visustruct":e8,"../../lessons/diagramme/pt/sim-tausch-start.visustruct":t8,"../../lessons/diagramme/pt/sim-tausch.visustruct":n8,"../../lessons/diagramme/pt/ss-absteigend-loesung.visustruct":a8,"../../lessons/diagramme/pt/ss-absteigend-start.visustruct":i8,"../../lessons/diagramme/pt/ss-binaere-suche.visustruct":s8,"../../lessons/diagramme/pt/ss-bubblesort.visustruct":r8,"../../lessons/diagramme/pt/ss-karte-suchen-loesung.visustruct":o8,"../../lessons/diagramme/pt/ss-lineare-suche.visustruct":l8,"../../lessons/diagramme/pt/uebergabe-bonus-loesung.visustruct":u8,"../../lessons/diagramme/pt/uebergabe-bonus-start.visustruct":m8,"../../lessons/diagramme/pt/uebergabe-bonus-unterprogramm-loesung.visustruct":c8,"../../lessons/diagramme/pt/uebergabe-haupt.visustruct":d8,"../../lessons/diagramme/pt/uebergabe-leeren.visustruct":h8,"../../lessons/diagramme/pt/uebergabe-verdopple.visustruct":g8,"../../lessons/diagramme/pt/zk-initialen-loesung.visustruct":p8,"../../lessons/diagramme/pt/zk-mehr.visustruct":f8,"../../lessons/diagramme/pt/zk-rueckwaerts-loesung.visustruct":x8,"../../lessons/diagramme/pt/zk-split.visustruct":b8,"../../lessons/diagramme/pt/zk-woerter-loesung.visustruct":y8,"../../lessons/diagramme/pt/zk-zaehlen.visustruct":v8,"../../lessons/diagramme/pt/zk-zeichen.visustruct":w8,"../../lessons/diagramme/sim-kino-loesung.visustruct":z8,"../../lessons/diagramme/sim-kino-start.visustruct":I8,"../../lessons/diagramme/sim-tausch-loesung.visustruct":k8,"../../lessons/diagramme/sim-tausch-start.visustruct":S8,"../../lessons/diagramme/sim-tausch.visustruct":O8,"../../lessons/diagramme/ss-absteigend-loesung.visustruct":T8,"../../lessons/diagramme/ss-absteigend-start.visustruct":A8,"../../lessons/diagramme/ss-binaere-suche.visustruct":P8,"../../lessons/diagramme/ss-bubblesort.visustruct":j8,"../../lessons/diagramme/ss-karte-suchen-loesung.visustruct":C8,"../../lessons/diagramme/ss-lineare-suche.visustruct":_8,"../../lessons/diagramme/uebergabe-bonus-loesung.visustruct":Z8,"../../lessons/diagramme/uebergabe-bonus-start.visustruct":M8,"../../lessons/diagramme/uebergabe-bonus-unterprogramm-loesung.visustruct":D8,"../../lessons/diagramme/uebergabe-haupt.visustruct":B8,"../../lessons/diagramme/uebergabe-leeren.visustruct":W8,"../../lessons/diagramme/uebergabe-verdopple.visustruct":L8,"../../lessons/diagramme/zk-initialen-loesung.visustruct":E8,"../../lessons/diagramme/zk-mehr.visustruct":N8,"../../lessons/diagramme/zk-rueckwaerts-loesung.visustruct":F8,"../../lessons/diagramme/zk-split.visustruct":J8,"../../lessons/diagramme/zk-woerter-loesung.visustruct":G8,"../../lessons/diagramme/zk-zaehlen.visustruct":R8,"../../lessons/diagramme/zk-zeichen.visustruct":H8}),jO=Object.assign({"../../lessons/bilder/aufgabe-mehrwertsteuer.svg":Q8,"../../lessons/bilder/ben-shneiderman.jpg":V8,"../../lessons/bilder/caesar-ascii.svg":q8,"../../lessons/bilder/caesar-scheibe.svg":U8,"../../lessons/bilder/caesar-verschiebung.svg":$8,"../../lessons/bilder/en/aufgabe-mehrwertsteuer.svg":Y8,"../../lessons/bilder/en/kino-saal.svg":X8,"../../lessons/bilder/en/kino-schleifen.svg":K8,"../../lessons/bilder/en/l01-pap.svg":eS,"../../lessons/bilder/en/l02-einfuegen.svg":tS,"../../lessons/bilder/en/l04-variable.svg":nS,"../../lessons/bilder/en/l04-zuweisung.svg":aS,"../../lessons/bilder/en/l05-tauschen.svg":iS,"../../lessons/bilder/en/l08-zahlenstrahl.svg":sS,"../../lessons/bilder/en/l10-kopfgesteuert.svg":rS,"../../lessons/bilder/en/l11-vergleich.svg":oS,"../../lessons/bilder/en/l12-for-ablauf.svg":lS,"../../lessons/bilder/en/l14-array.svg":uS,"../../lessons/bilder/en/mvc-klick.svg":mS,"../../lessons/bilder/en/ss-binaere-suche.svg":cS,"../../lessons/bilder/en/ss-bubblesort.svg":dS,"../../lessons/bilder/en/ss-lineare-suche.svg":hS,"../../lessons/bilder/en/ss-vergleiche.svg":gS,"../../lessons/bilder/en/uebergabe.svg":pS,"../../lessons/bilder/en/zk-zeichen.svg":fS,"../../lessons/bilder/ike-nassi.jpg":xS,"../../lessons/bilder/kino-saal.svg":bS,"../../lessons/bilder/kino-schleifen.svg":yS,"../../lessons/bilder/l01-pap.svg":vS,"../../lessons/bilder/l02-einfuegen.svg":wS,"../../lessons/bilder/l04-variable.svg":zS,"../../lessons/bilder/l04-zuweisung.svg":IS,"../../lessons/bilder/l05-tauschen.svg":kS,"../../lessons/bilder/l08-zahlenstrahl.svg":SS,"../../lessons/bilder/l09-wahrheitstabelle.svg":OS,"../../lessons/bilder/l10-kopfgesteuert.svg":TS,"../../lessons/bilder/l11-vergleich.svg":AS,"../../lessons/bilder/l12-for-ablauf.svg":PS,"../../lessons/bilder/l14-array.svg":jS,"../../lessons/bilder/mvc-klick.svg":CS,"../../lessons/bilder/pt/aufgabe-mehrwertsteuer.svg":_S,"../../lessons/bilder/pt/kino-saal.svg":ZS,"../../lessons/bilder/pt/kino-schleifen.svg":MS,"../../lessons/bilder/pt/l01-pap.svg":DS,"../../lessons/bilder/pt/l02-einfuegen.svg":BS,"../../lessons/bilder/pt/l04-variable.svg":WS,"../../lessons/bilder/pt/l04-zuweisung.svg":LS,"../../lessons/bilder/pt/l05-tauschen.svg":ES,"../../lessons/bilder/pt/l08-zahlenstrahl.svg":NS,"../../lessons/bilder/pt/l10-kopfgesteuert.svg":FS,"../../lessons/bilder/pt/l11-vergleich.svg":JS,"../../lessons/bilder/pt/l12-for-ablauf.svg":GS,"../../lessons/bilder/pt/l14-array.svg":RS,"../../lessons/bilder/pt/mvc-klick.svg":HS,"../../lessons/bilder/pt/schiffe-versenken.svg":QS,"../../lessons/bilder/pt/ss-binaere-suche.svg":VS,"../../lessons/bilder/pt/ss-bubblesort.svg":qS,"../../lessons/bilder/pt/ss-lineare-suche.svg":US,"../../lessons/bilder/pt/ss-vergleiche.svg":$S,"../../lessons/bilder/pt/uebergabe.svg":YS,"../../lessons/bilder/pt/zk-zeichen.svg":XS,"../../lessons/bilder/schiffe-versenken.svg":KS,"../../lessons/bilder/ss-binaere-suche.svg":eO,"../../lessons/bilder/ss-bubblesort.svg":tO,"../../lessons/bilder/ss-lineare-suche.svg":nO,"../../lessons/bilder/ss-vergleiche.svg":aO,"../../lessons/bilder/uebergabe.svg":iO,"../../lessons/bilder/zk-zeichen.svg":sO}),CO=i=>i.replace(/^.*\//,"");function y0(i,e,t){const n=s=>new Map(Object.entries(i).filter(([r])=>{var o;return((o=e.exec(r))==null?void 0:o[1])===s}).map(([r,o])=>[CO(r),o]));return[...new Map([...n("en"),...t==="en"?[]:n(t)])]}function v0(i){return i==="de"?"de":i==="pt-PT"?"pt":"en"}let Z1="en",Gt=[],M1=[],ed="",ei=[];function Ar(i){var t,n;if(i===Z1&&Gt.length>0)return;Z1=i;const e=y0(TO,/\/lessons\/([^/]+)\/[^/]+\.md$/,i);Gt=e.filter(([a])=>/^\d+/.test(a)).map(([a,s])=>SO(s,`${i}/${a}`)).sort((a,s)=>a.number-s.number),M1=y0(AO,/\/lessons\/([^/]+)\/aufgaben\/[^/]+\.md$/,i).map(([a,s])=>OO(s,`${i}/aufgaben/${a}`)).sort((a,s)=>(a.after??0)-(s.after??0)||a.level-s.level||a.title.localeCompare(s.title,i));for(const a of[...Gt.flatMap(s=>s.steps.flatMap(r=>r.blocks)),...M1.flatMap(s=>s.blocks)])a.kind==="textFile"&&Zp(a.name,a.content);ed=((t=e.find(([a])=>a==="nachschlagen.md"))==null?void 0:t[1])??"",ei=rO(((n=e.find(([a])=>a==="begriffe.md"))==null?void 0:n[1])??"")}Ar("en");function td(i,e){return Z1==="de"?i.get(e)??i.get(`en/${e}`):(Z1==="en"?void 0:i.get(`${Z1}/${e}`))??i.get(`en/${e}`)??i.get(e)}const nd=(i,e)=>i.slice(i.indexOf(e)+e.length),_O=new Map(Object.entries(PO).map(([i,e])=>[nd(i,"/diagramme/"),e]));function T1(i){const e=td(_O,i);return e===void 0?void 0:_o(e)}const ZO=new Map(Object.entries(jO).map(([i,e])=>[nd(i,"/bilder/"),e]));function w0(i){return td(ZO,i)}const ad=i=>i.replace(/&/g,"&").replace(//g,">").replace(/"/g,""");function je(i){const e=[];let t=ad(i).replace(/`([^`]+)`/g,(n,a)=>(e.push(a),`\0${e.length-1}\0`));return t=t.replace(/\*\*(.+?)\*\*/g,"$1").replace(/(^|[^*])\*([^*\s][^*]*?)\*/g,"$1$2").replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(n,a,s)=>{const r=/^(https?:|mailto:|#|\.{0,2}\/)/.test(s)?s:"#",o=/^https?:/.test(r)?' target="_blank" rel="noopener noreferrer"':"";return`${a}`}).replace(/\[([^\]]+)\]\{\.(blau|orange|gruen)\}/g,'$1'),t.replace(/\u0000(\d+)\u0000/g,(n,a)=>`${e[Number(a)]}`)}function Rn(i){const e=[],t=i.replace(/\r\n/g,` `).split(` -`);let n=0;for(;n${nd(l.join(` +`);let n=0;for(;n${ad(l.join(` `))}`);continue}const s=/^(#{3,4})\s+(.*)$/.exec(a);if(s){const o=s[1].length;e.push(`${je(s[2])}`),n++;continue}if(/^\s*([-*]|\d+\.)\s+/.test(a)){const o=/^\s*\d+\./.test(a),l=[];for(;n${je(u)}`)}e.push(o?`
    ${l.join("")}
`:`
    ${l.join("")}
`);continue}if(a.startsWith("|")&&/^\|?[\s:|-]*-{3,}[\s:|-]*$/.test(t[n+1]??"")){const o=m=>m.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(c=>je(c.trim())),l=o(a);n+=2;const u=[];for(;n${l.map(m=>``).join("")}${u.map(m=>`${m.map(c=>``).join("")}`).join("")}
${m}
${c}
`);continue}if(a.startsWith(">")){const o=[];for(;n");)o.push(t[n++].replace(/^>\s?/,""));e.push(``);continue}const r=[];for(;n|\||\s*([-*]|\d+\.)\s+)/.test(t[n]);)r.push(t[n++].trim());e.push(`

${je(r.join(" "))}

`)}return e.join(` -`)}const Sa=""+new URL("ludwig-Cus1i402.webp",import.meta.url).href,Pr="f4ecc8e489ae7865308288c7d0fa313333cf2be3ff529b23bc214bee010310e0",qo="visustruct.learn.teacher";let Uo=!1;function w0(){if(Uo)return!0;try{return localStorage.getItem(qo)===Pr}catch{return!1}}async function _O(i){const e=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(i));return[...new Uint8Array(e)].map(t=>t.toString(16).padStart(2,"0")).join("")}async function ZO(i){let e=!1;try{e=await _O(i.trim())===Pr}catch{return!1}if(e){Uo=!0;try{localStorage.setItem(qo,Pr)}catch{}}return e}function MO(){Uo=!1;try{localStorage.removeItem(qo)}catch{}}function ad(i,e,t=!1){const n=document.createElement("figure");n.className=t?"learn-file written":"learn-file";const a=document.createElement("figcaption"),s=document.createElement("span");s.className="learn-file-icon",s.setAttribute("aria-hidden","true"),s.textContent="📄",a.append(s,t?f("web_sim_written_file_fmt",i):i);const r=document.createElement("pre");return r.className="learn-file-text",r.dir="ltr",e.replace(/\n$/,"").split(` +`)}const Sa=""+new URL("ludwig-Cus1i402.webp",import.meta.url).href,Pr="f4ecc8e489ae7865308288c7d0fa313333cf2be3ff529b23bc214bee010310e0",Uo="visustruct.learn.teacher";let $o=!1;function z0(){if($o)return!0;try{return localStorage.getItem(Uo)===Pr}catch{return!1}}async function MO(i){const e=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(i));return[...new Uint8Array(e)].map(t=>t.toString(16).padStart(2,"0")).join("")}async function DO(i){let e=!1;try{e=await MO(i.trim())===Pr}catch{return!1}if(e){$o=!0;try{localStorage.setItem(Uo,Pr)}catch{}}return e}function BO(){$o=!1;try{localStorage.removeItem(Uo)}catch{}}function id(i,e,t=!1){const n=document.createElement("figure");n.className=t?"learn-file written":"learn-file";const a=document.createElement("figcaption"),s=document.createElement("span");s.className="learn-file-icon",s.setAttribute("aria-hidden","true"),s.textContent="📄",a.append(s,t?f("web_sim_written_file_fmt",i):i);const r=document.createElement("pre");return r.className="learn-file-text",r.dir="ltr",e.replace(/\n$/,"").split(` `).forEach((l,u)=>{const m=document.createElement("span");m.className="ln",m.textContent=String(u+1),r.append(m,l+` -`)}),n.append(a,r),n}function id(i){return[...i].map(([e,t])=>ad(e,t,!0))}function e1(i){switch(i.kind){case"finished":return f("sim_notice_finished");case"infiniteLoopWithoutBody":return f("sim_notice_infinite_loop_empty");case"unsupportedStatement":return f("sim_notice_unsupported_statement_fmt",i.text);case"invalidExpression":return f("sim_notice_invalid_expression_fmt",i.text);case"unknownVariable":return f("sim_notice_unknown_variable_fmt",i.text);case"divisionByZero":return f("sim_notice_division_by_zero");case"wholeNumberExpected":return f("sim_notice_whole_number_expected");case"numberExpected":return f("sim_notice_number_expected");case"booleanExpected":return f("sim_notice_boolean_expected");case"subprogramNotFound":return f("sim_notice_subprogram_not_found_fmt",i.text);case"callTooDeep":return f("sim_notice_call_too_deep");case"callArguments":return f("web_sim_call_arguments_fmt",i.text);case"missingReturn":return f("web_sim_missing_return_fmt",i.text);case"fileNotFound":return f("web_sim_file_not_found_fmt",i.text);case"endOfFile":return f("web_sim_end_of_file_fmt",i.text);case"nullValue":return f("web_sim_null_value_fmt",i.text);case"other":return i.text}}const xe=i=>i.replace(/&/g,"&").replace(//g,">").replace(/"/g,"""),z0=["0.2","0.5","1.0","1.5","2.0"],DO=i=>Number(i).toLocaleString(Bn()==="java"?"en":Bn(),{minimumFractionDigits:1}),vs="visustruct.simulation.stepDelay",I0="visustruct.simulation.highlightMode";function ws(i){try{return localStorage.getItem(i)}catch{return null}}function k0(i,e){try{localStorage.setItem(i,e)}catch{}}class BO{constructor(e,t,n=()=>{},a=()=>{},s=()=>{}){I(this,"element");I(this,"engine");I(this,"isPlaying",!1);I(this,"playTimer");I(this,"wasPlayingBeforeInput",!1);I(this,"delay",z0.includes(ws(vs)??"")?ws(vs):"0.5");I(this,"highlightMode",ws(I0)==="nextToExecute"?"nextToExecute":"lastExecuted");I(this,"buttons");I(this,"inputSection");I(this,"trace");I(this,"variables");I(this,"output");I(this,"transcript",[]);I(this,"printed",0);I(this,"notice");I(this,"editButton");this.currentDocument=e,this.onHighlight=t,this.findSubprogram=n,this.onEdit=a,this.onTranscript=s,this.engine=new fi(e(),n),this.element=document.createElement("aside"),this.element.className="simpanel",this.build()}begin(){this.pause(),this.restartEngine()}end(){this.pause()}step(){if(!this.engine.canStep){this.pause();return}const e=this.isPlaying,t=this.engine.currentStepPath;this.engine.step(),this.collectOutput(),this.highlightMode==="nextToExecute"&&this.engine.canStep?this.onHighlight(this.engine.currentStepPath):this.onHighlight(t??this.engine.currentStepPath),this.engine.state.inputRequest&&e&&(this.wasPlayingBeforeInput=!0),this.engine.canStep||this.pause(),this.update()}reset(){this.pause(),this.restartEngine()}play(){if(this.isPlaying||!this.engine.canStep)return;this.isPlaying=!0;const e=()=>{this.playTimer=void 0,this.isPlaying&&(this.step(),this.isPlaying&&this.engine.canStep?this.playTimer=window.setTimeout(e,Number(this.delay)*1e3):(this.isPlaying=!1,this.update()))};e()}pause(){this.playTimer!==void 0&&window.clearTimeout(this.playTimer),this.playTimer=void 0,this.isPlaying=!1,this.update()}submitInput(e){var a;const t=this.isPlaying||this.wasPlayingBeforeInput;this.pause();const n=((a=this.engine.state.inputRequest)==null?void 0:a.prompt)??"";this.engine.provideInput(e.value),this.engine.state.inputRequest||(this.transcript.push({text:n?`${n} `:"",typed:e.value}),e.value=""),this.onHighlight(this.engine.currentStepPath),t&&this.engine.canStep&&(this.wasPlayingBeforeInput=!1,this.play()),this.update()}restartEngine(){this.engine=new fi(this.currentDocument(),this.findSubprogram),this.transcript=[],this.printed=0,this.wasPlayingBeforeInput=!1,this.onHighlight(this.engine.currentStepPath),this.update()}build(){this.element.innerHTML=` +`)}),n.append(a,r),n}function sd(i){return[...i].map(([e,t])=>id(e,t,!0))}function e1(i){switch(i.kind){case"finished":return f("sim_notice_finished");case"infiniteLoopWithoutBody":return f("sim_notice_infinite_loop_empty");case"unsupportedStatement":return f("sim_notice_unsupported_statement_fmt",i.text);case"invalidExpression":return f("sim_notice_invalid_expression_fmt",i.text);case"unknownVariable":return f("sim_notice_unknown_variable_fmt",i.text);case"divisionByZero":return f("sim_notice_division_by_zero");case"wholeNumberExpected":return f("sim_notice_whole_number_expected");case"numberExpected":return f("sim_notice_number_expected");case"booleanExpected":return f("sim_notice_boolean_expected");case"subprogramNotFound":return f("sim_notice_subprogram_not_found_fmt",i.text);case"callTooDeep":return f("sim_notice_call_too_deep");case"callArguments":return f("web_sim_call_arguments_fmt",i.text);case"missingReturn":return f("web_sim_missing_return_fmt",i.text);case"fileNotFound":return f("web_sim_file_not_found_fmt",i.text);case"endOfFile":return f("web_sim_end_of_file_fmt",i.text);case"nullValue":return f("web_sim_null_value_fmt",i.text);case"other":return i.text}}const xe=i=>i.replace(/&/g,"&").replace(//g,">").replace(/"/g,"""),I0=["0.2","0.5","1.0","1.5","2.0"],WO=i=>Number(i).toLocaleString(Bn()==="java"?"en":Bn(),{minimumFractionDigits:1}),vs="visustruct.simulation.stepDelay",k0="visustruct.simulation.highlightMode";function ws(i){try{return localStorage.getItem(i)}catch{return null}}function S0(i,e){try{localStorage.setItem(i,e)}catch{}}class LO{constructor(e,t,n=()=>{},a=()=>{},s=()=>{}){I(this,"element");I(this,"engine");I(this,"isPlaying",!1);I(this,"playTimer");I(this,"wasPlayingBeforeInput",!1);I(this,"delay",I0.includes(ws(vs)??"")?ws(vs):"0.5");I(this,"highlightMode",ws(k0)==="nextToExecute"?"nextToExecute":"lastExecuted");I(this,"buttons");I(this,"inputSection");I(this,"trace");I(this,"variables");I(this,"output");I(this,"transcript",[]);I(this,"printed",0);I(this,"notice");I(this,"editButton");this.currentDocument=e,this.onHighlight=t,this.findSubprogram=n,this.onEdit=a,this.onTranscript=s,this.engine=new fi(e(),n),this.element=document.createElement("aside"),this.element.className="simpanel",this.build()}begin(){this.pause(),this.restartEngine()}end(){this.pause()}step(){if(!this.engine.canStep){this.pause();return}const e=this.isPlaying,t=this.engine.currentStepPath;this.engine.step(),this.collectOutput(),this.highlightMode==="nextToExecute"&&this.engine.canStep?this.onHighlight(this.engine.currentStepPath):this.onHighlight(t??this.engine.currentStepPath),this.engine.state.inputRequest&&e&&(this.wasPlayingBeforeInput=!0),this.engine.canStep||this.pause(),this.update()}reset(){this.pause(),this.restartEngine()}play(){if(this.isPlaying||!this.engine.canStep)return;this.isPlaying=!0;const e=()=>{this.playTimer=void 0,this.isPlaying&&(this.step(),this.isPlaying&&this.engine.canStep?this.playTimer=window.setTimeout(e,Number(this.delay)*1e3):(this.isPlaying=!1,this.update()))};e()}pause(){this.playTimer!==void 0&&window.clearTimeout(this.playTimer),this.playTimer=void 0,this.isPlaying=!1,this.update()}submitInput(e){var a;const t=this.isPlaying||this.wasPlayingBeforeInput;this.pause();const n=((a=this.engine.state.inputRequest)==null?void 0:a.prompt)??"";this.engine.provideInput(e.value),this.engine.state.inputRequest||(this.transcript.push({text:n?`${n} `:"",typed:e.value}),e.value=""),this.onHighlight(this.engine.currentStepPath),t&&this.engine.canStep&&(this.wasPlayingBeforeInput=!1,this.play()),this.update()}restartEngine(){this.engine=new fi(this.currentDocument(),this.findSubprogram),this.transcript=[],this.printed=0,this.wasPlayingBeforeInput=!1,this.onHighlight(this.engine.currentStepPath),this.update()}build(){this.element.innerHTML=`

${xe(f("simulation_controls"))}

@@ -52124,7 +52124,7 @@ lösung: aufgabe-verdoppeln-loesung.visustruct

@@ -52133,25 +52133,25 @@ lösung: aufgabe-verdoppeln-loesung.visustruct

${xe(f("simulation_trace"))}

${xe(f("simulation_variables"))}

${xe(f("simulation_output"))}

- `;const e=a=>this.element.querySelector(a);this.buttons={play:e("[data-sim=play]"),pause:e("[data-sim=pause]"),step:e("[data-sim=step]"),stop:e("[data-sim=stop]")},this.buttons.play.addEventListener("click",()=>this.play()),this.buttons.pause.addEventListener("click",()=>this.pause()),this.buttons.step.addEventListener("click",()=>this.step()),this.buttons.stop.addEventListener("click",()=>this.reset()),this.editButton=e(".sim-edit"),this.editButton.addEventListener("click",()=>this.onEdit());const t=e("[data-sim=highlight]");t.value=this.highlightMode,t.addEventListener("change",()=>{this.highlightMode=t.value,k0(I0,this.highlightMode)});const n=e("[data-sim=delay]");n.value=this.delay,n.addEventListener("change",()=>{this.delay=n.value,k0(vs,this.delay)}),this.inputSection=e(".sim-input > div"),this.trace=e(".sim-trace"),this.variables=e(".sim-vars"),this.output=e(".sim-output"),this.notice=e(".sim-notice")}collectOutput(){const e=this.engine.state.outputLines;for(;this.printeds.localeCompare(r));if(n.length===0)this.variables.innerHTML=`

${xe(f("simulation_variables_placeholder"))}

`;else{const s=document.createElement("table");for(const r of n){const o=s.insertRow();o.insertCell().textContent=r;const l=e.variables.get(r),u=o.insertCell();l.kind==="grid"?u.append(sd(l)):u.textContent=ge(l)}this.variables.replaceChildren(s)}e.outputLines.length===0&&e.files.size===0?this.output.innerHTML=`

${xe(f("simulation_output_placeholder"))}

`:(this.output.replaceChildren(...e.outputLines.map(s=>{const r=document.createElement("div");return r.textContent=s,r}),...id(e.files)),this.output.scrollTop=this.output.scrollHeight)}updateInput(){const e=this.engine.state.inputRequest,t=this.inputSection;if(t.parentElement.classList.toggle("active",!!e),!e){t.innerHTML=`

${xe(f("simulation_input_placeholder"))}

`;return}let n=t.querySelector("form");if(!n){n=document.createElement("form"),n.innerHTML=`

`;const o=n.querySelector("input");n.addEventListener("submit",l=>{l.preventDefault(),this.submitInput(o)}),t.replaceChildren(n),requestAnimationFrame(()=>o.focus())}n.querySelector(".sim-prompt").textContent=e.prompt;const a=n.querySelector("input");a.inputMode=e.valueType==="string"||e.valueType==="boolean"?"text":"decimal";const s=this.engine.state.inputErrorNotice,r=n.querySelector(".sim-input-error");r.textContent=s?e1(s):"",r.hidden=!s}}function sd(i){const e=document.createElement("table");e.className="sim-grid";for(const t of i.value){const n=e.insertRow();for(const a of t){const s=n.insertCell();s.textContent=String(a),a===!0&&(s.className="sim-grid-true")}}return e}const Un=Array.from("ABCDEFGHIJKLMNOPQRSTUVWXYZ"),Sn=360/Un.length,WO="http://www.w3.org/2000/svg";function Se(i,e={},...t){const n=document.createElement(i);for(const[a,s]of Object.entries(e))n.setAttribute(a,s);return n.append(...t),n}function Ye(i,e={},t){const n=document.createElementNS(WO,i);for(const[a,s]of Object.entries(e))n.setAttribute(a,String(s));return t!==void 0&&(n.textContent=t),n}function LO(i,e){const t=(e%26+26)%26;return Array.from(i).map(n=>{const a=n.charCodeAt(0);return a>=65&&a<=90?String.fromCharCode((a-65+t)%26+65):a>=97&&a<=122?String.fromCharCode((a-97+t)%26+97):n}).join("")}function S0(i,e){const t=Ye("g",{class:e}),n=Un.map((a,s)=>{const r=Ye("g",{transform:`rotate(${s*Sn})`});return r.append(Ye("text",{x:0,y:-i,"text-anchor":"middle","dominant-baseline":"central"},a)),t.append(r),r});return{group:t,cells:n}}function EO(i,e){let t=i,n=!1,a=-t*Sn;const s=Se("section",{class:"learn-game learn-caesar"});s.append(Se("div",{class:"learn-game-head"},Se("strong",{},f("web_learn_caesar_title")))),s.append(Se("p",{class:"learn-game-status"},f("web_learn_caesar_hint")));const r=Ye("svg",{viewBox:"-200 -200 400 400",class:"learn-caesar-disc",role:"img"});r.append(Ye("circle",{r:196,class:"outer-disc"})),r.append(Ye("path",{d:NO(196,92,Sn/2),class:"window"}));const o=S0(168,"outer-letters");r.append(o.group);for(let A=0;A{o.cells.forEach((L,R)=>L.classList.toggle("marked",R===A)),u.cells.forEach((L,R)=>L.classList.toggle("marked",A!==void 0&&R===(A+t)%26))},S=()=>{m.textContent=String(t),l.setAttribute("transform",`rotate(${a})`),r.setAttribute("aria-label",f("web_learn_caesar_key_fmt",t)),b.textContent=f(n?"web_learn_caesar_secret":"web_learn_caesar_plain"),w.textContent=f(n?"web_learn_caesar_plain":"web_learn_caesar_secret"),p.classList.toggle("active",!n),x.classList.toggle("active",n),v.textContent=LO(y.value,n?-t:t)||" ";const A=Array.from(y.value.toUpperCase()).reverse().find(R=>Un.includes(R));if(A===void 0)return k();const L=Un.indexOf(A);k(n?(L-t+26)%26:L)},O=A=>{t=(A%26+26)%26,a=-t*Sn,S()};c.addEventListener("click",()=>O(t-1)),d.addEventListener("click",()=>O(t+1)),p.addEventListener("click",()=>{var A;n&&(y.value=((A=v.textContent)==null?void 0:A.trim())??""),n=!1,S()}),x.addEventListener("click",()=>{var A;n||(y.value=((A=v.textContent)==null?void 0:A.trim())??""),n=!0,S()}),y.addEventListener("input",S),o.cells.forEach((A,L)=>A.addEventListener("click",()=>k(L)));let _;const Z=A=>{const L=r.getBoundingClientRect();return Math.atan2(A.clientY-(L.top+L.height/2),A.clientX-(L.left+L.width/2))*180/Math.PI};l.addEventListener("pointerdown",A=>{const L=A;_=Z(L)-a,l.classList.add("dragging"),r.setPointerCapture(L.pointerId),L.preventDefault()}),r.addEventListener("pointermove",A=>{if(_===void 0)return;a=Z(A)-_,l.setAttribute("transform",`rotate(${a})`);const L=Math.round(-a/Sn);if((L%26+26)%26!==t){t=(L%26+26)%26;const R=a;S(),a=R,l.setAttribute("transform",`rotate(${a})`)}});const j=()=>{_!==void 0&&(_=void 0,l.classList.remove("dragging"),O(t))};return r.addEventListener("pointerup",j),r.addEventListener("pointercancel",j),S(),s}function NO(i,e,t){const n=(a,s)=>{const r=(s-90)*Math.PI/180;return`${(a*Math.cos(r)).toFixed(2)} ${(a*Math.sin(r)).toFixed(2)}`};return`M ${n(i,-t)} A ${i} ${i} 0 0 1 ${n(i,t)} L ${n(e,t)} A ${e} ${e} 0 0 0 ${n(e,-t)} Z`}function H(i,e={},...t){const n=document.createElement(i);for(const[a,s]of Object.entries(e))n.setAttribute(a,s);return n.append(...t),n}function In(i,e,t){const n=H(i,e);return n.innerHTML=je(t),n}const O0=1100;function FO(i,e){const t=H("section",{class:`learn-game learn-round-game ${i.kind}`}),n=H("div",{class:"learn-game-head"});n.append(H("img",{src:e,alt:"",width:"40",height:"40"}),H("strong",{},i.title));const a=H("p",{class:"learn-game-status"}),s=H("div",{class:"learn-game-stage"});t.append(n,a,s);const r=i.rounds.length;let o=0,l=0,u=[];const m=()=>{u.forEach(y=>{window.clearTimeout(y),window.clearInterval(y)}),u=[]},c=()=>{a.textContent=`${f("web_game_round_fmt",o+1,r)} · ${f("web_game_score_fmt",l)}`},d=()=>{const y=H("button",{class:"primary"},o+1{o++,o{const y=i.rounds[o],w=i.seconds,v=H("div",{class:"learn-bomb-fuse"},H("span",{})),z=H("span",{class:"learn-bomb-time"}),k=H("div",{class:"learn-bomb","aria-live":"polite"},H("span",{class:"learn-bomb-icon","aria-hidden":"true"},"💣"),z,v),S=H("div",{class:"learn-game-feedback",role:"status"}),O=y.code.split(` -`).map((R,X)=>{const he=H("button",{class:"ln",type:"button"},R||" ");return he.disabled=!R.trim(),he.addEventListener("click",()=>A(X+1===y.wrongLine?"right":"wrong",he)),he}),_=H("div",{class:"learn-game-code learn-bomb-code mono",dir:"ltr"},...O),Z=Date.now(),j=()=>{if(!t.isConnected&&Date.now()-Z>1e3)return m();const R=Math.max(0,w-(Date.now()-Z)/1e3);z.textContent=f("web_game_time_fmt",Math.ceil(R)),v.firstChild.style.width=`${R/w*100}%`,k.classList.toggle("hurry",R<=5),R<=0&&A("time")},A=(R,X)=>{m(),O.forEach((wn,Lt)=>{wn.disabled=!0,Lt+1===y.wrongLine&&wn.classList.add("right")}),X&&R==="wrong"&&X.classList.add("wrong");const he=R==="right";he&&l++,c(),k.classList.add(he?"defused":"boom"),k.firstChild.textContent=he?"✂️":"💥",S.className=`learn-game-feedback ${he?"right":"wrong"}`;const Kt=d();S.replaceChildren(H("p",{},f(he?"web_game_defused":R==="time"?"web_game_boom_time":"web_game_boom_wrong")),In("div",{class:"learn-game-explain"},y.explanation),H("p",{class:"learn-bomb-fix"},`${f("web_game_fix")} `,H("code",{},y.fix.trim())),Kt),Kt.focus({preventScroll:!0})};s.replaceChildren(k,In("p",{class:"learn-game-question"},y.question),_,S),j();const L=window.setInterval(j,200);u.push(L)},g=()=>{const y=i.rounds[o],w=[];y.code.trim()&&w.push(T0(y.code).element),w.push(In("p",{class:"learn-game-question"},y.question),H("p",{class:"learn-order-hint"},f("web_game_order_hint")));const v=H("div",{class:"learn-game-options learn-order"}),z=H("div",{class:"learn-game-feedback",role:"status"});let k=0;const S=JO(y.options.length).map(_=>{const Z=H("span",{class:"learn-order-badge","aria-hidden":"true"}),j=H("span",{});j.innerHTML=je(y.options[_].text);const A=H("button",{},Z,j);return A.addEventListener("click",()=>{if(_!==k)return A.classList.add("wrong"),O(!1);A.classList.add("right"),Z.textContent=String(++k),A.disabled=!0,k===y.options.length&&O(!0)}),v.append(A),{k:_,b:A,badge:Z}}),O=_=>{for(const{k:j,b:A,badge:L}of[...S].sort((R,X)=>R.k-X.k))A.disabled=!0,L.textContent=String(j+1),v.append(A);_&&l++,c(),z.className=`learn-game-feedback ${_?"right":"wrong"}`;const Z=d();z.replaceChildren(H("p",{},f(_?"web_game_right":"web_game_wrong_short")),In("div",{class:"learn-game-explain"},y.explanation),Z),Z.focus({preventScroll:!0})};s.replaceChildren(...w,v,z)},p=()=>{if(m(),i.kind==="bombe"||i.kind==="reihenfolge"){c(),i.kind==="bombe"?h():g();return}const y=i.rounds[o];c();const w=T0(y.code),v=[];let z;i.kind==="zuhoerer"?(z=GO(Qc(y.code),w),v.push(H("div",{class:"learn-swing-row"},w.element,z.element)),y.clicks.length&&v.push(H("p",{class:"learn-swing-clicks"},`${f("web_game_clicks")} `,...y.clicks.flatMap((Z,j)=>[...j?[" → "]:[],H("code",{},Z)])))):y.code.trim()&&v.push(w.element),v.push(In("p",{class:"learn-game-question"},y.question));const k=H("div",{class:`learn-game-options ${i.kind==="layout"?"pictures":""}`}),S=H("div",{class:"learn-game-feedback",role:"status"}),O=y.options.map(Z=>{const j=H("button",{});return i.kind==="layout"?j.append(HO(Z.text)):Z.text.includes(` -`)?j.append(RO(Z.text)):j.innerHTML=je(Z.text),j.addEventListener("click",()=>_(Z.right,j)),k.append(j),j}),_=(Z,j)=>{O.forEach((L,R)=>{L.disabled=!0,y.options[R].right&&L.classList.add("right")}),Z||j.classList.add("wrong"),Z&&l++,c(),S.className=`learn-game-feedback ${Z?"right":"wrong"}`;const A=d();S.replaceChildren(H("p",{},f(Z?"web_game_right":"web_game_wrong_short")),In("div",{class:"learn-game-explain"},y.explanation)),S.append(A),z&&(u=z.replay(y.clicks,()=>A.before(H("p",{class:"learn-swing-try"},f("web_game_try"))))),A.focus({preventScroll:!0})};s.replaceChildren(...v,k,S)},x=()=>{m(),a.textContent="";const y=H("button",{class:"primary"},f("web_game_again"));y.addEventListener("click",()=>{o=l=0,p()}),s.replaceChildren(H("p",{class:"learn-game-result"},f("web_game_done_fmt",l,r)),H("p",{},f(l===r?"web_game_perfect":l>=r*.7?"web_game_good":"web_game_practice_short")),y)},b=H("button",{class:"primary"},f("web_game_start"));return b.addEventListener("click",p),s.append(In("p",{},i.intro),b),t}function JO(i){const e=[...Array(i).keys()];for(;e.every((t,n)=>t===n);)for(let t=i-1;t>0;t--){const n=Math.floor(Math.random()*(t+1));[e[t],e[n]]=[e[n],e[t]]}return e}function T0(i){const e=i.split(` -`).map(n=>H("div",{class:"ln"},n||" "));return{element:H("pre",{class:"learn-game-code mono",dir:"ltr"},...e),highlight(n,a){e.forEach((s,r)=>s.classList.toggle("hit",n!==void 0&&r>=n&&r<=(a??n)))}}}function GO(i,e){const t=Vc(i),n=H("div",{class:"learn-swing-window",dir:"ltr"});n.append(H("div",{class:"learn-swing-title"},i.title||" "));const a=H("div",{class:"learn-swing-body"}),s=new Map;for(const c of i.labels){const d=H("div",{class:"learn-swing-label"},t.texts[c.name]);s.set(c.name,d),a.append(d)}const r=i.buttons.map(c=>{const d=H("button",{class:"learn-swing-button",disabled:""},t.texts[c.name]);return s.set(c.name,d),a.append(d),d}),o=H("p",{class:"learn-swing-event",role:"status"}),l=H("pre",{class:"learn-swing-console mono",hidden:""});n.append(a,o,l);const u=c=>{var h,g;const d=s.get(c.button);d.classList.add("pressed"),window.setTimeout(()=>d.classList.remove("pressed"),350),e.highlight((h=c.listener)==null?void 0:h.from,(g=c.listener)==null?void 0:g.to),o.textContent=c.listener?f("web_game_event_fmt",d.textContent??""):f("web_game_nobody"),o.className=`learn-swing-event ${c.listener?"heard":"nobody"}`;for(const[p,x]of Object.entries(c.texts)){const b=s.get(p);b&&b.textContent!==x&&(b.textContent=x,b.classList.remove("changed"),b.offsetWidth,b.classList.add("changed"))}c.console.length&&(l.hidden=!1,l.textContent+=c.console.map(p=>`${p} -`).join(""))},m=c=>u(qc(i,t,c));return{element:n,replay(c,d){const h=c.map((g,p)=>window.setTimeout(()=>m(g),(p+.3)*O0));return h.push(window.setTimeout(()=>{i.buttons.forEach((g,p)=>{r[p].disabled=!1,r[p].addEventListener("click",()=>u(Uc(i,t,g.name)))}),d()},(c.length+.3)*O0)),h}}}function RO(i){return H("pre",{class:"learn-game-file mono",dir:"ltr"},i)}function HO(i){const e=Hc(i),t=H("div",{class:"learn-layout-window",dir:"ltr"},H("div",{class:"learn-layout-title"})),n=H("div",{class:`learn-layout-body ${e.kind}`}),a=(s,r)=>H("span",{class:"learn-layout-cell",...r?{style:`grid-area:${r}`}:{}},s);if(e.kind==="border")for(const[s,r]of Object.entries(e.areas))n.append(a(r,s));else if(e.kind==="grid"){const s=Math.max(...e.rows.map(r=>r.length));n.style.gridTemplateColumns=`repeat(${s}, 1fr)`;for(const r of e.rows)for(let o=0;oa(r))));return t.append(n),t}function F(i,e={},...t){const n=document.createElement(i);for(const[a,s]of Object.entries(e))n.setAttribute(a,s);return n.append(...t),n}function sn(i,e,t){const n=F(i,e);return n.innerHTML=je(t),n}function A0(i){return F("pre",{class:"learn-game-code mono",dir:"ltr"},...i.split(` -`).map(e=>F("div",{class:"ln"},e||" ")))}function QO(i,e){const t=F("section",{class:"learn-game learn-rescue"}),n=F("div",{class:"learn-game-head"});n.append(F("img",{src:e,alt:"",width:"40",height:"40"}),F("strong",{},i.title));const a=i.stations.length,s=i.stations.map(()=>F("span",{class:"learn-rescue-dot"})),r=F("img",{class:"learn-rescue-ludwig",src:e,alt:"",width:"32",height:"32"}),o=F("span",{class:"learn-rescue-tower","aria-hidden":"true"},"🏰",F("span",{class:"learn-rescue-zora"},"🐐"),F("span",{class:"learn-rescue-fox"},"🦊")),l=F("span",{class:"learn-rescue-free"},"🐐"),u=F("div",{class:"learn-rescue-path","aria-hidden":"true"},r,...s,o),m=F("p",{class:"learn-game-status"}),c=F("div",{class:"learn-game-stage"}),d=VO(i);t.append(n,u,m,c);let h=0;const g=()=>{s.forEach((z,k)=>z.classList.toggle("done",k{const z=[...i.alphabet].map((k,S)=>F("span",{class:"learn-rescue-letter"},F("b",{},k),F("small",{},String(S))));return{element:F("div",{class:"learn-rescue-alphabet mono",dir:"ltr"},...z),cells:z}},x=z=>{const k=i.stations[z];m.textContent=f("web_learn_rescue_station_fmt",z+1,a,k.name);const S=p(),O=F("input",{type:"text",inputmode:"numeric",autocomplete:"off",class:"learn-rescue-number mono","aria-label":f("web_learn_rescue_number")}),_=F("button",{class:"primary"},f("web_learn_check")),Z=F("div",{class:"learn-game-feedback",role:"status"}),j=()=>{const A=O.value.trim();if(!/^-?\d+$/.test(A)){Z.className="learn-game-feedback wrong",Z.replaceChildren(F("p",{},f("web_learn_rescue_not_number")));return}if(Number(A)!==k.answer){Z.className="learn-game-feedback wrong",Z.replaceChildren(F("p",{},f("web_learn_rescue_wrong")),...k.hint?[sn("div",{class:"learn-game-explain"},`**${f("web_learn_hint")}:** ${k.hint}`)]:[]),O.select();return}O.disabled=_.disabled=!0;const L=i.alphabet.charAt(k.answer);S.cells[k.answer].classList.add("hit"),d.give(k.row,k.col,L),h++,g();const R=z+1===a,X=F("button",{class:"primary"},f(R?"web_learn_rescue_to_crossword":"web_game_next"));X.addEventListener("click",()=>R?b():x(z+1)),Z.className="learn-game-feedback right",Z.replaceChildren(F("p",{},f("web_game_right")),F("p",{class:"learn-rescue-charat mono",dir:"ltr"},`alphabet.charAt(${k.answer})`,F("span",{"aria-hidden":"true"}," → "),F("code",{},`'${L}'`)),sn("div",{class:"learn-game-explain"},k.explanation),F("p",{class:"learn-rescue-moved"},f("web_learn_rescue_letter_moved")),X),X.focus({preventScroll:!0})};_.addEventListener("click",j),O.addEventListener("keydown",A=>{A.key==="Enter"&&j()}),c.replaceChildren(A0(k.code),sn("p",{class:"learn-game-question"},k.question),F("div",{class:"learn-rescue-answer"},O,_),Z,F("p",{class:"learn-rescue-label"},f("web_learn_rescue_alphabet")),A0(`String alphabet = "${i.alphabet}";`),S.element,d.element),O.focus({preventScroll:!0})},b=()=>{m.textContent=f("web_learn_rescue_crossword");const z=F("div",{class:"learn-game-feedback",role:"status"}),k=F("button",{class:"primary"},f("web_learn_check"));k.addEventListener("click",()=>{if(!d.check()){z.className="learn-game-feedback wrong",z.replaceChildren(F("p",{},f("web_learn_rescue_cw_wrong")));return}k.disabled=!0,d.lock();const S=F("button",{class:"primary"},f("web_learn_rescue_to_gate"));S.addEventListener("click",y),z.className="learn-game-feedback right",z.replaceChildren(F("p",{},f("web_learn_rescue_cw_done")),S),S.focus({preventScroll:!0})}),d.unlock(),c.replaceChildren(sn("p",{},i.crosswordText),d.element,k,z),d.focusFirst()},y=()=>{m.textContent=f("web_learn_rescue_gate");const z=F("input",{type:"text",autocomplete:"off",autocapitalize:"off",spellcheck:"false",class:"learn-rescue-word mono",size:String(i.keyword.length+2),"aria-label":f("web_learn_rescue_word")}),k=i.gateCode.split(` -`).map(Z=>{const j=Z.indexOf(zi);return j<0?F("div",{class:"ln"},Z||" "):F("div",{class:"ln"},Z.slice(0,j),z,Z.slice(j+zi.length))}),S=F("button",{class:"primary"},f("web_learn_rescue_open")),O=F("div",{class:"learn-game-feedback",role:"status"}),_=()=>{const Z=z.value.trim();if(Z!==i.keyword){const A=Z.toUpperCase()===i.keyword.toUpperCase();O.className="learn-game-feedback wrong",O.replaceChildren(F("p",{},f(A?"web_learn_rescue_gate_case":"web_learn_rescue_gate_wrong"))),z.select();return}z.disabled=S.disabled=!0,t.classList.add("freed"),r.after(l),m.textContent="";const j=F("button",{},f("web_game_again"));j.addEventListener("click",w),O.className="learn-game-feedback right",O.replaceChildren(F("p",{},f("web_learn_rescue_freed")),sn("div",{class:"learn-game-explain"},i.end),j)};S.addEventListener("click",_),z.addEventListener("keydown",Z=>{Z.key==="Enter"&&_()}),c.replaceChildren(sn("p",{},i.gateText),F("div",{class:"learn-game-code mono learn-rescue-gate",dir:"ltr"},...k),S,O),z.focus({preventScroll:!0})},w=()=>{h=0,t.classList.remove("freed"),l.remove(),d.reset(),g(),x(0)},v=F("button",{class:"primary"},f("web_game_start"));return v.addEventListener("click",w),c.append(sn("p",{},i.intro),v),t}function VO(i){const e=cO(i),t=new Map(i.solution.map((g,p)=>[`${g.row} ${g.col}`,p])),n=new Map;for(const g of i.words)n.set(`${g.row} ${g.col}`,g.number);const a=new Map,s=F("div",{class:"learn-cw-grid",dir:"ltr"});s.style.gridTemplateColumns=`repeat(${i.cols}, var(--cw-cell))`;let r=!0;const o=(g,p)=>i.words.filter(x=>x.across?x.row===g&&p>=x.col&&p=x.row&&g{var y;const b=r?`${g} ${p+x}`:`${g+x} ${p}`;(y=a.get(b))==null||y.focus()};e.forEach((g,p)=>g.forEach((x,b)=>{if(!x)return s.append(F("span",{class:"learn-cw-empty"}));const y=`${p} ${b}`,w=F("input",{type:"text",maxlength:"1",autocomplete:"off",autocapitalize:"characters",spellcheck:"false","aria-label":f("web_learn_rescue_cell_fmt",p+1,b+1)});w.disabled=!0,w.addEventListener("focus",()=>{const S=o(p,b);S.some(O=>O.across===r)||(r=S[0].across),w.select()}),w.addEventListener("input",()=>{w.value=w.value.slice(-1).toUpperCase(),w.classList.remove("wrong"),c(),w.value&&l(p,b,1)}),w.addEventListener("keydown",S=>{if(S.key==="Backspace"&&!w.value)l(p,b,-1);else if(S.key==="ArrowRight"||S.key==="ArrowLeft")r=!0,l(p,b,S.key==="ArrowRight"?1:-1);else if(S.key==="ArrowDown"||S.key==="ArrowUp")r=!1,l(p,b,S.key==="ArrowDown"?1:-1);else return;S.preventDefault()}),a.set(y,w);const v=t.get(y),z=F("span",{class:`learn-cw-cell${v!==void 0?" key":""}`}),k=n.get(y);k&&z.append(F("small",{class:"learn-cw-number"},String(k))),v!==void 0&&z.append(F("small",{class:"learn-cw-keyindex"},String(v+1))),z.append(w),s.append(z)}));const u=g=>{const p=F("ol",{class:"learn-cw-clues"});for(const x of i.words.filter(b=>b.across===g).sort((b,y)=>b.number-y.number)){const b=sn("li",{value:String(x.number)},`${x.clue} (${x.word.length})`);b.addEventListener("click",()=>{var y;r=x.across,(y=a.get(`${x.row} ${x.col}`))==null||y.focus()}),p.append(b)}return F("div",{},F("strong",{},f(g?"web_learn_rescue_across":"web_learn_rescue_down")),p)},m=i.solution.map(()=>F("span",{class:"learn-cw-keybox"})),c=()=>i.solution.forEach((g,p)=>m[p].textContent=a.get(`${g.row} ${g.col}`).value||" "),d=F("div",{class:"learn-cw"},F("div",{class:"learn-cw-board"},s,F("p",{class:"learn-cw-keyword"},`${f("web_learn_rescue_keyword")} `,F("span",{class:"mono",dir:"ltr"},...m))),F("div",{class:"learn-cw-cluebox"},u(!0),u(!1))),h=new Set;return{element:d,give(g,p,x){const b=a.get(`${g} ${p}`);b.value=x,b.parentElement.classList.add("given","arrived"),h.add(`${g} ${p}`),c()},unlock(){for(const[g,p]of a)p.disabled=h.has(g)},lock(){for(const g of a.values())g.disabled=!0},focusFirst(){var g;(g=[...a].find(([p])=>!h.has(p)))==null||g[1].focus({preventScroll:!0})},check(){let g=!0;for(const[p,x]of a){const[b,y]=p.split(" ").map(Number),w=x.value!==e[b][y];x.classList.toggle("wrong",w),w&&(g=!1)}return g},reset(){h.clear();for(const g of a.values())g.value="",g.disabled=!0,g.classList.remove("wrong"),g.parentElement.classList.remove("given","arrived");c()}}}function it(i,e={},...t){const n=document.createElement(i);for(const[a,s]of Object.entries(e))n.setAttribute(a,s);return n.append(...t),n}function P0(i,e,t){const n=it(i,e);return n.innerHTML=je(t),n}function qO(i){const e=it("section",{class:"learn-cloze"});e.append(it("strong",{class:"learn-cloze-title"},i.title)),i.task&&e.append(P0("p",{},i.task)),e.append(it("p",{class:"learn-cloze-hint"},f("web_learn_cloze_hint")));const t=[];for(const m of i.blocks){const c=it("pre",{class:"learn-cloze-code mono",dir:"ltr"});for(const d of m){const h=it("div",{class:"ln"});for(const g of d){if(typeof g=="string"){h.append(g);continue}const p=it("input",{type:"text",class:"learn-cloze-gap mono",autocomplete:"off",autocapitalize:"off",autocorrect:"off",spellcheck:"false",enterkeyhint:"done","aria-label":`${t.length+1}`});p.style.width=`${Math.max(3,...g.answers.map(x=>x.length))+1}ch`,t.push({input:p,answers:g.answers}),h.append(p)}d.length||h.append(` -`),c.append(h)}e.append(c)}const n=it("p",{class:"learn-cloze-status",role:"status"}),a=i.explanation?P0("p",{class:"learn-explanation"},i.explanation):void 0;a&&(a.hidden=!0);const s=it("button",{class:"learn-cloze-check"},f("web_learn_check")),r=it("button",{},f("web_learn_cloze_solution")),o=it("button",{},f("web_learn_cloze_again"));r.hidden=!0,o.hidden=!0;const l=it("div",{class:"learn-cloze-actions"},s,r,o);e.append(l,n),a&&e.append(a);const u=()=>{var d;let m=0;for(const h of t){const g=xO(h.answers,h.input.value);h.input.classList.toggle("right",g),h.input.classList.toggle("wrong",!g),g&&m++}const c=m===t.length;n.textContent=c?f("web_learn_cloze_all_right"):f("web_learn_cloze_score_fmt",m,t.length),n.className=`learn-cloze-status ${c?"right":"wrong"}`,a&&(a.hidden=!c),c?(t.forEach(h=>h.input.disabled=!0),s.hidden=!0,o.hidden=!1):(r.hidden=!1,(d=t.find(h=>h.input.classList.contains("wrong")))==null||d.input.focus())};return s.addEventListener("click",u),r.addEventListener("click",()=>{for(const m of t)m.input.value=m.answers[0],m.input.classList.remove("right","wrong"),m.input.classList.add("shown"),m.input.disabled=!0;n.textContent="",n.className="learn-cloze-status",a&&(a.hidden=!1),s.hidden=!0,r.hidden=!0,o.hidden=!1}),o.addEventListener("click",()=>{var m;for(const c of t)c.input.value="",c.input.classList.remove("right","wrong","shown"),c.input.disabled=!1;n.textContent="",n.className="learn-cloze-status",a&&(a.hidden=!0),s.hidden=!1,r.hidden=!0,o.hidden=!0,(m=t[0])==null||m.input.focus()}),t.forEach((m,c)=>{m.input.addEventListener("input",()=>m.input.classList.remove("right","wrong")),m.input.addEventListener("keydown",d=>{d.key==="Enter"&&(d.preventDefault(),c[...o.querySelectorAll("strong")])){const o=p0(e),l=o==null?void 0:o.exec(r.textContent??""),u=l?f0(e,l[0]):void 0;u&&n.add(u)}let a=e.filter(r=>!n.has(r));for(const r of t){const o=document.createTreeWalker(r,NodeFilter.SHOW_TEXT),l=[];for(;o.nextNode();){const u=o.currentNode;(s=u.parentElement)!=null&&s.closest(UO)||l.push(u)}for(let u of l)for(;;){const m=p0(a),c=m==null?void 0:m.exec(u.data),d=c?f0(a,c[0]):void 0;if(!c||!d)break;const h=u.splitText(c.index);u=h.splitText(c[0].length);const g=document.createElement("span");g.className="term",g.tabIndex=0,g.setAttribute("role","button"),g.setAttribute("aria-describedby","term-tip"),g.dataset.term=d.term,g.dataset.text=d.text,h.replaceWith(g),g.append(h),a=a.filter(p=>p!==d)}}}function $O(i){const e=document.createElement("div");e.id="term-tip",e.className="term-tip",e.setAttribute("role","tooltip"),e.hidden=!0,document.body.append(e);let t,n=!1;const a=o=>{t=o,e.replaceChildren();const l=document.createElement("strong");l.textContent=o.dataset.term??"",e.append(l,document.createTextNode(" "+(o.dataset.text??""))),e.hidden=!1;const u=o.getBoundingClientRect(),m=e.offsetWidth,c=e.offsetHeight,d=Math.max(8,Math.min(u.left,window.innerWidth-m-8)),h=u.bottom+6;e.style.left=`${d}px`,e.style.top=`${h+c>window.innerHeight-8?Math.max(8,u.top-c-6):h}px`,o.setAttribute("aria-expanded","true")},s=()=>{t==null||t.setAttribute("aria-expanded","false"),t=void 0,n=!1,e.hidden=!0},r=o=>{var l,u;return((u=(l=o.target)==null?void 0:l.closest)==null?void 0:u.call(l,".term"))??void 0};return i.addEventListener("pointerover",o=>{const l=r(o);l&&o.pointerType==="mouse"&&!n&&a(l)}),i.addEventListener("pointerout",o=>{r(o)&&o.pointerType==="mouse"&&!n&&s()}),i.addEventListener("click",o=>{const l=r(o);if(l){if(n&&t===l)return s();a(l),n=!0}}),i.addEventListener("focusin",o=>{const l=r(o);l&&!n&&a(l)}),i.addEventListener("focusout",o=>{r(o)&&!n&&s()}),i.addEventListener("keydown",o=>{const l=r(o);o.key==="Escape"&&t?s():l&&(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),l.click())}),i.addEventListener("scroll",s,!0),document.addEventListener("pointerdown",o=>{t&&!r(o)&&!e.contains(o.target)&&s()}),{hide:s}}const rd={leiste:".topbar > .toolbar",werkzeuge:".diagram-tools",dateien:".files-rail, .files",codelive:".live-rail, .livecode",ausfuehren:"[data-run=play]",konsole:".livecode .console",einzelschritt:"[data-run=step]",elemente:".palette",struktogramm:".canvas",objektinspektor:".inspector",reiter:".tabs",titel:".caption",neu:"[data-action=new]",oeffnen:"[data-action=open]",speichern:"[data-action=save]",exportieren:"[data-action=export]",rueckgaengig:"[data-action=undo]",textgroesse:"[data-action=settings]",einstellungen:"[data-action=settings]",lernen:".learn .learn-hide",code:"[data-action=code]",simulation:"[data-action=simulate]"},YO=new Set(["werkzeuge","elemente","struktogramm","objektinspektor","reiter","titel","rueckgaengig","exportieren","code","simulation"]),XO=new Set(["ausfuehren","konsole","einzelschritt"]);function $o(i,e){return[...i.querySelectorAll(".ui-pointer")].some(t=>e.has(t.dataset.target??""))}function KO(i){return $o(i,new Set(["dateien"]))}function eT(i){return $o(i,YO)}function tT(i){return $o(i,XO)}function C0(i){for(const e of i.querySelectorAll('a[href^="#zeige-"]')){const t=e.getAttribute("href").slice(7);if(!(t in rd))continue;const n=document.createElement("span");n.className="ui-pointer",n.tabIndex=0,n.setAttribute("role","button"),n.dataset.target=t,n.append(...e.childNodes),e.replaceWith(n)}}function nT(i){let e,t;const n=()=>{e==null||e.classList.remove("ui-spot"),e=void 0,window.clearTimeout(t)},a=(r,o)=>{n();const l=[...document.querySelectorAll(rd[r.dataset.target??""]??":not(*)")].find(u=>u.getClientRects().length>0);l&&(e=l,l.classList.add("ui-spot"),o&&(t=window.setTimeout(n,2500)))},s=r=>{var o,l;return((l=(o=r.target)==null?void 0:o.closest)==null?void 0:l.call(o,".ui-pointer"))??void 0};return i.addEventListener("pointerover",r=>{const o=s(r);o&&r.pointerType==="mouse"&&a(o,!1)}),i.addEventListener("pointerout",r=>{s(r)&&r.pointerType==="mouse"&&n()}),i.addEventListener("click",r=>{const o=s(r);o&&a(o,!0)}),i.addEventListener("focusin",r=>{const o=s(r);o&&a(o,!1)}),i.addEventListener("focusout",r=>{s(r)&&n()}),i.addEventListener("keydown",r=>{const o=s(r);o&&(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),a(o,!0))}),{off:n}}const ln='',aT=()=>{const i=[];for(const e of Gt){const t=i.at(-1);t&&t.name===e.section?t.lessons.push(e):i.push({name:e.section,lessons:[e]})}return i};function P(i,e={},...t){const n=document.createElement(i);for(const[a,s]of Object.entries(e))n.setAttribute(a,s);return n.append(...t),n}function Ue(i,e,t){const n=P(i,e);return n.innerHTML=t,n}const iT=i=>f(`element_${T[i]}`);function sT(i){return{caption:i,elements:[pe(T.anweisung,{textLines:["ø"]})]}}function _0(i){const e=i.start?T1(i.start):void 0;return e?{...e,caption:e.caption||i.title}:sT(i.title)}class rT{constructor(e){I(this,"element");I(this,"tab","lessons");I(this,"returnTo");I(this,"lessonId");I(this,"taskId");I(this,"body");I(this,"tips");I(this,"pointers");this.host=e,this.element=P("aside",{class:"learn","aria-label":f("web_learn_title")}),this.tips=$O(this.element),this.pointers=nT(this.element),Ar(y0(Bn()));const t=oe.view();t&&(this.tab=["lessons","tasks","reference"].find(n=>n===t.tab)??"lessons",this.lessonId=Gt.some(n=>n.id===t.lesson)?t.lesson:void 0,this.taskId=M1.some(n=>n.id===t.task)?t.task:void 0),this.render()}render(){this.tips.hide(),this.pointers.off(),Ar(y0(Bn()));const e=P("div",{class:"segmented learn-tabs",role:"tablist"});for(const[a,s]of[["lessons",f("web_learn_lessons")],["tasks",f("web_learn_tasks")],["reference",f("web_learn_reference")]]){const r=P("button",{role:"tab","aria-pressed":String(this.tab===a),"data-learn-tab":a},s);r.addEventListener("click",()=>{this.tab===a&&(a==="lessons"&&(this.lessonId=void 0),a==="tasks"&&(this.taskId=void 0)),this.tab=a,this.persist(),this.render()}),e.append(r)}const t=Ue("button",{class:"learn-hide",title:f("web_learn_hide"),"aria-label":f("web_learn_hide")},ln);t.addEventListener("click",()=>this.host.collapse());const n=P("div",{class:"learn-head"},e,t);if(this.body=P("div",{class:"learn-body"}),this.element.replaceChildren(n,this.body),this.tab==="lessons"){const a=Gt.find(s=>s.id===this.lessonId);a?this.renderLesson(a):this.renderLessonList()}else if(this.tab==="tasks"){const a=M1.find(s=>s.id===this.taskId);a?this.renderTask(a):this.renderTaskList()}else{const a=ei.map(s=>`- **${s.term}:** ${s.text}`).join(` -`);this.body.append(Ue("div",{class:"learn-text learn-reference"},Rn(`${Kc} + `;const e=a=>this.element.querySelector(a);this.buttons={play:e("[data-sim=play]"),pause:e("[data-sim=pause]"),step:e("[data-sim=step]"),stop:e("[data-sim=stop]")},this.buttons.play.addEventListener("click",()=>this.play()),this.buttons.pause.addEventListener("click",()=>this.pause()),this.buttons.step.addEventListener("click",()=>this.step()),this.buttons.stop.addEventListener("click",()=>this.reset()),this.editButton=e(".sim-edit"),this.editButton.addEventListener("click",()=>this.onEdit());const t=e("[data-sim=highlight]");t.value=this.highlightMode,t.addEventListener("change",()=>{this.highlightMode=t.value,S0(k0,this.highlightMode)});const n=e("[data-sim=delay]");n.value=this.delay,n.addEventListener("change",()=>{this.delay=n.value,S0(vs,this.delay)}),this.inputSection=e(".sim-input > div"),this.trace=e(".sim-trace"),this.variables=e(".sim-vars"),this.output=e(".sim-output"),this.notice=e(".sim-notice")}collectOutput(){const e=this.engine.state.outputLines;for(;this.printeds.localeCompare(r));if(n.length===0)this.variables.innerHTML=`

${xe(f("simulation_variables_placeholder"))}

`;else{const s=document.createElement("table");for(const r of n){const o=s.insertRow();o.insertCell().textContent=r;const l=e.variables.get(r),u=o.insertCell();l.kind==="grid"?u.append(rd(l)):u.textContent=ge(l)}this.variables.replaceChildren(s)}e.outputLines.length===0&&e.files.size===0?this.output.innerHTML=`

${xe(f("simulation_output_placeholder"))}

`:(this.output.replaceChildren(...e.outputLines.map(s=>{const r=document.createElement("div");return r.textContent=s,r}),...sd(e.files)),this.output.scrollTop=this.output.scrollHeight)}updateInput(){const e=this.engine.state.inputRequest,t=this.inputSection;if(t.parentElement.classList.toggle("active",!!e),!e){t.innerHTML=`

${xe(f("simulation_input_placeholder"))}

`;return}let n=t.querySelector("form");if(!n){n=document.createElement("form"),n.innerHTML=`

`;const o=n.querySelector("input");n.addEventListener("submit",l=>{l.preventDefault(),this.submitInput(o)}),t.replaceChildren(n),requestAnimationFrame(()=>o.focus())}n.querySelector(".sim-prompt").textContent=e.prompt;const a=n.querySelector("input");a.inputMode=e.valueType==="string"||e.valueType==="boolean"?"text":"decimal";const s=this.engine.state.inputErrorNotice,r=n.querySelector(".sim-input-error");r.textContent=s?e1(s):"",r.hidden=!s}}function rd(i){const e=document.createElement("table");e.className="sim-grid";for(const t of i.value){const n=e.insertRow();for(const a of t){const s=n.insertCell();s.textContent=String(a),a===!0&&(s.className="sim-grid-true")}}return e}const Un=Array.from("ABCDEFGHIJKLMNOPQRSTUVWXYZ"),Sn=360/Un.length,EO="http://www.w3.org/2000/svg";function Se(i,e={},...t){const n=document.createElement(i);for(const[a,s]of Object.entries(e))n.setAttribute(a,s);return n.append(...t),n}function Ye(i,e={},t){const n=document.createElementNS(EO,i);for(const[a,s]of Object.entries(e))n.setAttribute(a,String(s));return t!==void 0&&(n.textContent=t),n}function NO(i,e){const t=(e%26+26)%26;return Array.from(i).map(n=>{const a=n.charCodeAt(0);return a>=65&&a<=90?String.fromCharCode((a-65+t)%26+65):a>=97&&a<=122?String.fromCharCode((a-97+t)%26+97):n}).join("")}function O0(i,e){const t=Ye("g",{class:e}),n=Un.map((a,s)=>{const r=Ye("g",{transform:`rotate(${s*Sn})`});return r.append(Ye("text",{x:0,y:-i,"text-anchor":"middle","dominant-baseline":"central"},a)),t.append(r),r});return{group:t,cells:n}}function FO(i,e){let t=i,n=!1,a=-t*Sn;const s=Se("section",{class:"learn-game learn-caesar"});s.append(Se("div",{class:"learn-game-head"},Se("strong",{},f("web_learn_caesar_title")))),s.append(Se("p",{class:"learn-game-status"},f("web_learn_caesar_hint")));const r=Ye("svg",{viewBox:"-200 -200 400 400",class:"learn-caesar-disc",role:"img"});r.append(Ye("circle",{r:196,class:"outer-disc"})),r.append(Ye("path",{d:JO(196,92,Sn/2),class:"window"}));const o=O0(168,"outer-letters");r.append(o.group);for(let A=0;A{o.cells.forEach((L,R)=>L.classList.toggle("marked",R===A)),u.cells.forEach((L,R)=>L.classList.toggle("marked",A!==void 0&&R===(A+t)%26))},S=()=>{m.textContent=String(t),l.setAttribute("transform",`rotate(${a})`),r.setAttribute("aria-label",f("web_learn_caesar_key_fmt",t)),b.textContent=f(n?"web_learn_caesar_secret":"web_learn_caesar_plain"),w.textContent=f(n?"web_learn_caesar_plain":"web_learn_caesar_secret"),p.classList.toggle("active",!n),x.classList.toggle("active",n),v.textContent=NO(y.value,n?-t:t)||" ";const A=Array.from(y.value.toUpperCase()).reverse().find(R=>Un.includes(R));if(A===void 0)return k();const L=Un.indexOf(A);k(n?(L-t+26)%26:L)},O=A=>{t=(A%26+26)%26,a=-t*Sn,S()};c.addEventListener("click",()=>O(t-1)),d.addEventListener("click",()=>O(t+1)),p.addEventListener("click",()=>{var A;n&&(y.value=((A=v.textContent)==null?void 0:A.trim())??""),n=!1,S()}),x.addEventListener("click",()=>{var A;n||(y.value=((A=v.textContent)==null?void 0:A.trim())??""),n=!0,S()}),y.addEventListener("input",S),o.cells.forEach((A,L)=>A.addEventListener("click",()=>k(L)));let _;const Z=A=>{const L=r.getBoundingClientRect();return Math.atan2(A.clientY-(L.top+L.height/2),A.clientX-(L.left+L.width/2))*180/Math.PI};l.addEventListener("pointerdown",A=>{const L=A;_=Z(L)-a,l.classList.add("dragging"),r.setPointerCapture(L.pointerId),L.preventDefault()}),r.addEventListener("pointermove",A=>{if(_===void 0)return;a=Z(A)-_,l.setAttribute("transform",`rotate(${a})`);const L=Math.round(-a/Sn);if((L%26+26)%26!==t){t=(L%26+26)%26;const R=a;S(),a=R,l.setAttribute("transform",`rotate(${a})`)}});const j=()=>{_!==void 0&&(_=void 0,l.classList.remove("dragging"),O(t))};return r.addEventListener("pointerup",j),r.addEventListener("pointercancel",j),S(),s}function JO(i,e,t){const n=(a,s)=>{const r=(s-90)*Math.PI/180;return`${(a*Math.cos(r)).toFixed(2)} ${(a*Math.sin(r)).toFixed(2)}`};return`M ${n(i,-t)} A ${i} ${i} 0 0 1 ${n(i,t)} L ${n(e,t)} A ${e} ${e} 0 0 0 ${n(e,-t)} Z`}function H(i,e={},...t){const n=document.createElement(i);for(const[a,s]of Object.entries(e))n.setAttribute(a,s);return n.append(...t),n}function In(i,e,t){const n=H(i,e);return n.innerHTML=je(t),n}const T0=1100;function GO(i,e){const t=H("section",{class:`learn-game learn-round-game ${i.kind}`}),n=H("div",{class:"learn-game-head"});n.append(H("img",{src:e,alt:"",width:"40",height:"40"}),H("strong",{},i.title));const a=H("p",{class:"learn-game-status"}),s=H("div",{class:"learn-game-stage"});t.append(n,a,s);const r=i.rounds.length;let o=0,l=0,u=[];const m=()=>{u.forEach(y=>{window.clearTimeout(y),window.clearInterval(y)}),u=[]},c=()=>{a.textContent=`${f("web_game_round_fmt",o+1,r)} · ${f("web_game_score_fmt",l)}`},d=()=>{const y=H("button",{class:"primary"},o+1{o++,o{const y=i.rounds[o],w=i.seconds,v=H("div",{class:"learn-bomb-fuse"},H("span",{})),z=H("span",{class:"learn-bomb-time"}),k=H("div",{class:"learn-bomb","aria-live":"polite"},H("span",{class:"learn-bomb-icon","aria-hidden":"true"},"💣"),z,v),S=H("div",{class:"learn-game-feedback",role:"status"}),O=y.code.split(` +`).map((R,X)=>{const he=H("button",{class:"ln",type:"button"},R||" ");return he.disabled=!R.trim(),he.addEventListener("click",()=>A(X+1===y.wrongLine?"right":"wrong",he)),he}),_=H("div",{class:"learn-game-code learn-bomb-code mono",dir:"ltr"},...O),Z=Date.now(),j=()=>{if(!t.isConnected&&Date.now()-Z>1e3)return m();const R=Math.max(0,w-(Date.now()-Z)/1e3);z.textContent=f("web_game_time_fmt",Math.ceil(R)),v.firstChild.style.width=`${R/w*100}%`,k.classList.toggle("hurry",R<=5),R<=0&&A("time")},A=(R,X)=>{m(),O.forEach((wn,Lt)=>{wn.disabled=!0,Lt+1===y.wrongLine&&wn.classList.add("right")}),X&&R==="wrong"&&X.classList.add("wrong");const he=R==="right";he&&l++,c(),k.classList.add(he?"defused":"boom"),k.firstChild.textContent=he?"✂️":"💥",S.className=`learn-game-feedback ${he?"right":"wrong"}`;const Kt=d();S.replaceChildren(H("p",{},f(he?"web_game_defused":R==="time"?"web_game_boom_time":"web_game_boom_wrong")),In("div",{class:"learn-game-explain"},y.explanation),H("p",{class:"learn-bomb-fix"},`${f("web_game_fix")} `,H("code",{},y.fix.trim())),Kt),Kt.focus({preventScroll:!0})};s.replaceChildren(k,In("p",{class:"learn-game-question"},y.question),_,S),j();const L=window.setInterval(j,200);u.push(L)},g=()=>{const y=i.rounds[o],w=[];y.code.trim()&&w.push(A0(y.code).element),w.push(In("p",{class:"learn-game-question"},y.question),H("p",{class:"learn-order-hint"},f("web_game_order_hint")));const v=H("div",{class:"learn-game-options learn-order"}),z=H("div",{class:"learn-game-feedback",role:"status"});let k=0;const S=RO(y.options.length).map(_=>{const Z=H("span",{class:"learn-order-badge","aria-hidden":"true"}),j=H("span",{});j.innerHTML=je(y.options[_].text);const A=H("button",{},Z,j);return A.addEventListener("click",()=>{if(_!==k)return A.classList.add("wrong"),O(!1);A.classList.add("right"),Z.textContent=String(++k),A.disabled=!0,k===y.options.length&&O(!0)}),v.append(A),{k:_,b:A,badge:Z}}),O=_=>{for(const{k:j,b:A,badge:L}of[...S].sort((R,X)=>R.k-X.k))A.disabled=!0,L.textContent=String(j+1),v.append(A);_&&l++,c(),z.className=`learn-game-feedback ${_?"right":"wrong"}`;const Z=d();z.replaceChildren(H("p",{},f(_?"web_game_right":"web_game_wrong_short")),In("div",{class:"learn-game-explain"},y.explanation),Z),Z.focus({preventScroll:!0})};s.replaceChildren(...w,v,z)},p=()=>{if(m(),i.kind==="bombe"||i.kind==="reihenfolge"){c(),i.kind==="bombe"?h():g();return}const y=i.rounds[o];c();const w=A0(y.code),v=[];let z;i.kind==="zuhoerer"?(z=HO(Vc(y.code),w),v.push(H("div",{class:"learn-swing-row"},w.element,z.element)),y.clicks.length&&v.push(H("p",{class:"learn-swing-clicks"},`${f("web_game_clicks")} `,...y.clicks.flatMap((Z,j)=>[...j?[" → "]:[],H("code",{},Z)])))):y.code.trim()&&v.push(w.element),v.push(In("p",{class:"learn-game-question"},y.question));const k=H("div",{class:`learn-game-options ${i.kind==="layout"?"pictures":""}`}),S=H("div",{class:"learn-game-feedback",role:"status"}),O=y.options.map(Z=>{const j=H("button",{});return i.kind==="layout"?j.append(VO(Z.text)):Z.text.includes(` +`)?j.append(QO(Z.text)):j.innerHTML=je(Z.text),j.addEventListener("click",()=>_(Z.right,j)),k.append(j),j}),_=(Z,j)=>{O.forEach((L,R)=>{L.disabled=!0,y.options[R].right&&L.classList.add("right")}),Z||j.classList.add("wrong"),Z&&l++,c(),S.className=`learn-game-feedback ${Z?"right":"wrong"}`;const A=d();S.replaceChildren(H("p",{},f(Z?"web_game_right":"web_game_wrong_short")),In("div",{class:"learn-game-explain"},y.explanation)),S.append(A),z&&(u=z.replay(y.clicks,()=>A.before(H("p",{class:"learn-swing-try"},f("web_game_try"))))),A.focus({preventScroll:!0})};s.replaceChildren(...v,k,S)},x=()=>{m(),a.textContent="";const y=H("button",{class:"primary"},f("web_game_again"));y.addEventListener("click",()=>{o=l=0,p()}),s.replaceChildren(H("p",{class:"learn-game-result"},f("web_game_done_fmt",l,r)),H("p",{},f(l===r?"web_game_perfect":l>=r*.7?"web_game_good":"web_game_practice_short")),y)},b=H("button",{class:"primary"},f("web_game_start"));return b.addEventListener("click",p),s.append(In("p",{},i.intro),b),t}function RO(i){const e=[...Array(i).keys()];for(;e.every((t,n)=>t===n);)for(let t=i-1;t>0;t--){const n=Math.floor(Math.random()*(t+1));[e[t],e[n]]=[e[n],e[t]]}return e}function A0(i){const e=i.split(` +`).map(n=>H("div",{class:"ln"},n||" "));return{element:H("pre",{class:"learn-game-code mono",dir:"ltr"},...e),highlight(n,a){e.forEach((s,r)=>s.classList.toggle("hit",n!==void 0&&r>=n&&r<=(a??n)))}}}function HO(i,e){const t=qc(i),n=H("div",{class:"learn-swing-window",dir:"ltr"});n.append(H("div",{class:"learn-swing-title"},i.title||" "));const a=H("div",{class:"learn-swing-body"}),s=new Map;for(const c of i.labels){const d=H("div",{class:"learn-swing-label"},t.texts[c.name]);s.set(c.name,d),a.append(d)}const r=i.buttons.map(c=>{const d=H("button",{class:"learn-swing-button",disabled:""},t.texts[c.name]);return s.set(c.name,d),a.append(d),d}),o=H("p",{class:"learn-swing-event",role:"status"}),l=H("pre",{class:"learn-swing-console mono",hidden:""});n.append(a,o,l);const u=c=>{var h,g;const d=s.get(c.button);d.classList.add("pressed"),window.setTimeout(()=>d.classList.remove("pressed"),350),e.highlight((h=c.listener)==null?void 0:h.from,(g=c.listener)==null?void 0:g.to),o.textContent=c.listener?f("web_game_event_fmt",d.textContent??""):f("web_game_nobody"),o.className=`learn-swing-event ${c.listener?"heard":"nobody"}`;for(const[p,x]of Object.entries(c.texts)){const b=s.get(p);b&&b.textContent!==x&&(b.textContent=x,b.classList.remove("changed"),b.offsetWidth,b.classList.add("changed"))}c.console.length&&(l.hidden=!1,l.textContent+=c.console.map(p=>`${p} +`).join(""))},m=c=>u(Uc(i,t,c));return{element:n,replay(c,d){const h=c.map((g,p)=>window.setTimeout(()=>m(g),(p+.3)*T0));return h.push(window.setTimeout(()=>{i.buttons.forEach((g,p)=>{r[p].disabled=!1,r[p].addEventListener("click",()=>u($c(i,t,g.name)))}),d()},(c.length+.3)*T0)),h}}}function QO(i){return H("pre",{class:"learn-game-file mono",dir:"ltr"},i)}function VO(i){const e=Qc(i),t=H("div",{class:"learn-layout-window",dir:"ltr"},H("div",{class:"learn-layout-title"})),n=H("div",{class:`learn-layout-body ${e.kind}`}),a=(s,r)=>H("span",{class:"learn-layout-cell",...r?{style:`grid-area:${r}`}:{}},s);if(e.kind==="border")for(const[s,r]of Object.entries(e.areas))n.append(a(r,s));else if(e.kind==="grid"){const s=Math.max(...e.rows.map(r=>r.length));n.style.gridTemplateColumns=`repeat(${s}, 1fr)`;for(const r of e.rows)for(let o=0;oa(r))));return t.append(n),t}function F(i,e={},...t){const n=document.createElement(i);for(const[a,s]of Object.entries(e))n.setAttribute(a,s);return n.append(...t),n}function sn(i,e,t){const n=F(i,e);return n.innerHTML=je(t),n}function P0(i){return F("pre",{class:"learn-game-code mono",dir:"ltr"},...i.split(` +`).map(e=>F("div",{class:"ln"},e||" ")))}function qO(i,e){const t=F("section",{class:"learn-game learn-rescue"}),n=F("div",{class:"learn-game-head"});n.append(F("img",{src:e,alt:"",width:"40",height:"40"}),F("strong",{},i.title));const a=i.stations.length,s=i.stations.map(()=>F("span",{class:"learn-rescue-dot"})),r=F("img",{class:"learn-rescue-ludwig",src:e,alt:"",width:"32",height:"32"}),o=F("span",{class:"learn-rescue-tower","aria-hidden":"true"},"🏰",F("span",{class:"learn-rescue-zora"},"🐐"),F("span",{class:"learn-rescue-fox"},"🦊")),l=F("span",{class:"learn-rescue-free"},"🐐"),u=F("div",{class:"learn-rescue-path","aria-hidden":"true"},r,...s,o),m=F("p",{class:"learn-game-status"}),c=F("div",{class:"learn-game-stage"}),d=UO(i);t.append(n,u,m,c);let h=0;const g=()=>{s.forEach((z,k)=>z.classList.toggle("done",k{const z=[...i.alphabet].map((k,S)=>F("span",{class:"learn-rescue-letter"},F("b",{},k),F("small",{},String(S))));return{element:F("div",{class:"learn-rescue-alphabet mono",dir:"ltr"},...z),cells:z}},x=z=>{const k=i.stations[z];m.textContent=f("web_learn_rescue_station_fmt",z+1,a,k.name);const S=p(),O=F("input",{type:"text",inputmode:"numeric",autocomplete:"off",class:"learn-rescue-number mono","aria-label":f("web_learn_rescue_number")}),_=F("button",{class:"primary"},f("web_learn_check")),Z=F("div",{class:"learn-game-feedback",role:"status"}),j=()=>{const A=O.value.trim();if(!/^-?\d+$/.test(A)){Z.className="learn-game-feedback wrong",Z.replaceChildren(F("p",{},f("web_learn_rescue_not_number")));return}if(Number(A)!==k.answer){Z.className="learn-game-feedback wrong",Z.replaceChildren(F("p",{},f("web_learn_rescue_wrong")),...k.hint?[sn("div",{class:"learn-game-explain"},`**${f("web_learn_hint")}:** ${k.hint}`)]:[]),O.select();return}O.disabled=_.disabled=!0;const L=i.alphabet.charAt(k.answer);S.cells[k.answer].classList.add("hit"),d.give(k.row,k.col,L),h++,g();const R=z+1===a,X=F("button",{class:"primary"},f(R?"web_learn_rescue_to_crossword":"web_game_next"));X.addEventListener("click",()=>R?b():x(z+1)),Z.className="learn-game-feedback right",Z.replaceChildren(F("p",{},f("web_game_right")),F("p",{class:"learn-rescue-charat mono",dir:"ltr"},`alphabet.charAt(${k.answer})`,F("span",{"aria-hidden":"true"}," → "),F("code",{},`'${L}'`)),sn("div",{class:"learn-game-explain"},k.explanation),F("p",{class:"learn-rescue-moved"},f("web_learn_rescue_letter_moved")),X),X.focus({preventScroll:!0})};_.addEventListener("click",j),O.addEventListener("keydown",A=>{A.key==="Enter"&&j()}),c.replaceChildren(P0(k.code),sn("p",{class:"learn-game-question"},k.question),F("div",{class:"learn-rescue-answer"},O,_),Z,F("p",{class:"learn-rescue-label"},f("web_learn_rescue_alphabet")),P0(`String alphabet = "${i.alphabet}";`),S.element,d.element),O.focus({preventScroll:!0})},b=()=>{m.textContent=f("web_learn_rescue_crossword");const z=F("div",{class:"learn-game-feedback",role:"status"}),k=F("button",{class:"primary"},f("web_learn_check"));k.addEventListener("click",()=>{if(!d.check()){z.className="learn-game-feedback wrong",z.replaceChildren(F("p",{},f("web_learn_rescue_cw_wrong")));return}k.disabled=!0,d.lock();const S=F("button",{class:"primary"},f("web_learn_rescue_to_gate"));S.addEventListener("click",y),z.className="learn-game-feedback right",z.replaceChildren(F("p",{},f("web_learn_rescue_cw_done")),S),S.focus({preventScroll:!0})}),d.unlock(),c.replaceChildren(sn("p",{},i.crosswordText),d.element,k,z),d.focusFirst()},y=()=>{m.textContent=f("web_learn_rescue_gate");const z=F("input",{type:"text",autocomplete:"off",autocapitalize:"off",spellcheck:"false",class:"learn-rescue-word mono",size:String(i.keyword.length+2),"aria-label":f("web_learn_rescue_word")}),k=i.gateCode.split(` +`).map(Z=>{const j=Z.indexOf(zi);return j<0?F("div",{class:"ln"},Z||" "):F("div",{class:"ln"},Z.slice(0,j),z,Z.slice(j+zi.length))}),S=F("button",{class:"primary"},f("web_learn_rescue_open")),O=F("div",{class:"learn-game-feedback",role:"status"}),_=()=>{const Z=z.value.trim();if(Z!==i.keyword){const A=Z.toUpperCase()===i.keyword.toUpperCase();O.className="learn-game-feedback wrong",O.replaceChildren(F("p",{},f(A?"web_learn_rescue_gate_case":"web_learn_rescue_gate_wrong"))),z.select();return}z.disabled=S.disabled=!0,t.classList.add("freed"),r.after(l),m.textContent="";const j=F("button",{},f("web_game_again"));j.addEventListener("click",w),O.className="learn-game-feedback right",O.replaceChildren(F("p",{},f("web_learn_rescue_freed")),sn("div",{class:"learn-game-explain"},i.end),j)};S.addEventListener("click",_),z.addEventListener("keydown",Z=>{Z.key==="Enter"&&_()}),c.replaceChildren(sn("p",{},i.gateText),F("div",{class:"learn-game-code mono learn-rescue-gate",dir:"ltr"},...k),S,O),z.focus({preventScroll:!0})},w=()=>{h=0,t.classList.remove("freed"),l.remove(),d.reset(),g(),x(0)},v=F("button",{class:"primary"},f("web_game_start"));return v.addEventListener("click",w),c.append(sn("p",{},i.intro),v),t}function UO(i){const e=hO(i),t=new Map(i.solution.map((g,p)=>[`${g.row} ${g.col}`,p])),n=new Map;for(const g of i.words)n.set(`${g.row} ${g.col}`,g.number);const a=new Map,s=F("div",{class:"learn-cw-grid",dir:"ltr"});s.style.gridTemplateColumns=`repeat(${i.cols}, var(--cw-cell))`;let r=!0;const o=(g,p)=>i.words.filter(x=>x.across?x.row===g&&p>=x.col&&p=x.row&&g{var y;const b=r?`${g} ${p+x}`:`${g+x} ${p}`;(y=a.get(b))==null||y.focus()};e.forEach((g,p)=>g.forEach((x,b)=>{if(!x)return s.append(F("span",{class:"learn-cw-empty"}));const y=`${p} ${b}`,w=F("input",{type:"text",maxlength:"1",autocomplete:"off",autocapitalize:"characters",spellcheck:"false","aria-label":f("web_learn_rescue_cell_fmt",p+1,b+1)});w.disabled=!0,w.addEventListener("focus",()=>{const S=o(p,b);S.some(O=>O.across===r)||(r=S[0].across),w.select()}),w.addEventListener("input",()=>{w.value=w.value.slice(-1).toUpperCase(),w.classList.remove("wrong"),c(),w.value&&l(p,b,1)}),w.addEventListener("keydown",S=>{if(S.key==="Backspace"&&!w.value)l(p,b,-1);else if(S.key==="ArrowRight"||S.key==="ArrowLeft")r=!0,l(p,b,S.key==="ArrowRight"?1:-1);else if(S.key==="ArrowDown"||S.key==="ArrowUp")r=!1,l(p,b,S.key==="ArrowDown"?1:-1);else return;S.preventDefault()}),a.set(y,w);const v=t.get(y),z=F("span",{class:`learn-cw-cell${v!==void 0?" key":""}`}),k=n.get(y);k&&z.append(F("small",{class:"learn-cw-number"},String(k))),v!==void 0&&z.append(F("small",{class:"learn-cw-keyindex"},String(v+1))),z.append(w),s.append(z)}));const u=g=>{const p=F("ol",{class:"learn-cw-clues"});for(const x of i.words.filter(b=>b.across===g).sort((b,y)=>b.number-y.number)){const b=sn("li",{value:String(x.number)},`${x.clue} (${x.word.length})`);b.addEventListener("click",()=>{var y;r=x.across,(y=a.get(`${x.row} ${x.col}`))==null||y.focus()}),p.append(b)}return F("div",{},F("strong",{},f(g?"web_learn_rescue_across":"web_learn_rescue_down")),p)},m=i.solution.map(()=>F("span",{class:"learn-cw-keybox"})),c=()=>i.solution.forEach((g,p)=>m[p].textContent=a.get(`${g.row} ${g.col}`).value||" "),d=F("div",{class:"learn-cw"},F("div",{class:"learn-cw-board"},s,F("p",{class:"learn-cw-keyword"},`${f("web_learn_rescue_keyword")} `,F("span",{class:"mono",dir:"ltr"},...m))),F("div",{class:"learn-cw-cluebox"},u(!0),u(!1))),h=new Set;return{element:d,give(g,p,x){const b=a.get(`${g} ${p}`);b.value=x,b.parentElement.classList.add("given","arrived"),h.add(`${g} ${p}`),c()},unlock(){for(const[g,p]of a)p.disabled=h.has(g)},lock(){for(const g of a.values())g.disabled=!0},focusFirst(){var g;(g=[...a].find(([p])=>!h.has(p)))==null||g[1].focus({preventScroll:!0})},check(){let g=!0;for(const[p,x]of a){const[b,y]=p.split(" ").map(Number),w=x.value!==e[b][y];x.classList.toggle("wrong",w),w&&(g=!1)}return g},reset(){h.clear();for(const g of a.values())g.value="",g.disabled=!0,g.classList.remove("wrong"),g.parentElement.classList.remove("given","arrived");c()}}}function it(i,e={},...t){const n=document.createElement(i);for(const[a,s]of Object.entries(e))n.setAttribute(a,s);return n.append(...t),n}function j0(i,e,t){const n=it(i,e);return n.innerHTML=je(t),n}function $O(i){const e=it("section",{class:"learn-cloze"});e.append(it("strong",{class:"learn-cloze-title"},i.title)),i.task&&e.append(j0("p",{},i.task)),e.append(it("p",{class:"learn-cloze-hint"},f("web_learn_cloze_hint")));const t=[];for(const m of i.blocks){const c=it("pre",{class:"learn-cloze-code mono",dir:"ltr"});for(const d of m){const h=it("div",{class:"ln"});for(const g of d){if(typeof g=="string"){h.append(g);continue}const p=it("input",{type:"text",class:"learn-cloze-gap mono",autocomplete:"off",autocapitalize:"off",autocorrect:"off",spellcheck:"false",enterkeyhint:"done","aria-label":`${t.length+1}`});p.style.width=`${Math.max(3,...g.answers.map(x=>x.length))+1}ch`,t.push({input:p,answers:g.answers}),h.append(p)}d.length||h.append(` +`),c.append(h)}e.append(c)}const n=it("p",{class:"learn-cloze-status",role:"status"}),a=i.explanation?j0("p",{class:"learn-explanation"},i.explanation):void 0;a&&(a.hidden=!0);const s=it("button",{class:"learn-cloze-check"},f("web_learn_check")),r=it("button",{},f("web_learn_cloze_solution")),o=it("button",{},f("web_learn_cloze_again"));r.hidden=!0,o.hidden=!0;const l=it("div",{class:"learn-cloze-actions"},s,r,o);e.append(l,n),a&&e.append(a);const u=()=>{var d;let m=0;for(const h of t){const g=yO(h.answers,h.input.value);h.input.classList.toggle("right",g),h.input.classList.toggle("wrong",!g),g&&m++}const c=m===t.length;n.textContent=c?f("web_learn_cloze_all_right"):f("web_learn_cloze_score_fmt",m,t.length),n.className=`learn-cloze-status ${c?"right":"wrong"}`,a&&(a.hidden=!c),c?(t.forEach(h=>h.input.disabled=!0),s.hidden=!0,o.hidden=!1):(r.hidden=!1,(d=t.find(h=>h.input.classList.contains("wrong")))==null||d.input.focus())};return s.addEventListener("click",u),r.addEventListener("click",()=>{for(const m of t)m.input.value=m.answers[0],m.input.classList.remove("right","wrong"),m.input.classList.add("shown"),m.input.disabled=!0;n.textContent="",n.className="learn-cloze-status",a&&(a.hidden=!1),s.hidden=!0,r.hidden=!0,o.hidden=!1}),o.addEventListener("click",()=>{var m;for(const c of t)c.input.value="",c.input.classList.remove("right","wrong","shown"),c.input.disabled=!1;n.textContent="",n.className="learn-cloze-status",a&&(a.hidden=!0),s.hidden=!1,r.hidden=!0,o.hidden=!0,(m=t[0])==null||m.input.focus()}),t.forEach((m,c)=>{m.input.addEventListener("input",()=>m.input.classList.remove("right","wrong")),m.input.addEventListener("keydown",d=>{d.key==="Enter"&&(d.preventDefault(),c[...o.querySelectorAll("strong")])){const o=f0(e),l=o==null?void 0:o.exec(r.textContent??""),u=l?x0(e,l[0]):void 0;u&&n.add(u)}let a=e.filter(r=>!n.has(r));for(const r of t){const o=document.createTreeWalker(r,NodeFilter.SHOW_TEXT),l=[];for(;o.nextNode();){const u=o.currentNode;(s=u.parentElement)!=null&&s.closest(YO)||l.push(u)}for(let u of l)for(;;){const m=f0(a),c=m==null?void 0:m.exec(u.data),d=c?x0(a,c[0]):void 0;if(!c||!d)break;const h=u.splitText(c.index);u=h.splitText(c[0].length);const g=document.createElement("span");g.className="term",g.tabIndex=0,g.setAttribute("role","button"),g.setAttribute("aria-describedby","term-tip"),g.dataset.term=d.term,g.dataset.text=d.text,h.replaceWith(g),g.append(h),a=a.filter(p=>p!==d)}}}function XO(i){const e=document.createElement("div");e.id="term-tip",e.className="term-tip",e.setAttribute("role","tooltip"),e.hidden=!0,document.body.append(e);let t,n=!1;const a=o=>{t=o,e.replaceChildren();const l=document.createElement("strong");l.textContent=o.dataset.term??"",e.append(l,document.createTextNode(" "+(o.dataset.text??""))),e.hidden=!1;const u=o.getBoundingClientRect(),m=e.offsetWidth,c=e.offsetHeight,d=Math.max(8,Math.min(u.left,window.innerWidth-m-8)),h=u.bottom+6;e.style.left=`${d}px`,e.style.top=`${h+c>window.innerHeight-8?Math.max(8,u.top-c-6):h}px`,o.setAttribute("aria-expanded","true")},s=()=>{t==null||t.setAttribute("aria-expanded","false"),t=void 0,n=!1,e.hidden=!0},r=o=>{var l,u;return((u=(l=o.target)==null?void 0:l.closest)==null?void 0:u.call(l,".term"))??void 0};return i.addEventListener("pointerover",o=>{const l=r(o);l&&o.pointerType==="mouse"&&!n&&a(l)}),i.addEventListener("pointerout",o=>{r(o)&&o.pointerType==="mouse"&&!n&&s()}),i.addEventListener("click",o=>{const l=r(o);if(l){if(n&&t===l)return s();a(l),n=!0}}),i.addEventListener("focusin",o=>{const l=r(o);l&&!n&&a(l)}),i.addEventListener("focusout",o=>{r(o)&&!n&&s()}),i.addEventListener("keydown",o=>{const l=r(o);o.key==="Escape"&&t?s():l&&(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),l.click())}),i.addEventListener("scroll",s,!0),document.addEventListener("pointerdown",o=>{t&&!r(o)&&!e.contains(o.target)&&s()}),{hide:s}}const od={leiste:".topbar > .toolbar",werkzeuge:".diagram-tools",dateien:".files-rail, .files",codelive:".live-rail, .livecode",ausfuehren:"[data-run=play]",konsole:".livecode .console",einzelschritt:"[data-run=step]",elemente:".palette",struktogramm:".canvas",objektinspektor:".inspector",reiter:".tabs",titel:".caption",neu:"[data-action=new]",oeffnen:"[data-action=open]",speichern:"[data-action=save]",exportieren:"[data-action=export]",rueckgaengig:"[data-action=undo]",textgroesse:"[data-action=settings]",einstellungen:"[data-action=settings]",lernen:".learn .learn-hide",code:"[data-action=code]",simulation:"[data-action=simulate]"},KO=new Set(["werkzeuge","elemente","struktogramm","objektinspektor","reiter","titel","rueckgaengig","exportieren","code","simulation"]),eT=new Set(["ausfuehren","konsole","einzelschritt"]);function Yo(i,e){return[...i.querySelectorAll(".ui-pointer")].some(t=>e.has(t.dataset.target??""))}function tT(i){return Yo(i,new Set(["dateien"]))}function nT(i){return Yo(i,KO)}function aT(i){return Yo(i,eT)}function _0(i){for(const e of i.querySelectorAll('a[href^="#zeige-"]')){const t=e.getAttribute("href").slice(7);if(!(t in od))continue;const n=document.createElement("span");n.className="ui-pointer",n.tabIndex=0,n.setAttribute("role","button"),n.dataset.target=t,n.append(...e.childNodes),e.replaceWith(n)}}function iT(i){let e,t;const n=()=>{e==null||e.classList.remove("ui-spot"),e=void 0,window.clearTimeout(t)},a=(r,o)=>{n();const l=[...document.querySelectorAll(od[r.dataset.target??""]??":not(*)")].find(u=>u.getClientRects().length>0);l&&(e=l,l.classList.add("ui-spot"),o&&(t=window.setTimeout(n,2500)))},s=r=>{var o,l;return((l=(o=r.target)==null?void 0:o.closest)==null?void 0:l.call(o,".ui-pointer"))??void 0};return i.addEventListener("pointerover",r=>{const o=s(r);o&&r.pointerType==="mouse"&&a(o,!1)}),i.addEventListener("pointerout",r=>{s(r)&&r.pointerType==="mouse"&&n()}),i.addEventListener("click",r=>{const o=s(r);o&&a(o,!0)}),i.addEventListener("focusin",r=>{const o=s(r);o&&a(o,!1)}),i.addEventListener("focusout",r=>{s(r)&&n()}),i.addEventListener("keydown",r=>{const o=s(r);o&&(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),a(o,!0))}),{off:n}}const ln='',sT=()=>{const i=[];for(const e of Gt){const t=i.at(-1);t&&t.name===e.section?t.lessons.push(e):i.push({name:e.section,lessons:[e]})}return i};function P(i,e={},...t){const n=document.createElement(i);for(const[a,s]of Object.entries(e))n.setAttribute(a,s);return n.append(...t),n}function Ue(i,e,t){const n=P(i,e);return n.innerHTML=t,n}const rT=i=>f(`element_${T[i]}`);function oT(i){return{caption:i,elements:[pe(T.anweisung,{textLines:["ø"]})]}}function Z0(i){const e=i.start?T1(i.start):void 0;return e?{...e,caption:e.caption||i.title}:oT(i.title)}class lT{constructor(e){I(this,"element");I(this,"tab","lessons");I(this,"returnTo");I(this,"lessonId");I(this,"taskId");I(this,"body");I(this,"tips");I(this,"pointers");this.host=e,this.element=P("aside",{class:"learn","aria-label":f("web_learn_title")}),this.tips=XO(this.element),this.pointers=iT(this.element),Ar(v0(Bn()));const t=oe.view();t&&(this.tab=["lessons","tasks","reference"].find(n=>n===t.tab)??"lessons",this.lessonId=Gt.some(n=>n.id===t.lesson)?t.lesson:void 0,this.taskId=M1.some(n=>n.id===t.task)?t.task:void 0),this.render()}render(){this.tips.hide(),this.pointers.off(),Ar(v0(Bn()));const e=P("div",{class:"segmented learn-tabs",role:"tablist"});for(const[a,s]of[["lessons",f("web_learn_lessons")],["tasks",f("web_learn_tasks")],["reference",f("web_learn_reference")]]){const r=P("button",{role:"tab","aria-pressed":String(this.tab===a),"data-learn-tab":a},s);r.addEventListener("click",()=>{this.tab===a&&(a==="lessons"&&(this.lessonId=void 0),a==="tasks"&&(this.taskId=void 0)),this.tab=a,this.persist(),this.render()}),e.append(r)}const t=Ue("button",{class:"learn-hide",title:f("web_learn_hide"),"aria-label":f("web_learn_hide")},ln);t.addEventListener("click",()=>this.host.collapse());const n=P("div",{class:"learn-head"},e,t);if(this.body=P("div",{class:"learn-body"}),this.element.replaceChildren(n,this.body),this.tab==="lessons"){const a=Gt.find(s=>s.id===this.lessonId);a?this.renderLesson(a):this.renderLessonList()}else if(this.tab==="tasks"){const a=M1.find(s=>s.id===this.taskId);a?this.renderTask(a):this.renderTaskList()}else{const a=ei.map(s=>`- **${s.term}:** ${s.text}`).join(` +`);this.body.append(Ue("div",{class:"learn-text learn-reference"},Rn(`${ed} ### ${f("web_learn_terms")} -${a}`)))}}persist(){oe.setView({tab:this.tab,lesson:this.lessonId,task:this.taskId})}openLesson(e){this.tab="lessons",this.lessonId=e,this.returnTo=void 0,this.persist(),this.render(),this.body.scrollTop=0}renderLessonList(){this.body.append(P("p",{class:"hint"},f("web_learn_intro")));for(const e of aT()){this.body.append(P("h3",{class:"learn-section"},e.name));const t=P("ol",{class:"learn-list"});for(const n of e.lessons){const a=oe.lesson(n.id),s=a.done?"✓":a.step>0?f("web_learn_step_of_fmt",a.step+1,n.steps.length):"",r=P("button",{class:"learn-item"+(a.done?" done":""),"data-lesson":n.id},P("span",{class:"learn-num"},String(n.number)),P("span",{class:"learn-item-text"},P("strong",{},n.title),P("small",{},n.summary)),P("span",{class:"learn-status"},s));r.addEventListener("click",()=>this.openLesson(n.id)),t.append(P("li",{},r))}this.body.append(t)}this.body.append(this.renderTeacherBox())}renderLesson(e){var c;const t=oe.lesson(e.id),n=Math.min(t.step,e.steps.length-1),a=e.steps[n],s=P("button",{class:"learn-back"},`← ${f("web_learn_all_lessons")}`);s.addEventListener("click",()=>this.openLesson(void 0));const r=P("nav",{class:"learn-progress","aria-label":f("web_learn_step_of_fmt",n+1,e.steps.length)});r.append(...e.steps.map((d,h)=>{const g=f("web_learn_step_fmt",h+1,d.title),p=P("button",{class:hthis.goToStep(e,h)),p})),this.body.append(s,P("p",{class:"learn-kicker"},`${f("web_learn_lesson_fmt",e.number)} · ${e.section}`),P("h2",{class:"learn-title"},P("span",{class:"learn-num","aria-hidden":"true"},String(e.number)),e.title),r,P("h3",{class:"learn-step-title"},`${n+1}. ${a.title}`));const o=((c=this.returnTo)==null?void 0:c.lesson)===e.id&&this.returnTo.step!==n?this.returnTo:void 0,l=()=>{const d=P("button",{class:"learn-return"},`↩ ${f("web_learn_back_to_checklist")}`);return d.addEventListener("click",()=>{this.returnTo=void 0,this.goToStep(e,o.step),this.body.scrollTop=o.scroll}),d};o&&this.body.append(l()),a.blocks.forEach((d,h)=>this.body.append(this.renderBlock(d,`${n}-${h}`,e))),C0(this.body),this.openNeededColumns(a.blocks),j0(this.body,ei);const u=P("div",{class:"learn-nav"}),m=P("button",{},`← ${f("web_learn_back")}`);if(m.disabled=n===0,m.addEventListener("click",()=>this.goToStep(e,n-1)),u.append(m),nthis.goToStep(e,n+1)),u.append(d)}else{const d=P("button",{class:"primary"},t.done?`✓ ${f("web_learn_done")}`:f("web_learn_finish"));d.addEventListener("click",()=>{oe.updateLesson(e.id,{done:!0});const h=Gt.find(g=>g.number===e.number+1);this.openLesson(h==null?void 0:h.id)}),u.append(d)}this.body.append(u),o&&this.body.append(l())}goToStep(e,t){oe.updateLesson(e.id,{step:t}),this.render(),this.body.scrollTop=0}openNeededColumns(e){const t=e.flatMap(n=>n.kind==="exercise"?[n.exercise]:[]);eT(this.body)?this.host.showEditor():KO(this.body)?this.host.showFiles():t.some(n=>n.code!=="java")?this.host.showEditor():(t.length>0||this.body.querySelector(".lesson-code[data-lang=java]"))&&this.host.showJava(),tT(this.body)&&this.host.showLiveCode()}renderTaskList(){this.body.append(P("p",{class:"hint"},f("web_learn_tasks_intro")));const e=P("ul",{class:"learn-list"});for(const t of M1){const n=this.taskExercises(t),a=n.length>0&&n.every(o=>oe.exercise(o.id).done),s=Gt.find(o=>o.number===t.after),r=P("button",{class:"learn-item"+(a?" done":""),"data-task":t.id},P("span",{class:"learn-num","aria-label":f("web_learn_level_fmt",t.level)},"★".repeat(t.level)),P("span",{class:"learn-item-text"},P("strong",{},t.title),P("small",{},s?f("web_learn_after_fmt",s.number,s.title):"")),P("span",{class:"learn-status"},a?"✓":""));r.addEventListener("click",()=>{this.taskId=t.id,this.persist(),this.render(),this.body.scrollTop=0}),e.append(P("li",{},r))}this.body.append(e,this.renderTeacherBox())}renderTeacherBox(){const e=P("details",{class:"learn-teacher"},P("summary",{},f("web_learn_teacher")));if(w0()){e.setAttribute("open","");const s=P("button",{},f("web_learn_teacher_off"));return s.addEventListener("click",()=>{MO(),this.render()}),e.append(P("p",{},f("web_learn_teacher_on")),s),e}const t=P("input",{type:"password",autocomplete:"off","aria-label":f("web_learn_teacher_code"),placeholder:f("web_learn_teacher_code")}),n=P("p",{class:"learn-result",role:"status"}),a=P("form",{class:"group"},t,P("button",{type:"submit"},f("web_learn_teacher_unlock")));return a.addEventListener("submit",async s=>{s.preventDefault(),await ZO(t.value)?this.render():(n.className="learn-result info",n.textContent=f("web_learn_teacher_wrong"))}),e.append(P("p",{class:"hint"},f("web_learn_teacher_intro")),a,n),e}taskExercises(e){return e.blocks.flatMap(t=>t.kind==="exercise"?[t.exercise]:[])}renderTask(e){const t=P("button",{class:"learn-back"},`← ${f("web_learn_all_tasks")}`);t.addEventListener("click",()=>{this.taskId=void 0,this.persist(),this.render()});const n=Gt.find(a=>a.number===e.after);if(this.body.append(t,P("h2",{class:"learn-title"},e.title)),n){const a=P("button",{class:"link-button"},f("web_learn_after_fmt",n.number,n.title));a.addEventListener("click",()=>this.openLesson(n.id)),this.body.append(P("p",{class:"learn-kicker"},a))}e.blocks.forEach((a,s)=>this.body.append(this.renderBlock(a,`task-${s}`))),C0(this.body),this.openNeededColumns(e.blocks),j0(this.body,ei)}renderBlock(e,t,n){switch(e.kind){case"markdown":return Ue("div",{class:"learn-text"},Rn(e.text));case"diagram":return this.renderDiagram(e.file,e.caption);case"exercise":return this.renderExercise(e.exercise);case"checklist":return this.renderChecklist(e.items,t,n);case"quiz":return this.renderQuiz(e.questions,t,n);case"brag":return this.renderBrag(e.text,e.tip);case"images":return this.renderImages(e.files,e.caption);case"graphic":return this.renderGraphic(e.file,e.caption);case"game":return this.renderGame(e.game);case"roundGame":return FO(e.game,Sa);case"rescueGame":return QO(e.game,Sa);case"caesar":return EO(e.key,e.text);case"cloze":return qO(e.cloze);case"textFile":return ad(e.name,e.content)}}renderBrag(e,t=!1){const n=P("aside",{class:"learn-brag"});n.append(P("img",{src:Sa,alt:"",width:"48",height:"48"}));const a=P("div",{},P("p",{class:"learn-brag-title"},f(t?"web_learn_ludwig_tip":"web_learn_brag")));return a.append(Ue("div",{class:"learn-text"},Rn(e))),n.append(a),n}renderGame(e){const n=P("section",{class:"learn-game"}),a=P("div",{class:"learn-game-head"});a.append(P("img",{src:Sa,alt:"",width:"40",height:"40"}),P("strong",{},f("web_game_title")));const s=P("p",{class:"learn-game-status"}),r=P("div",{class:"learn-game-stage"});n.append(a,s,r);let o=0,l=0;const u=()=>{const d=a3(e,o,10);s.textContent=`${f("web_game_round_fmt",o+1,10)} · ${f("web_game_score_fmt",l)}`;const h=P("div",{class:"learn-game-values mono"});for(const[w,v]of i3(d))h.append(P("code",{},`${w} = ${v}`));const g=P("div",{class:"group learn-game-answers"}),p=P("button",{class:"learn-game-true"},`✓ ${f("web_game_true")}`),x=P("button",{class:"learn-game-false"},`✗ ${f("web_game_false")}`);g.append(p,x);const b=P("div",{class:"learn-game-feedback",role:"status"}),y=w=>{p.disabled=x.disabled=!0;const v=w===d.answer;v&&l++,s.textContent=`${f("web_game_round_fmt",o+1,10)} · ${f("web_game_score_fmt",l)}`,b.className=`learn-game-feedback ${v?"right":"wrong"}`;const z=P("div",{class:"learn-game-steps mono"});t3(d.condition,d.values).forEach((S,O)=>z.append(P("div",{},`${O?"→ ":""}${S}`)));const k=P("button",{class:"primary"},o+1<10?f("web_game_next"):f("web_game_finish"));k.addEventListener("click",()=>{o++,o<10?u():m()}),b.replaceChildren(P("p",{},f(v?"web_game_right":"web_game_wrong")),z,k),k.focus()};p.addEventListener("click",()=>y(!0)),x.addEventListener("click",()=>y(!1)),r.replaceChildren(h,P("div",{class:"learn-game-condition mono"},d.condition),g,b)},m=()=>{s.textContent="";const d=P("button",{class:"primary"},f("web_game_again"));d.addEventListener("click",()=>{o=l=0,u()}),r.replaceChildren(P("p",{class:"learn-game-result"},f("web_game_done_fmt",l,10)),P("p",{},f(l===10?"web_game_perfect":l>=10*.7?"web_game_good":"web_game_practice")),d)},c=P("button",{class:"primary"},f("web_game_start"));return c.addEventListener("click",u),r.append(P("p",{},f("web_game_intro")),c),n}renderImages(e,t){const n=P("figure",{class:"learn-figure"}),a=P("div",{class:"learn-images"});for(const s of e){const r=v0(s);r&&a.append(P("img",{src:r,alt:"",loading:"lazy"}))}return n.append(a),t&&n.append(Ue("figcaption",{},je(t))),n}renderGraphic(e,t){const n=P("figure",{class:"learn-figure"}),a=v0(e);return a&&n.append(P("img",{class:"learn-graphic",src:a,alt:"",loading:"lazy"})),t&&n.append(Ue("figcaption",{},je(t))),n}renderDiagram(e,t){const n=T1(e),a=P("figure",{class:"learn-figure"});if(!n)return a;const s=this.host.preview(n);s&&a.append(P("div",{class:"learn-preview",dir:"ltr"},s)),t&&a.append(Ue("figcaption",{},je(t)));const r=P("button",{},f("web_learn_open_in_editor"));return r.addEventListener("click",()=>this.host.openDiagram(n,e)),a.append(r),a}renderExercise(e){const t=P("section",{class:"learn-exercise","data-exercise":e.id}),n=()=>oe.exercise(e.id),a=P("span",{class:"learn-badge"},`✓ ${f("web_learn_solved")}`);a.hidden=!n().done,t.append(P("h4",{},`${f("web_learn_exercise")}: ${e.title}`,a),Ue("div",{class:"learn-text"},Rn(e.task)));const s=P("div",{class:"learn-result",role:"status"}),r=P("div",{class:"learn-hints"}),o=P("div",{class:"group"}),l=P("button",{class:"primary"},f("web_learn_open_exercise"));l.addEventListener("click",()=>{const c=n().xml;let d=_0(e);if(c)try{d=Co(c)}catch{}this.host.openExercise(e,d)});const u=P("button",{},f("web_learn_check"));if(u.addEventListener("click",()=>{const c=this.host.exerciseDocument(e.id);if(!c){s.className="learn-result info",s.textContent=f("web_learn_open_first");return}if(c.elements.every(To)){s.className="learn-result info",s.textContent=f("web_learn_empty");return}this.host.stopSimulation();const d=$f(c,e.tests,this.host.subprogramsFor(e.id)),h=Yf(c),g=e.requires.map(x=>x==="forZaehlSchleife"?"forSchleife":x).filter(x=>x in T&&!h.has(T[x])),p=d.every(x=>x.passed)&&g.length===0;this.showResult(s,d,g,p),p&&(oe.updateExercise(e.id,{done:!0}),a.hidden=!1)}),o.append(l,u),e.hints.length>0){const c=P("button",{},f("web_learn_hint"));c.addEventListener("click",()=>{const d=r.children.length;if(d>=e.hints.length)return;const h=e.hints.length>1?`**${f("web_learn_hint_fmt",d+1,e.hints.length)}:** `:"";r.append(Ue("aside",{class:"lesson-note"},Rn(h+e.hints[d]))),c.textContent=f("web_learn_hint_more"),c.toggleAttribute("disabled",d+1>=e.hints.length)}),o.append(c)}const m=P("button",{class:"danger-text"},f("web_learn_reset"));if(m.addEventListener("click",()=>{if(m.dataset.confirm!=="1"){m.dataset.confirm="1",m.textContent=f("web_learn_reset_confirm"),setTimeout(()=>{m.dataset.confirm="",m.textContent=f("web_learn_reset")},4e3);return}oe.resetExercise(e.id),this.host.resetExercise(e.id,_0(e)),a.hidden=!0,s.replaceChildren(),s.className="learn-result",m.dataset.confirm="",m.textContent=f("web_learn_reset")}),o.append(m),t.append(o,r,s),w0()&&e.solution){const c=T1(e.solution);if(c){const d=P("details",{class:"learn-solution"},P("summary",{},f("web_learn_solution")));d.addEventListener("toggle",()=>{if(!d.open||d.querySelector(".learn-preview"))return;const h=this.host.preview(c);h&&d.append(P("div",{class:"learn-preview",dir:"ltr"},h));const g=P("button",{},f("web_learn_open_in_editor"));g.addEventListener("click",()=>{this.host.openDiagram(c,e.solution);for(const p of e.subprograms){const x=T1(p);x&&this.host.openDiagram(x,p)}});for(const p of e.subprograms){const x=T1(p),b=x&&this.host.preview(x);b&&d.append(P("div",{class:"learn-preview",dir:"ltr"},b))}d.append(g)}),t.append(d)}}return t}showResult(e,t,n,a){var r;e.className="learn-result "+(a?"ok":"fail"),e.replaceChildren(P("p",{class:"learn-result-head"},a?`🎉 ${f("web_learn_passed")}`:f("web_learn_failed")));for(const o of n)e.append(P("p",{},`✗ ${f("web_learn_missing_fmt",iT(T[o]))}`));const s=P("ul",{class:"learn-tests",dir:"auto"});for(const o of t){const l=o.test.inputs.length?f("web_learn_input_fmt",o.test.inputs.join(", ")):f("web_learn_no_input"),u=[`${o.passed?"✓":"✗"} ${l}`],m=P("div",{class:"learn-test-detail"});m.append(P("span",{},`${f("web_learn_expected")}: `,P("code",{},o.test.expected.join(" | ")||"–")),P("span",{},`${f("web_learn_actual")}: `,P("code",{},o.result.outputs.join(" | ")||"–")));for(const c of o.test.files??[])m.append(P("span",{},`📄 ${c.name}, ${f("web_learn_expected")}: `,P("code",{},c.lines.join(" | ")||"–")),P("span",{},`📄 ${c.name}, ${f("web_learn_actual")}: `,P("code",{},Rc((r=o.result.files)==null?void 0:r.get(c.name)).join(" | ")||"–")));o.result.error&&m.append(P("span",{class:"learn-error"},e1(o.result.error))),o.result.missingInput&&m.append(P("span",{class:"learn-error"},f("web_learn_missing_input"))),o.result.tooManySteps&&m.append(P("span",{class:"learn-error"},f("web_learn_too_many_steps"))),!o.passed&&o.result.unusedInputs&&m.append(P("span",{class:"learn-error"},f("web_learn_unused_input"))),s.append(P("li",{class:o.passed?"ok":"fail"},...u,m))}e.append(s)}renderChecklist(e,t,n){const a=P("ul",{class:"learn-checklist"});return e.forEach((s,r)=>{var c;const o=`${t}-${r}`,l=P("input",{type:"checkbox"});l.checked=!!(n&&((c=oe.lesson(n.id).checks)!=null&&c[o])),l.addEventListener("change",()=>{if(!n)return;const d={...oe.lesson(n.id).checks??{},[o]:l.checked};oe.updateLesson(n.id,{checks:d})});const u=P("label",{},l);u.insertAdjacentHTML("beforeend"," "+je(s.text));const m=P("li",{},u);if(n&&s.step!==void 0){const d=s.step,h=f("web_learn_step_fmt",d+1,n.steps[d].title),g=P("button",{class:"link-button learn-check-link",title:h,"aria-label":`${f("web_learn_review")}: ${h}`},f("web_learn_review"));g.addEventListener("click",()=>{this.returnTo={lesson:n.id,step:oe.lesson(n.id).step,scroll:this.body.scrollTop},this.goToStep(n,d)}),m.append(g)}a.append(m)}),a}renderQuiz(e,t,n){const a=P("div",{class:"learn-quiz"}),s=P("p",{class:"learn-score",role:"status"}),r=()=>n?oe.lesson(n.id).quiz??{}:{},o=()=>{const l=r(),u=(h,g)=>h.pairs?h.pairs.every((p,x)=>l[`${t}-${g}-${x}`]!==void 0):l[`${t}-${g}`]!==void 0,m=(h,g)=>{var p;return h.pairs?h.pairs.every((x,b)=>Z0(h)[l[`${t}-${g}-${b}`]]===h.pairs[b].right):(p=h.options[l[`${t}-${g}`]])==null?void 0:p.correct},c=e.filter(u).length,d=e.filter(m).length;s.textContent=c===e.length?f("web_learn_score_fmt",d,e.length):""};return e.forEach((l,u)=>{const m=`${t}-${u}`,c=P("fieldset",{},Ue("legend",{},je(l.question))),d=Ue("p",{class:"learn-explanation"},je(l.explanation??""));if(l.pairs){c.append(this.renderMatch(l,m,r,n,d,o),d),a.append(c);return}const h=g=>{c.querySelectorAll("button").forEach((p,x)=>{p.classList.toggle("right",g!==void 0&&l.options[x].correct),p.classList.toggle("wrong",g===x&&!l.options[x].correct),p.setAttribute("aria-pressed",String(g===x))}),d.hidden=g===void 0||!l.explanation};l.options.forEach((g,p)=>{const x=Ue("button",{class:"learn-option"},je(g.text));x.addEventListener("click",()=>{n&&oe.updateLesson(n.id,{quiz:{...r(),[m]:p}}),h(p),o()}),c.append(x)}),c.append(d),h(r()[m]),a.append(c)}),a.append(s),o(),a}renderMatch(e,t,n,a,s,r){const o=e.pairs,l=Z0(e),u=P("div",{class:"learn-match"});let m={};const c=()=>a?n():m,d=x=>a?oe.updateLesson(a.id,{quiz:x}):m=x,h=x=>c()[`${t}-${x}`],g=o.map(x=>{const b=P("select",{class:"learn-match-select"});b.append(P("option",{value:""},"–")),l.forEach((w,v)=>b.append(P("option",{value:String(v)},w)));const y=Ue("label",{class:"learn-match-left"},je(x.left));return y.append(b),u.append(y),b}),p=()=>{const x=o.every((b,y)=>h(y)!==void 0);g.forEach((b,y)=>{const w=h(y);b.value=w===void 0?"":String(w),b.classList.toggle("right",x&&l[w]===o[y].right),b.classList.toggle("wrong",x&&l[w]!==o[y].right)}),s.hidden=!x||!e.explanation};return g.forEach((x,b)=>x.addEventListener("change",()=>{const y={...c()};x.value===""?delete y[`${t}-${b}`]:y[`${t}-${b}`]=Number(x.value),d(y),p(),r()})),p(),u}}function Z0(i){return(i.pairs??[]).map(e=>e.right).sort((e,t)=>e.localeCompare(t,"de"))}const zs=()=>typeof window.showDirectoryPicker=="function";class Yi{constructor(e){this.handle=e}get name(){return this.handle.name}async list(){const e=[];for await(const t of this.handle.values())t.name.startsWith(".")||e.push({kind:t.kind,name:t.name});return e}async dir(e,t=!1){return new Yi(await this.handle.getDirectoryHandle(e,{create:t}))}async read(e){return(await(await this.handle.getFileHandle(e)).getFile()).text()}async write(e,t){const a=await(await this.handle.getFileHandle(e,{create:!0})).createWritable();await a.write(t),await a.close()}async has(e){try{return await this.handle.getFileHandle(e),!0}catch{try{return await this.handle.getDirectoryHandle(e),!0}catch{return!1}}}async remove(e){await this.handle.removeEntry(e,{recursive:!0})}}const oT="visustruct-workspace";function lT(){return new Promise((i,e)=>{const t=indexedDB.open(oT,1);t.onupgradeneeded=()=>{t.result.createObjectStore("files"),t.result.createObjectStore("meta")},t.onsuccess=()=>i(t.result),t.onerror=()=>e(t.error)})}async function st(i,e,t){const n=await lT();return new Promise((a,s)=>{const r=t(n.transaction(i,e).objectStore(i));r.onsuccess=()=>a(r.result),r.onerror=()=>s(r.error)})}class Yo{constructor(e,t){this.name=e,this.path=t}key(e){return this.path+e}async list(){const e=await st("files","readonly",n=>n.getAllKeys()),t=new Map;for(const n of e){if(!n.startsWith(this.path)||n===this.path)continue;const a=n.slice(this.path.length),s=a.indexOf("/"),r=s<0?a:a.slice(0,s);t.has(r)||t.set(r,{kind:s<0?"file":"directory",name:r})}return[...t.values()]}async dir(e,t=!1){const n=this.key(e)+"/";if(!(await st("files","readonly",s=>s.count(n))>0)){if(!t)throw new DOMException(e,"NotFoundError");await st("files","readwrite",s=>s.put("",n))}return new Yo(e,n)}async read(e){const t=await st("files","readonly",n=>n.get(this.key(e)));if(typeof t!="string")throw new DOMException(e,"NotFoundError");return t}async write(e,t){await st("files","readwrite",n=>n.put(t,this.key(e)))}async has(e){const t=await st("files","readonly",a=>a.count(this.key(e))),n=await st("files","readonly",a=>a.count(this.key(e)+"/"));return t+n>0}async remove(e){const t=this.key(e);await st("files","readwrite",n=>n.delete(t)),await st("files","readwrite",n=>n.delete(IDBKeyRange.bound(t+"/",t+"/￿")))}}async function uT(){const i=await window.showDirectoryPicker({id:"visustruct-workspace",mode:"readwrite"});return await st("meta","readwrite",e=>e.put(i,"folder")),{kind:"folder",root:new Yi(i)}}function M0(){return{kind:"browser",root:new Yo("VisuStruct","")}}async function mT(){var i;try{const e=await st("meta","readonly",n=>n.get("folder"));if(!e)return;const t=await((i=e.queryPermission)==null?void 0:i.call(e,{mode:"readwrite"}))??"granted";return{handle:e,ready:t==="granted"}}catch{return}}async function D0(i){var t;return(await((t=i.requestPermission)==null?void 0:t.call(i,{mode:"readwrite"}))??"granted")==="granted"?{kind:"folder",root:new Yi(i)}:void 0}async function cT(){try{await st("meta","readwrite",i=>i.delete("folder"))}catch{}}const Is="learnProgress.json",ks="lernstand.json",Oa="visustruct.files.mode",B0="visustruct.files.expanded";function dT(i){try{const e=JSON.parse(od(i)??"[]");return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}catch{return[]}}function od(i){try{return localStorage.getItem(i)}catch{return null}}function Ta(i,e){try{e===null?localStorage.removeItem(i):localStorage.setItem(i,e)}catch{}}const U=i=>i.replace(/&/g,"&").replace(//g,">").replace(/"/g,""");function W0(i){return new Promise(e=>{const t=document.createElement("div");t.className="confirm";const n=(i.choices??[]).map(o=>``).join("");t.innerHTML=`