<snapdata remixID="13492125"><project name="two-color turtle art" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="two-color turtle art"><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="reportVariadicEquals"><list><block var="attribute"/><l>name</l></list></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><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>samples</l></list></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><list></list></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><list></list></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="reportVariadicEquals"><list><block var="list"/><block s="reportNewList"><list></list></block></list></block><script><custom-block s="error %s"><l>item not found in list</l></custom-block></script><list></list></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><list></list></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="reportVariadicEquals"><list><custom-block s="%s of sound %obj"><l>name</l><block var="sound"/></custom-block><block var="name"/></list></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="reportVariadicEquals"><list><block var="pic"/><block s="reportBoolean"><l><bool>false</bool></l></block></list></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><list></list></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="reportVariadicGreaterThan"><list><block var="num"/><custom-block s="Leap number of hands"></custom-block></list></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="reportVariadicGreaterThan"><list><block var="num"/><custom-block s="Leap number of hands"></custom-block></list></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="reportVariadicGreaterThan"><list><block var="num"/><block s="evaluate"><block s="reportJSFunction"><list></list><l>return window.controller.frame(0).fingers.length;</l></block><list></list></block></list></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="reportVariadicGreaterThan"><list><block var="num"/><custom-block s="Leap number of hands"></custom-block></list></block></block><script><block s="doReport"><block s="reportVariadicGreaterThan"><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>0.75</l></list></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="reportVariadicGreaterThan"><list><block var="num"/><custom-block s="Leap number of hands"></custom-block></list></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><list></list></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="reportVariadicEquals"><list><block var="data"/><block s="reportNewList"><list></list></block></list></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><list></list></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><list></list></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="reportVariadicGreaterThan"><list><block var="start"/><block var="end"/></list></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportVariadicLessThan"><list><block var="i"/><block var="end"/></list></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="reportVariadicGreaterThan"><list><block var="i"/><block var="end"/></list></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><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></list></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></list></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><list></list></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><list></list></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="reportVariadicGreaterThan"><list><block var="from"/><block var="to"/></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></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><list></list></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="1470"><pentrails>data:image/png;base64,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</pentrails><costumes><list id="1471"><item><ref mediaID="Bühne_cst_Unbenannt"></ref></item></list></costumes><sounds><list struct="atomic" id="1472"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Stift" idx="1" x="-2670.1246671187464" y="-928.6315960300092" heading="161.00000000000705" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="184,32,0,1" pen="tip" id="1477"><costumes><list struct="atomic" id="1478"></list></costumes><sounds><list struct="atomic" id="1479"></list></sounds><blocks></blocks><variables></variables><scripts><script x="118.999999" y="60"><block s="receiveGo"></block><block s="down"></block><block s="doSetVar"><l>a</l><l>1</l></block><block s="doForever"><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="setColor"><color>255,213,131,1</color></block><block s="setHeading"><l>15</l></block><block s="clear"></block><block s="doWarp"><script><block s="doSetVar"><l>b</l><l>0</l></block><block s="doRepeat"><l>200</l><script><block s="forward"><block var="b"/></block><block s="turn"><block var="a"/></block><block s="doChangeVar"><l>b</l><l>2</l></block></script></block><block s="up"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setColor"><color>184,32,0,1</color></block><block s="down"></block><block s="setHeading"><l>15</l></block><block s="doSetVar"><l>b</l><l>0</l></block><block s="doRepeat"><l>200</l><script><block s="forward"><block var="b"/></block><block s="turn"><block var="a"/></block><block s="doChangeVar"><l>b</l><l>-2</l></block></script></block><block s="doChangeVar"><l>a</l><l>0.03</l></block></script></block></script></block></script></scripts></sprite><watcher var="a" style="normal" x="10" y="10" color="243,118,29"/><watcher var="b" style="normal" x="10" y="31.000001999999995" color="243,118,29"/></sprites></stage><variables><variable name="a"><l>7.96000000000002</l></variable><variable name="b"><l>-400</l></variable></variables></scene></scenes></project><media name="two-color turtle art" app="Snap! 9.0, 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>