<snapdata remixID="11433749"><project name="digi4all-L1 Variante 1 Anna Dümler" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="digi4all-L1 Variante 1 Anna Dümler"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="%&apos;attribute&apos; of sound %&apos;sound&apos;" type="reporter" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">duration<options>name&#xD;duration&#xD;length&#xD;number of channels&#xD;sample rate&#xD;samples</options></input><input type="%obj"></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="attribute"/><l>name</l></block><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>sound</l></list><l>return sound.name;</l></block><list><block var="sound"/></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="attribute"/><l>samples</l></block><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>audioBuffer</l></list><l>var result, i;&#xD;if (audioBuffer.numberOfChannels &gt; 1) {&#xD;    result = new List();&#xD;    for (i = 0; i &lt; audioBuffer.numberOfChannels; i += 1) {&#xD;        result.add(new List(audioBuffer.getChannelData(i)));&#xD;    }&#xD;    return result;&#xD;}&#xD;return new List(audioBuffer.getChannelData(0));</l></block><list><custom-block s="%s of sound %obj"><l></l><block var="sound"/></custom-block></list></block></block></script></block><block s="doRun"><block s="reportJSFunction"><list><l>sound</l></list><l>var base64, binaryString, len, bytes, i,&#xD;    arrayBuffer, audioCtx;&#xD;if (sound.audioBuffer) {&#xD;    return;&#xD;}&#xD;base64 = sound.audio.src.split(&apos;,&apos;)[1];&#xD;binaryString =  window.atob(base64);&#xD;len = binaryString.length;&#xD;bytes = new Uint8Array(len);&#xD;for (i = 0; i &lt; len; i += 1)        {&#xD;  bytes[i] = binaryString.charCodeAt(i);&#xD;}&#xD;arrayBuffer = bytes.buffer;&#xD;Note.prototype.setupContext();&#xD;audioCtx = Note.prototype.audioContext;&#xD;audioCtx.decodeAudioData(arrayBuffer, function(buffer) {&#xD;   sound.audioBuffer = buffer;&#xD;});</l></block><list><block var="sound"/></list></block><block s="doWaitUntil"><block s="evaluate"><block s="reportJSFunction"><list><l>sound</l></list><l>return !isNil(sound.audioBuffer);</l></block><list><block var="sound"/></list></block></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>sound</l><l>choice</l></list><l>switch (choice) {&#xD;case &apos;sample rate&apos;:&#xD;    return sound.audioBuffer.sampleRate;&#xD;case &apos;duration&apos;:&#xD;    return sound.audioBuffer.duration;&#xD;case &apos;length&apos;:&#xD;    return sound.audioBuffer.length;&#xD;case &apos;number of channels&apos;:&#xD;    return sound.audioBuffer.numberOfChannels;&#xD;default:&#xD;    return sound.audioBuffer;&#xD;}</l></block><list><block var="sound"/><block var="attribute"/></list></block></block></script></block-definition><block-definition s="turbo %&apos;action&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>begin</l></list></block><block s="doSetVar"><l>begin</l><block s="reportGlobalFlag"><l><option>turbo mode</option></l></block></block><block s="doSetGlobalFlag"><l><option>turbo mode</option></l><l><bool>true</bool></l></block><block s="doRun"><block var="action"/><list></list></block><block s="doSetGlobalFlag"><l><option>turbo mode</option></l><block var="begin"/></block></script></block-definition><block-definition s="play %&apos;samples&apos; at %&apos;sampleRate&apos; Hz" type="command" category="sound"><comment x="0" y="0" w="164" collapsed="false">play back a sound, a list of samples (single channel), or a list of lists (multiple channels) at the given sample rate.&#xD;for demo purposes this block also fast-plots the samples on the stage</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n">44100<options>22.05 kHz=22050&#xD;44.1 kHz=44100&#xD;88.2 kHz=88200&#xD;96 kHz=96000</options></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="samples"/><l><option>sound</option></l></block><script><block s="doSetVar"><l>samples</l><custom-block s="%s of sound %obj"><l>samples</l><block var="samples"/></custom-block></block></script></block><block s="doRun"><block s="reportJSFunction"><list><l>samples</l><l>rate</l></list><l>var audioCtx, channels, frameCount, arrayBuffer, i, source;&#xD;Note.prototype.setupContext();&#xD;audioCtx = Note.prototype.audioContext;&#xD;channels = (samples.at(1) instanceof List) ? samples.length() : 1; &#xD;frameCount = (channels === 1) ? samples.length() : samples.at(1).length(); &#xD;arrayBuffer = audioCtx.createBuffer(channels, frameCount, rate);&#xD;if (!arrayBuffer.copyToChannel) {&#xD;    arrayBuffer.copyToChannel = function (src, channel) {&#xD;        var buffer = this.getChannelData(channel);&#xD;        for (i = 0; i &lt; src.length; i += 1) {&#xD;            buffer[i] = src[i];&#xD;        }&#xD;    }&#xD;}&#xD;if (channels === 1) {&#xD;    arrayBuffer.copyToChannel(Float32Array.from(samples.asArray()), 0, 0);&#xD;} else {&#xD;    for (i = 0; i &lt; channels; i += 1) {&#xD;        arrayBuffer.copyToChannel(Float32Array.from(samples.at(i + 1).asArray()), i, 0);&#xD;    }&#xD;}&#xD;source = audioCtx.createBufferSource();&#xD;source.buffer = arrayBuffer;&#xD;source.connect(audioCtx.destination);&#xD;source.start();&#xD;source.pause = source.stop;&#xD;this.parentThatIsA(StageMorph).activeSounds.push(source);</l></block><list><block var="samples"/><block var="sampleRate"/></list></block><custom-block s="plot sound %obj"><block var="samples"/></custom-block></script></block-definition><block-definition s="%&apos;frequency&apos; Hz for %&apos;duration&apos; secs at %&apos;sample rate&apos; Hz sample rate" type="reporter" category="sound"><comment x="0" y="0" w="205" collapsed="false">generate a list of samples representing a sine wave at the given frequency, duration and sample rate</comment><header></header><code></code><translations></translations><inputs><input type="%n">440<options>a 55=55&#xD;a 110=110&#xD;a 220=220&#xD;a 440=440&#xD;a 880=880&#xD;a 1760=1760&#xD;a 3520=3520</options></input><input type="%n">1</input><input type="%n">44100<options>22.05 kHz=22050&#xD;44.1 kHz=44100&#xD;88.2 kHz=88200&#xD;96 kHz=96000</options></input></inputs><script><block s="doDeclareVariables"><list><l>output</l><l>sample period</l><l>duration in samples</l><l>time</l></list></block><block s="doSetVar"><l>sample period</l><block s="reportQuotient"><l>1</l><block var="sample rate"/></block></block><block s="doSetVar"><l>duration in samples</l><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportVariadicProduct"><list><block var="duration"/><block var="sample rate"/></list></block></block></block><block s="doSetVar"><l>time</l><l>0</l></block><block s="doSetVar"><l>output</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doRepeat"><block var="duration in samples"/><script><block s="doAddToList"><block s="reportMonadic"><l><option>sin</option></l><custom-block s="degrees %n"><block s="reportVariadicProduct"><list><l>2</l><block s="reportVariadicProduct"><list><custom-block s="PI"></custom-block><block s="reportVariadicProduct"><list><block var="frequency"/><block var="time"/></list></block></list></block></list></block></custom-block></block><block var="output"/></block><block s="doChangeVar"><l>time</l><block var="sample period"/></block></script></block></script></block><block s="doReport"><block var="output"/></block></script></block-definition><block-definition s="PI" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>3.141592653589793</l></block></script></block-definition><block-definition s="degrees %&apos;radians&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">0.5</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="radians"/><l>180</l></list></block><custom-block s="PI"></custom-block></block></block></script></block-definition><block-definition s="find first in %&apos;list&apos; such that %&apos;test&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="list"/><block s="reportNewList"><list></list></block></block><script><custom-block s="error %s"><l>item not found in list</l></custom-block></script></block><block s="doIf"><block s="evaluate"><block var="test"/><list><block s="reportListItem"><l>1</l><block var="list"/></block></list></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="list"/></block></block></script></block><block s="doReport"><custom-block s="find first in %l such that %predRing"><block s="reportCDR"><block var="list"/></block><block var="test"/></custom-block></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>msg</l></list><l>throw new Error(msg)</l></block><list><block var="msg"/></list></block></script></block-definition><block-definition s="sound named %&apos;name&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="find first in %l such that %predRing"><block s="reportGet"><l><option>sounds</option></l></block><block s="reifyPredicate"><autolambda><block s="reportEquals"><custom-block s="%s of sound %obj"><l>name</l><block var="sound"/></custom-block><block var="name"/></block></autolambda><list><l>sound</l></list></block></custom-block></block></script></block-definition><block-definition s="plot sound %&apos;sound&apos;" type="command" category="pen"><comment x="0" y="0" w="164" collapsed="false">quickly plot the samples of a sound, a list of samples (single channel), or a list of lists (multiple channels) to the stage at a lower resolution.</comment><header></header><code></code><translations></translations><inputs><input type="%obj"></input></inputs><script><block s="doDeclareVariables"><list><l>samples</l><l>step</l><l>offset</l><l>i</l><l>stage height</l></list></block><block s="doSetVar"><l>stage height</l><custom-block s="stage height"></custom-block></block><block s="doIfElse"><block s="reportIsA"><block var="sound"/><l><option>sound</option></l></block><script><block s="doSetVar"><l>samples</l><custom-block s="%s of sound %obj"><l>samples</l><block var="sound"/></custom-block></block><block s="doSetVar"><l>step</l><block s="reportQuotient"><custom-block s="%s of sound %obj"><l>length</l><block var="sound"/></custom-block><block s="reportVariadicProduct"><list><custom-block s="stage width"></custom-block><l>2</l></list></block></block></block></script><script><block s="doSetVar"><l>samples</l><block var="sound"/></block></script></block><block s="clear"></block><block s="up"></block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="samples"/></block><l><option>list</option></l></block><script><block s="doSetVar"><l>step</l><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="samples"/></block></block><block s="reportVariadicProduct"><list><custom-block s="stage width"></custom-block><l>2</l></list></block></block></block><block s="doSetVar"><l>offset</l><block s="reportQuotient"><block var="stage height"/><l>4</l></block></block><custom-block s="for each %upvar of %l %cs"><l>channel</l><block var="samples"/><script><block s="doSetVar"><l>i</l><l>0</l></block><block s="gotoXY"><block s="reportQuotient"><custom-block s="stage width"></custom-block><l>-2</l></block><block var="offset"/></block><block s="down"></block><block s="setSize"><l>1</l></block><custom-block s="turbo %cs"><script><block s="doRepeat"><block s="reportVariadicProduct"><list><custom-block s="stage width"></custom-block><l>2</l></list></block><script><block s="doChangeVar"><l>i</l><block var="step"/></block><block s="gotoXY"><block s="reportVariadicSum"><list><block s="xPosition"></block><l>0.5</l></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><block s="reportMonadic"><l><option>floor</option></l><block var="i"/></block><block var="channel"/></block><block s="reportQuotient"><block var="stage height"/><l>6.4</l></block></list></block><block var="offset"/></list></block></block></script></block></script></custom-block><block s="up"></block><block s="doChangeVar"><l>offset</l><block s="reportQuotient"><custom-block s="stage height"></custom-block><l>-2</l></block></block></script></custom-block></script><script><block s="doSetVar"><l>step</l><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="samples"/></block><block s="reportVariadicProduct"><list><custom-block s="stage width"></custom-block><l>2</l></list></block></block></block><block s="gotoXY"><block s="reportQuotient"><custom-block s="stage width"></custom-block><l>-2</l></block><l>0</l></block><block s="down"></block><block s="setSize"><l>1</l></block><custom-block s="turbo %cs"><script><block s="doRepeat"><block s="reportVariadicProduct"><list><custom-block s="stage width"></custom-block><l>2</l></list></block><script><block s="doChangeVar"><l>i</l><block var="step"/></block><block s="gotoXY"><block s="reportVariadicSum"><list><block s="xPosition"></block><l>0.5</l></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><block s="reportMonadic"><l><option>floor</option></l><block var="i"/></block><block var="samples"/></block><block s="reportQuotient"><block var="stage height"/><l>3.2</l></block></list></block></block></script></block></script></custom-block><block s="up"></block></script></block></script></block-definition><block-definition s="stage width" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return StageMorph.prototype.dimensions.x;</l></block><list></list></block></block></script></block-definition><block-definition s="stage height" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return StageMorph.prototype.dimensions.y;</l></block><list></list></block></block></script></block-definition><block-definition s="$circleSolid-1-255-0-0 record" type="reporter" category="sensing"><comment x="0" y="0" w="192" collapsed="false">records an audio snippet and reports it as a new sound, or zero if the user cancels</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>test</l><l>pic</l></list></block><block s="doSetVar"><l>test</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>var soundRecorder,&#xD;    result = false;&#xD;&#xD;soundRecorder = new SoundRecorderDialogMorph(&#xD;    function (audio) {&#xD;        if (audio) {&#xD;            result = new Sound(audio, &apos;recording&apos;);&#xD;        } else {&#xD;            result = null;&#xD;            this.destroy();&#xD;        }&#xD;    }&#xD;);&#xD;&#xD;soundRecorder.cancel = function () {&#xD;    result = null;&#xD;    this.destroy();&#xD;};&#xD;&#xD;soundRecorder.key = &apos;microphone&apos;;&#xD;soundRecorder.popUp(this.world());&#xD;return function () {return result; };</l></block><list></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reifyScript"><script><block s="doSetVar"><l>pic</l><block s="evaluate"><block var="test"/><list></list></block></block><block s="doReport"><block s="reportNot"><block s="reportEquals"><block var="pic"/><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></block></script><list></list></block><list></list></block></block><block s="doReport"><block var="pic"/></block></script></block-definition><block-definition s="loudness" type="reporter" category="sensing"><header></header><code></code><translations>ca:volum del so&#xD;es:volumen del sonido&#xD;</translations><inputs></inputs><script><block s="doIf"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return typeof meter == &apos;undefined&apos;</l></block><list></list></block><script><block s="doRun"><block s="reportJSFunction"><list></list><l>navigator.getUserMedia = ( navigator.getUserMedia ||&#xD;                       navigator.webkitGetUserMedia ||&#xD;                       navigator.mozGetUserMedia ||&#xD;                       navigator.msGetUserMedia);&#xD;&#xD;var audioContext = new AudioContext();&#xD;&#xD;/*&#xD;The MIT License (MIT)&#xD;&#xD;Copyright (c) 2014 Chris Wilson&#xD;&#xD;Permission is hereby granted, free of charge, to any person obtaining a copy&#xD;of this software and associated documentation files (the "Software"), to deal&#xD;in the Software without restriction, including without limitation the rights&#xD;to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&#xD;copies of the Software, and to permit persons to whom the Software is&#xD;furnished to do so, subject to the following conditions:&#xD;&#xD;The above copyright notice and this permission notice shall be included in all&#xD;copies or substantial portions of the Software.&#xD;&#xD;THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&#xD;IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&#xD;FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&#xD;AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&#xD;LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&#xD;OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE&#xD;SOFTWARE.&#xD;*/&#xD;&#xD;function createAudioMeter (audioContext,clipLevel,averaging,clipLag) {&#xD;	 var processor = audioContext.createScriptProcessor(512);&#xD;	 processor.onaudioprocess = volumeAudioProcess;&#xD;	 processor.clipping = false;&#xD;	 processor.lastClip = 0;&#xD;	 processor.volume = 0;&#xD;	 processor.clipLevel = clipLevel || 0.98;&#xD;	 processor.averaging = averaging || 0.95;&#xD;	 processor.clipLag = clipLag || 750;&#xD; 	processor.connect(audioContext.destination);&#xD; 	return processor;&#xD;};&#xD;&#xD;function volumeAudioProcess (event) {&#xD;  var buf = event.inputBuffer.getChannelData(0),&#xD;      bufLength = buf.length,&#xD; 	    sum = 0,&#xD;      x;&#xD;  for (var i=0; i&lt;bufLength; i++) {&#xD;   	x = buf[i];&#xD;   	if (Math.abs(x)&gt;=this.clipLevel) {&#xD;    		this.clipping = true;&#xD;    		this.lastClip = window.performance.now();&#xD;   	}&#xD;   	sum += x * x;&#xD;  }&#xD;  var rms =  Math.sqrt(sum / bufLength);&#xD;  this.volume = Math.max(rms, this.volume*this.averaging);&#xD;};&#xD;&#xD;function gotStream (stream) {&#xD;  mediaStreamSource = audioContext.createMediaStreamSource(stream);&#xD;  window.meter = createAudioMeter(audioContext);&#xD;  mediaStreamSource.connect(meter);&#xD;};&#xD;&#xD;navigator.getUserMedia(&#xD;  {&#xD;    "audio": {&#xD;      "mandatory": {&#xD;        "googEchoCancellation": "false",&#xD;        "googAutoGainControl": "false",&#xD;        "googNoiseSuppression": "false",&#xD;        "googHighpassFilter": "false"&#xD;      },&#xD;      "optional": []&#xD;    },&#xD;  }, gotStream, nop);</l></block><list></list></block></script></block><block s="doWaitUntil"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return typeof meter != &apos;undefined&apos;</l></block><list></list></block></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return Math.floor(meter.volume * 100);</l></block><list></list></block></block></script></block-definition><block-definition s="$flash map %&apos;fn&apos; over %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>fn</l><l>data</l><l>proc</l></list><l>return proc.reportAtomicMap(fn, data);</l></block><list><block var="fn"/><block var="data"/></list></block></block></script></block-definition><block-definition s="$flash keep %&apos;test&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>fn</l><l>data</l><l>proc</l></list><l>return proc.reportAtomicKeep(fn, data);</l></block><list><block var="test"/><block var="data"/></list></block></block></script></block-definition><block-definition s="$flash combine %&apos;fn&apos; with %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>fn</l><l>data</l><l>proc</l></list><l>return proc.reportAtomicCombine(fn, data);</l></block><list><block var="fn"/><block var="data"/></list></block></block></script></block-definition><block-definition s="$flash sort %&apos;data&apos; by %&apos;fn&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>data</l><l>fn</l><l>proc</l></list><l>return proc.reportAtomicSort(data, fn);</l></block><list><block var="data"/><block var="fn"/></list></block></block></script></block-definition><block-definition s="$flash reverse %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>list</l></list><l>return new List(list.asArray().slice().reverse());</l></block><list><block var="list"/></list></block></block></script></block-definition><block-definition s="Leap number of hands" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return window.controller.frame(0).hands.length;</l></block><list></list></block></block></script></block-definition><block-definition s="Leap %&apos;pos&apos; position of hand %&apos;num&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">x<options>x&#xD;y&#xD;z</options></input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doIfElse"><block s="reportNot"><block s="reportGreaterThan"><block var="num"/><custom-block s="Leap number of hands"></custom-block></block></block><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>pos</l><l>num</l></list><l>var a = {x:0, y:1, z:2}[pos]; return window.controller.frame(0).hands[num-1].stabilizedPalmPosition[a];</l></block><list><block var="pos"/><block var="num"/></list></block></block></script><script><block s="doReport"><l>0</l></block></script></block></script></block-definition><block-definition s="Leap %&apos;pos&apos; rotation of hand %&apos;num&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">yaw<options>yaw&#xD;pitch&#xD;roll</options></input><input type="%n">1</input></inputs><script><block s="doIfElse"><block s="reportNot"><block s="reportGreaterThan"><block var="num"/><custom-block s="Leap number of hands"></custom-block></block></block><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>pos</l><l>num</l></list><l>var f = window.controller.frame(0);&#xD;switch (pos){&#xD;  case "yaw":&#xD;    return f.hands[num-1].yaw();&#xD;  case "pitch":&#xD;    return f.hands[num-1].pitch();&#xD;  case "roll":&#xD;    return f.hands[num-1].roll();&#xD;};&#xD;            &#xD;        </l></block><list><block var="pos"/><block var="num"/></list></block></block></script><script><block s="doReport"><l>0</l></block></script></block></script></block-definition><block-definition s="Leap %&apos;pos&apos; position of finger %&apos;num&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">x<options>x&#xD;y&#xD;z</options></input><input type="%n">1</input></inputs><script><block s="doIfElse"><block s="reportNot"><block s="reportGreaterThan"><block var="num"/><block s="evaluate"><block s="reportJSFunction"><list></list><l>return window.controller.frame(0).fingers.length;</l></block><list></list></block></block></block><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>pos</l><l>num</l></list><l>var a = {x:0, y:1, z:2}[pos]; return window.controller.frame(0).fingers[num-1].stabilizedTipPosition[a];</l></block><list><block var="pos"/><block var="num"/></list></block></block></script><script><block s="doReport"><l>0</l></block></script></block></script></block-definition><block-definition s="Leap hand %&apos;num&apos; is pinching" type="predicate" category="other"><header></header><code></code><translations></translations><inputs><input type="%s">1</input></inputs><script><block s="doIfElse"><block s="reportNot"><block s="reportGreaterThan"><block var="num"/><custom-block s="Leap number of hands"></custom-block></block></block><script><block s="doReport"><block s="reportGreaterThan"><block s="evaluate"><block s="reportJSFunction"><list><l>num</l></list><l>return window.controller.frame(0).hands[num-1].pinchStrength;</l></block><list><block var="num"/></list></block><l>0.75</l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="Leap pinch strength of hand %&apos;num&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doIfElse"><block s="reportNot"><block s="reportGreaterThan"><block var="num"/><custom-block s="Leap number of hands"></custom-block></block></block><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="evaluate"><block s="reportJSFunction"><list><l>num</l></list><l>return window.controller.frame(0).hands[num-1].pinchStrength;</l></block><list><block var="num"/></list></block><l>100</l></list></block></block></script><script><block s="doReport"><l>0</l></block></script></block></script></block-definition><block-definition s="Leap $flag" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return window.controller !== undefined</l></block><list></list></block><script><block s="doStopThis"><l><option>this block</option></l></block></script></block><block s="doDeclareVariables"><list><l>test</l></list></block><block s="doSetVar"><l>test</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>var leapScript,&#xD;    done = false;&#xD;leapScript = document.createElement(&apos;script&apos;),&#xD;leapScript.onload = function () {&#xD;    done = true;&#xD;    console.log(&apos;leap is ready&apos;);&#xD;};&#xD;document.head.appendChild(leapScript);&#xD;leapScript.src = &apos;https://js.leapmotion.com/leap-0.6.4.min.js&apos;;&#xD;return function () {return done; }</l></block><list></list></block></block><block s="doWaitUntil"><block s="evaluate"><block var="test"/><list></list></block></block><block s="doRun"><block s="reportJSFunction"><list></list><l>window.controller = new Leap.Controller({enableGestures: true, background: true}); window.controller.connect();</l></block><list></list></block></script></block-definition><block-definition s="square %&apos;side&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRepeat"><l>4</l><script><block s="forward"><block var="side"/></block><block s="turn"><l>90</l></block></script></block></script></block-definition><block-definition s="polygon corner: %&apos;corner&apos; side: %&apos;side&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doRepeat"><block var="corner"/><script><block s="forward"><block var="side"/></block><block s="turn"><l>45</l></block></script></block></script><scripts><script x="186.7744160625" y="106.000002"><block s="reportQuotient"><l></l><l></l></block></script></scripts></block-definition><block-definition s="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment><header></header><code></code><translations>de:drucke _ in Größe _&#xD;ca:etiqueta _ de mida _&#xD;es:etiqueta _ de tamaño _&#xD;fr:étiquette _ d&apos;une taille de _&#xD;</translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + &apos;px monospace&apos;;&#xD;context.textAlign = &apos;left&apos;;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations>de:ist _ leer?&#xD;ca:_ buida?&#xD;es:_ vacía?&#xD;fr:_ vide?&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:behalte Elemente, die _ aus _&#xD;ca:manté els elements on _ de _&#xD;es:mantener los elementos donde _ de _&#xD;fr:garder les items tels que _ de _&#xD;</translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:kombiniere mit _ die Elemente von _&#xD;ca:combina amb _ els elements de _&#xD;es:combinar con _ los elementos de _&#xD;fr:combine avec _ les items de _&#xD;</translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations>de:wenn _ dann _ sonst _&#xD;ca:si _ llavors _ si no _&#xD;es:si _ entonces _ sino _&#xD;fr:si _ alors _ sinon _&#xD;</translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:für _ = _ bis _ _&#xD;ca:per _ = _ fins _ _&#xD;es:para _ = _ hasta _ _&#xD;fr:pour _ allant de _ à _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:füge Wörter zusammen _&#xD;ca:uneix les paraules _&#xD;es:unir las palabras _&#xD;fr:fusionne les mots _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Liste $arrowRight Satz _&#xD;ca:llista $arrowRight frase _&#xD;es:lista $arrowRight frase _&#xD;fr:liste $arrowRight phrase _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Satz $arrowRight Liste _&#xD;ca:frase $arrowRight llista _&#xD;es:frase $arrowRight lista _&#xD;fr:phrase $arrowRight liste _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block><custom-block s="ignore %s"><l>3</l></custom-block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations>de:wirf _&#xD;ca:llança _&#xD;es:lanzar _&#xD;fr:lance _&#xD;</translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations>de:wirf _ _&#xD;ca:llança _ _&#xD;es:lanzar _ _&#xD;fr:lance _ _&#xD;</translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations>de:für jedes _ von _ _&#xD;ca:per cada _ de _ _&#xD;es:para cada _ de _ _&#xD;fr:pour chaque _ de _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><header></header><code></code><translations>de:falls _ dann _ und pause $pause-1-255-220-0&#xD;ca:si _ fes _ i atura-ho tot $pause-1-255-220-0&#xD;es:si _ haz _ y páralo todo $pause-1-255-220-0&#xD;fr:si _ faire _ et mettre tout en pause $pause-1-255-220-0&#xD;</translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Wort $arrowRight Liste _&#xD;ca:paraula $arrowRight llista _&#xD;es:palabra $arrowRight lista _&#xD;fr:mot $arrowRight liste _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations>de:ignoriere _&#xD;ca:ignora _&#xD;es:ignorar _&#xD;fr:ignore _&#xD;</translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Liste $arrowRight Wort _&#xD;ca:llista $arrowRight paraula _&#xD;es:lista $arrowRight palabra _&#xD;fr:liste $arrowRight mot _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block-definition><block-definition s="%&apos;x&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition><block-definition s="numbers from %&apos;from&apos; to %&apos;to&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:Zahlen von _ bis _&#xD;ca:nombres des de _ a _&#xD;es:números de _ a _&#xD;fr:nombres de _ à _&#xD;</translations><inputs><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doIf"><block s="reportGreaterThan"><block var="from"/><block var="to"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block var="from"/><custom-block s="numbers from %n to %n"><block s="reportVariadicSum"><list><block var="from"/><l>1</l></list></block><block var="to"/></custom-block></block></block></script></block-definition><block-definition s="map %&apos;func&apos; over %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:wende _ an auf _&#xD;ca:mapeja _ sobre _&#xD;es:mapear _ sobre _&#xD;fr:appliquer _ à _&#xD;</translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block var="data"/></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="func"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><custom-block s="map %repRing over %l"><block var="func"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script></block-definition></blocks><stage name="Bühne" width="480" height="360" costume="1" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="1404"><pentrails>data:image/png;base64,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</pentrails><costumes><list id="1405"><item><ref mediaID="Bühne_cst_Unbenannt"></ref></item></list></costumes><sounds><list struct="atomic" id="1406"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Stift" idx="1" x="1.1937117960769683e-10" y="3.299760464869905e-11" heading="359.9999999999616" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="5,209,0,1" pen="tip" id="1411"><costumes><list struct="atomic" id="1412"></list></costumes><sounds><list struct="atomic" id="1413"></list></sounds><blocks></blocks><variables></variables><scripts><script x="147" y="528.3333333333334"><block s="gotoXY"><l>0</l><l>0</l></block></script><script x="21.83333333333337" y="99"><block var="seitenlänge"/></script><script x="441.999999" y="116.50000000000006"><block s="doSetVar"><l>seitenzahl</l><l>5</l></block></script><script x="206.999999" y="37"><block s="receiveGo"></block><block s="setColor"><color>5,209,0,1</color></block><block s="down"></block><block s="doSetVar"><l>seitenlänge</l><l>70</l></block><block s="doSetVar"><l>seitenzahl</l><l>8</l></block><block s="doForever"><script><block s="clear"></block><block s="doWarp"><script><block s="doRepeat"><block var="seitenzahl"/><script><block s="forward"><block var="seitenlänge"/></block><block s="turn"><block s="reportQuotient"><l>360</l><block var="seitenzahl"/></block></block></script></block><block s="doRepeat"><block var="seitenzahl"/><script><block s="forward"><block var="seitenlänge"/></block><block s="turnLeft"><block s="reportQuotient"><l>360</l><block var="seitenzahl"/></block></block></script></block></script></block><block s="turn"><l>10</l></block></script></block></script></scripts></sprite><watcher var="seitenlänge" style="normal" x="10" y="10" color="243,118,29"/><watcher var="seitenzahl" style="normal" x="10" y="31.000001999999995" color="243,118,29"/></sprites></stage><variables><variable name="seitenlänge"><l>70</l></variable><variable name="seitenzahl"><l>8</l></variable></variables></scene></scenes></project><media name="digi4all-L1 Variante 1 Anna Dümler" app="Snap! 7, https://snap.berkeley.edu" version="2"><costume name="Unbenannt" center-x="240" center-y="180" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADotJREFUeF7t1cEJADAMxLBk/6Fb6BD1R1ngQAS8M3PGESBAgAABAl8FVoC/ehsjQIAAAQJPQIA9AgECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBC5oYGgQUTbVPQAAAABJRU5ErkJggg==" mediaID="Bühne_cst_Unbenannt"/></media></snapdata>