<snapdata remixID="13315641"><project name="Interactivity - 16Feb" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAADjklEQVR4AeyVMU7oMBBEE0THGeg5BgXHpuAY9JyBDikohSWQcBJY1h57HhLKVxzbO2+ePjcbPxDoSOBm4QcCHQkgYEf4XL0sCIgFXQkgYFf8XI6AONCVgK+AXbFzeSGAgIUEzy4EELALdi4tBBCwkODZhQACdsHOpYUAAhYSPLsQQMAu2LteKnU5AkrV4TcMAvp1LpUYAaXq8BsGAf06l0qMgFJ1+A2DgH6dSyVuKqBUcoaRIICAEjX4DoGAvt1LJEdAiRp8h0BA3+4lkiOgRA2+QyBgk+65pEYAAWtkeN+EAAI2wcwlNQIIWCPD+yYEELAJZi6pEUDAGhneNyGAgE0w+15ylhwBzwixnkoAAVPxcvgZAQQ8I8R6KgEETMXL4WcEEPCMEOupBBAwFS+HnxGYV8Cz5KxLEEBAiRp8h0BA3+4lkiOgRA2+QyCgb/cSyRFQogbfIRBwvu6HSoSAQ9U137AIOF+nQyVCwKHqmm9YBJyv06ESIeBQdc03LALO1+lQif5VwKGSM6wEAQSUqMF3CAT07V4iOQJK1OA7BAL6di+RHAElavAdAgEr3X+sD5WVn17z7q8EELBC7nZ7XXYJy+/jelf5ktcRAgh4QG+XsCw/L/ffhFzXtSzxDBBAwAA8tsYJIOABw/3Pb1l+Wt6W/X/E8rttW1niGSCAgBV4u3xFtv35sr1XvuR1hAACVujt0lWWeP2FQPSfCBglyP4QAQQM4WNzlAACRgmyP0QAAUP42BwlgIBRguwPEUDAED42RwmMK2A0OfslCCCgRA2+QyCgb/cSyRFQogbfIRDQt3uJ5AgoUYPvEAg4XvdTTYyAU9U5XhgEHK+zqSZGwKnqHC8MAo7X2VQTI+BUdY4XBgHH62yqiX8l4FTJCSNBAAElavAdAgF9u5dIjoASNfgOgYC+3UskR0CJGnyHQMBL3fNRFgEEzCLLuZcIIOAlTHyURQABs8hy7iUCCHgJEx9lEUDALLKce4kAAl7C5PtRdnIEzCbM+YcEEPAQD4vZBBAwmzDnHxJAwEM8LGYTQMBswpx/SAABD/GwmE1AV8Ds5JwvQQABJWrwHQIBfbuXSI6AEjX4DoGAvt1LJEdAiRp8h0BAve6tJkJAq7r1wiKgXidWEyGgVd16YRFQrxOriRDQqm69sAio14nVRN8EtEpOWAkCCChRg+8QCOjbvURyBJSowXcIBPTtXiL5JwAAAP//jw2FRgAAAAZJREFUAwBKWqGP6ftrSAAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="Interactivity - 16Feb"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><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;pt:captura _ _&#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></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;pt:lança _&#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;pt:captura _ _&#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;pt:lança _ _&#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="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><comment x="0" y="0" w="263.3333333333333" collapsed="false">This is a breakpoint block, to be used in debugging.&#xD;The Boolean input specifies the condition under which&#xD;the program should pause.  (Use True for an unconditional breakpoint.)  The intent is that the script should have&#xD;SHOW VARIABLE blocks for the process&apos;s local variables.&#xD;After the pause, this block automatically hides all temporary variables.</comment><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;pt:se _ , então _ e faz pausa em tudo $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="ignore %&apos;x&apos;" type="command" category="control"><comment x="0" y="0" w="206.66666666666666" collapsed="false">This block does nothing.&#xD;Use it when you are calling a reporter&#xD;for its side effect and don&apos;t care about&#xD;its return value.</comment><header></header><code></code><translations>de:ignoriere _&#xD;ca:ignora _&#xD;es:ignorar _&#xD;fr:ignore _&#xD;pt:ignora _&#xD;</translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="cascade %&apos;num&apos; times %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="138" collapsed="false">Call f(f(f(...(f(x))))) n times where the three input slots are n, f, and x from left to right.  The # variable can be used inside f to represent how many times f has been called.</comment><header></header><code></code><translations>pt:o resultado de _ invocações em cascata de _ com argumento inicial _ _&#xD;ca:en cascada _ vegades _ _ _&#xD;</translations><inputs><input type="%n"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="cascade until %&apos;pred&apos; %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="210.47493489583334" collapsed="false">Call f(f(f(...(f(x))))) until condition is true, where the three input slots are condition, f, and x from left to right.  The # variable can be used inside f or condition to indicate how many times f has been called.</comment><header></header><code></code><translations>pt:o resultado da invocação em cascata até que _ de _ com argumento inicial _ _&#xD;ca:en cascada fins _ _ _ _&#xD;</translations><inputs><input type="%predRing"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list><block var="result"/></list></block><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="compose %&apos;f&apos; %&apos;g&apos;" type="reporter" category="control"><comment x="0" y="0" w="151.33333333333334" collapsed="false">Returns the function x↦f(g(x)) where f and g are the two inputs.</comment><header></header><code></code><translations>pt:a composição de _ com _&#xD;ca:composa _ _&#xD;</translations><inputs><input type="%repRing"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="f"/><list><block s="evaluate"><block var="g"/><list><l></l></list></block></list></block></autolambda><list></list></block></block></script></block-definition><block-definition s="repeat %&apos;action&apos; until %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="202.66666666666666" collapsed="false">Like the built-in REPEAT UNTIL block, except that the ending condition is not tested until the script has been run the first time.  So the script is run at least once.</comment><header></header><code></code><translations>pt:repete _ até que _ $loop-0.7&#xD;ca:repeteix _ fins _&#xD;</translations><inputs><input type="%cs"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;action&apos; while %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="287.3333333333333" collapsed="false">Run the script repeatedly, as long as the given condition is true.  Runs the script at least once before testing the condition.</comment><header></header><code></code><translations>pt:repete _ enquanto _ $loop-0.7&#xD;ca:repeteix _ mentre _&#xD;</translations><inputs><input type="%cs"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat while %&apos;pred&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="264" collapsed="false">Runs the script repeatedly, as long as the condition is true. Tests the condition before the first time the script is run.  Like the built in REPEAT UNTIL except that in this block the condition must be true, not false.</comment><header></header><code></code><translations>pt:enquanto _ , repete _ $loop-0.7&#xD;</translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;num&apos; %&apos;#&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="171" collapsed="false">Runs the script the specified number of times, like the built-in REPEAT block, but this one provides the # variable that can be used inside the script.  Try&#xD;REPEAT (200)&#xD;                MOVE (#) STEPS&#xD;   RIGHT 92&#xD;with the pen down.</comment><header></header><code></code><translations>pt:repete _ vezes _ _ $loop-0.7&#xD;ca:repeteix _ _ _&#xD;</translations><inputs><input type="%n"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; step %&apos;step&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="247.33333333333337" collapsed="false">The primitive FOR block uses an implicit step of ±1 depending on which of the starting and ending values is larger.  This version allows you to provide an explicit step value.  If the sign of the step input is incompatible with the ordering of the starting and ending values, the script will not be run at all.</comment><header></header><code></code><translations>pt:para _ de _ com passo _ a _ _ $loop-0.7&#xD;ca:per _ = _ incrementant _ fins _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>test</l></list></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="step"/><l>0</l></list></block><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block var="i"/><block var="end"/></list></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="end"/></list></block></autolambda><list></list></block></block></script></block><block s="doUntil"><block s="evaluate"><block var="test"/><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="let %&apos;a&apos; be %&apos;val&apos; in %&apos;loop&apos; %&apos;body&apos;" type="command" category="control"><comment x="0" y="0" w="238.66666666666669" collapsed="false">Provides LOOP as a function of one input that runs&#xD;the body of the LET with A set to the function input,&#xD;so the body can run itself recursively.&#xD;See COPY block in Variables for an example of use.</comment><header></header><code></code><translations>pt:tendo _ o valor inicial _ , executa _ definido como _&#xD;ca:fes que _ sigui _ al _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%s"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>a</l><block var="val"/></block><block s="doSetVar"><l>loop</l><block s="reifyScript"><script><block s="doSetVar"><l>a</l><block var="new value"/></block><block s="doRun"><block var="body"/><list><block var="a"/></list></block></script><list><l>new value</l></list></block></block><block s="doRun"><block var="loop"/><list><block var="a"/></list></block></script></block-definition><block-definition s="pipe %&apos;value&apos; $arrowRight %&apos;pipe&apos;" type="reporter" category="control"><comment x="0" y="0" w="339.3333333333333" collapsed="false">The inputs are a starting value and one or more monadic functions.&#xD;The first function is called with the starting value as its input.&#xD;The second function is called with the value reported by the first function as its input, and so on.  PIPE reports the value reported by the last function.  PIPE provides an alternative notation for function composition instead of the usual nesting.&#xD;&#xD;nested acronym:                                                                 &#xD;report (combine (keep items (capital-letter? ( )) from&#xD;                  (map (letter (1) of ( )) over&#xD;                                                 (sentence→list (phrase)))) using (join ( ) ( )))&#xD;&#xD;piped acronym:                                             &#xD;report (pipe (phrase) → &#xD;            (sentence→list ( ))&#xD;                              (map (letter (1) of ( )) over ( ))&#xD;                                              (keep items (capital-letter? ( )) from ( ))&#xD;                                (combine ( ) using (join ( ) ( )))&#xD;&#xD;Some people find PIPE easier to read because the functions are called in the same order in which you read them, whereas in nested composition the innermost function is called first. </comment><header></header><code></code><translations>pt:a aplicação a _ de _&#xD;ca:canalitza _ $arrowRight _&#xD;</translations><inputs><input type="%s"></input><input type="%mult%repRing"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="pipe"/></block><script><block s="doReport"><block var="value"/></block></script><list></list></block><block s="doReport"><custom-block s="pipe %s $arrowRight %mult%repRing"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="pipe"/></block><list><block var="value"/></list></block><block s="reportCDR"><block var="pipe"/></block></custom-block></block></script></block-definition><block-definition s="toggle pen" type="command" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="getPenDown"></block><script><block s="up"></block></script><script><block s="down"></block></script></block></script></block-definition><block-definition s="pen crayon" type="reporter" category="pen"><header></header><code></code><translations>ca:llapis de color&#xD;</translations><inputs></inputs><script><custom-block s="✐ initialize variables"></custom-block><block s="doReport"><block var="✐ last crayon"/></block></script></block-definition><block-definition s="fade away" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="setScale"><l>30</l></block><block s="show"></block><custom-block s="repeat %cs until %boolUE"><script><block s="changeScale"><l>-5</l></block><block s="changeEffect"><l><option>ghost</option></l><l>10</l></block><block s="doWait"><l>0.5</l></block></script><block s="reportVariadicEquals"><list><block s="getEffect"><l><option>ghost</option></l></block><l>100</l></list></block></custom-block></script></block-definition><block-definition s="make a dot fade" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="up"></block><block s="doSwitchToCostume"><l>black</l></block><block s="doTellTo"><block s="newClone"><l><option>myself</option></l></block><block s="reifyScript"><script><block s="fork"><block s="reifyScript"><script><custom-block s="fade away"></custom-block></script><list></list></block><list></list></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="color change" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="setColor"><color>36,255,248,1</color></block><block s="setPenColorDimension"><l><option>hue</option></l><block s="reportRandom"><l>1</l><l>100</l></block></block><block s="setScale"><l>30</l></block><block s="clearEffects"></block><block s="setEffect"><l><option>color</option></l><l>0</l></block><block s="doSwitchToCostume"><l><option>Turtle</option></l></block><block s="show"></block><custom-block s="repeat %cs until %boolUE"><script><block s="changeEffect"><l><option>color</option></l><l>10</l></block><block s="doWait"><block s="reportQuotient"><block s="reportRandom"><l>1</l><l>10</l></block><l>10</l></block></block></script><block s="reportVariadicGreaterThan"><list><block s="getEffect"><l><option>color</option></l></block><l>100</l></list></block></custom-block></script></block-definition><block-definition s="make a dot change color" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="up"></block><block s="doSwitchToCostume"><l><option>Turtle</option></l></block><block s="doTellTo"><block s="newClone"><l><option>myself</option></l></block><block s="reifyScript"><script><block s="fork"><block s="reifyScript"><script><custom-block s="color change"></custom-block></script><list></list></block><list></list></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="make a dot fall" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="up"></block><block s="doSwitchToCostume"><l>black</l></block><block s="doTellTo"><block s="newClone"><l><option>myself</option></l></block><block s="reifyScript"><script><block s="fork"><block s="reifyScript"><script><custom-block s="fall away"></custom-block></script><list></list></block><list></list></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="fall away" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>velocity</l><l>acceleration</l></list></block><block s="doSetVar"><l>velocity</l><l>1</l></block><block s="doSetVar"><l>acceleration</l><l>2</l></block><block s="setScale"><l>30</l></block><block s="show"></block><block s="setHeading"><l>180</l></block><custom-block s="repeat %cs until %boolUE"><script><block s="forward"><block var="velocity"/></block><block s="doChangeVar"><l>velocity</l><block var="acceleration"/></block></script><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block s="yPosition"></block><l>-170</l></list></block><block s="reportTouchingColor"><color>20,2,0,1</color></block></list></block></custom-block></script></block-definition><block-definition s="change crayon by %&apos;amount&apos;" type="command" category="pen"><header></header><code></code><translations>ca:canvia de llapis de color saltant _&#xD;</translations><inputs><input type="%n"></input></inputs><script><custom-block s="set pen to crayon %s"><block s="reportVariadicSum"><list><block var="✐ last crayon"/><block var="amount"/></list></block></custom-block></script></block-definition><block-definition s="set pen to crayon %&apos;which&apos;" type="command" category="pen"><comment x="0" y="0" w="297.3333333333333" collapsed="false">Sets the pen color &#xD;to one of 100 preselected colors, like a box of 100 crayons.&#xD;The colors have names that are meant to be evocative.&#xD;They are organized in families, more or less corresponding&#xD;to spectral (rainbow) colors; the input slot has a two-level menu&#xD;in which you can hover over a family name to see the colors&#xD;of that family, each including a crayon number and an RGB value. &#xD;See Appendix A of the Snap! Reference Manual for more details.</comment><header></header><code></code><translations>ca:fixa el llapis de color _&#xD;</translations><inputs><input type="%s"><options>grays={&#xD;0 black #000000=0&#xD;1 gray7 #121212=1&#xD;2 gray14 #242424=2&#xD;3 gray21 #363636=3&#xD;4 gray28 #484848=4&#xD;5 gray36 #5c5c5c=5&#xD;6 gray43 #6d6d6d=6&#xD;7 gray50 #7f7f7f=7&#xD;8 gray57 #919191=8&#xD;9 gray64 #a3a3a3=9&#xD;10 gray71 #b5b5b5=10&#xD;11 gray78 #c8c8c8=11&#xD;12 gray85 #dadada=12&#xD;13 gray92 #ececec=13&#xD;14 white #ffffff=14&#xD;}&#xD;pinks={&#xD;15 deep pink #ff1493=15&#xD;16 hot pink #ff69b4=16&#xD;17 bright pink #ff007f=17&#xD;18 raspberry #e30b5d=18&#xD;19 amaranth #e52b50=19&#xD;}&#xD;reds={&#xD;20 red #ff0000=20&#xD;21 burgundy #900020=21&#xD;22 cherry #990000=22&#xD;23 dark candy apple red #a40000=23&#xD;24 sanguine #c00000=24&#xD;25 maroon #800000=25&#xD;26 crimson #c90016=26&#xD;27 Lists #d94d11=27&#xD;28 candy apple red #ff0800=28&#xD;29 coquelicot #ff3800=29&#xD;}&#xD;browns={&#xD;30 saddle brown #8b4513=30&#xD;31 chocolate #7b3f00=31&#xD;32 kobicha #6b4423=32&#xD;33 sepia #704214=33&#xD;34 chestnut #954535=34&#xD;35 dark brown #654321=35&#xD;36 brown #964b00=36&#xD;37 golden brown #996515=37&#xD;38 cinnamon #b87333=38&#xD;39 copper #d2691e=39&#xD;}&#xD;oranges={&#xD;40 orange #ff7f00=40&#xD;41 Pantone orange #ff5800=41&#xD;42 pumpkin #ff7518=42&#xD;43 Variables #f3761d=43&#xD;44 Spanish orange #e86100=44&#xD;45 burnt orange #cc5500=45&#xD;46 sinopia #cb410b=46&#xD;47 ochre #cc7722=47&#xD;48 carrot #ed9121=48&#xD;49 tangerine #f28500=49&#xD;}&#xD;yellows={&#xD;50 yellow #ffff00=50&#xD;51 Control #e6a822=51&#xD;52 dark goldenrod #b8860b=52&#xD;53 goldenrod #daa520=53&#xD;54 saffron #f4c430=54&#xD;55 sandstorm #ecd540=55&#xD;56 mustard #ffdb58=56&#xD;57 gold #ffd700=57&#xD;58 egg yolk #fee33e=58&#xD;59 rubber duck #fbe108=59&#xD;}&#xD;greens={&#xD;60 lime #00ff00=60&#xD;61 apple green #8db600=61&#xD;62 Operators #62c213=62&#xD;63 forest green #228b22=63&#xD;64 green #008000=64&#xD;65 dark green #006400=65&#xD;66 dark pastel green #03c03c=66&#xD;67 emerald #50c878=67&#xD;68 mint #3eb489=68&#xD;69 Pen #00a178=69&#xD;}&#xD;cyans={&#xD;70 aqua (cyan) #00ffff=70&#xD;71 dark cyan #008b8b=71&#xD;72 cerulean #007ba7=72&#xD;73 iceberg #71a6d2=73&#xD;74 Sensing #0494dc=74&#xD;75 teal #008080=75&#xD;76 light sky blue #87cefa=76&#xD;77 deep sky blue #00bfff=77&#xD;78 dodger blue #1e90ff=78&#xD;79 azure #007fff=79&#xD;}&#xD;blues={&#xD;80 blue #0000ff=80&#xD;81 midnight blue #191970=81&#xD;82 dark powder blue #003399=82&#xD;83 cobalt #0047ab=83&#xD;84 denim #1560bd=84&#xD;85 navy blue #000080=85&#xD;86 steel blue #4682b4=86&#xD;87 Motion #4a6cd4=87&#xD;88 cornflower #6495ed=88&#xD;89 slate blue #6a5acd=89&#xD;}&#xD;purples={&#xD;90 violet #8000ff=90&#xD;91 Looks #8f56e3=91&#xD;92 grape #6f2da8=92&#xD;93 indigo #4b0082=93&#xD;94 x11 purple #a020f0=94&#xD;95 magenta (fuchia) #ff00ff=95&#xD;96 dark orchid #9932cc=96&#xD;97 Sound #cf4ad9=97&#xD;98 purple #7f007f=98&#xD;99 dark magenta #8b008b=99&#xD;}</options></input></inputs><script><block s="doDeclareVariables"><list><l>color</l></list></block><custom-block s="✐ initialize variables"></custom-block><block s="doIfElse"><block s="reportIsA"><block var="which"/><l><option>text</option></l></block><script><block s="doSetVar"><l>color</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportListItem"><l>4</l><l/></block><block var="which"/></list></block></autolambda><list></list></block><block var="✐ crayon colors"/></block></block><block s="doIfElse"><block s="reportVariadicNotEquals"><list><block var="color"/><l></l></list></block><script><block s="doSetVar"><l>✐ last crayon</l><block s="reportListItem"><l>5</l><block var="color"/></block></block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>No such crayon: </l><block var="which"/></list></block></custom-block></script></block></script><script><block s="doSetVar"><l>color</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block var="which"/><l>100</l></block><l>1</l></list></block><block var="✐ crayon colors"/></block></block><block s="doSetVar"><l>✐ last crayon</l><block s="reportModulus"><block var="which"/><l>100</l></block></block></script></block><custom-block s="set pen color to r: %n g: %n b: %n"><block s="reportListItem"><l>1</l><block var="color"/></block><block s="reportListItem"><l>2</l><block var="color"/></block><block s="reportListItem"><l>3</l><block var="color"/></block></custom-block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control" helper="true"><header></header><code></code><translations>pt:lança o erro _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="set pen color to r: %&apos;r&apos; g: %&apos;g&apos; b: %&apos;b&apos;" type="command" category="pen" helper="true"><comment x="0" y="0" w="220.66666666666666" collapsed="false">Takes three inputs for red, green, and blue&#xD;values, each between 0 and 255.  0,0,0 is black; 255,255,255 is white.  255,255,0 is yellow, and so on.&#xD;&#xD;The SET PEN block in this library lets you set individual red, green, or blue without changing the others, lets you provide a list of three RGB color components, and lets you provide a six-digit hexadecimal number, the form in which RGB color values are usually found online.&#xD;&#xD;See Appendix A of the Snap! Reference Manual for details.</comment><header></header><code></code><translations>pt:altera a cor da tua caneta para vermelho _ , verde _ e azul _ (0 a 255)&#xD;</translations><inputs><input type="%n">255</input><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doApplyExtension"><l>clr_setpen(clr)</l><list><block s="reportApplyExtension"><l>clr_rgba(r, g, b, a)</l><list><block var="r"/><block var="g"/><block var="b"/><block s="reportApplyExtension"><l>clr_channel(clr, rgba)</l><list><block s="reportApplyExtension"><l>clr_pen</l><list></list></block><l>a</l></list></block></list></block></list></block></script></block-definition><block-definition s="✐ initialize variables" type="command" category="pen" helper="true"><comment x="0" y="0" w="180" collapsed="false">Creates a bunch of global variables.&#xD;For internal use by Color library.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><custom-block s="does var %s exist?"><l>✐ last crayon</l></custom-block><script><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><custom-block s="create %s var %mult%txt"><l>global</l><list><l>✐ last crayon</l><l>✐ crayon colors</l></list></custom-block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ crayon colors"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ crayon colors</l><block s="reportTextSplit"><custom-block s="multiline %mlt"><l>0,0,0,black,0&#xD;18,18,18,gray7,1&#xD;36,36,36,gray14,2&#xD;54,54,54,gray21,3&#xD;72,72,72,gray28,4&#xD;92,92,92,gray36,5&#xD;109,109,109,gray43,6&#xD;127,127,127,gray50,7&#xD;145,145,145,gray57,8&#xD;163,163,163,gray64,9&#xD;181,181,181,gray71,10&#xD;200,200,200,gray78,11&#xD;218,218,218,gray85,12&#xD;236,236,236,gray92,13&#xD;255,255,255,white,14&#xD;255,20,147,deep pink,15&#xD;255,105,180,hot pink,16&#xD;255,0,127,bright pink,17&#xD;227,11,93,raspberry,18&#xD;229,43,80,amaranth,19&#xD;255,0,0,red,20&#xD;144,0,32,burgundy,21&#xD;153,0,0,cherry,22&#xD;164,0,0,dark candy apple red,23&#xD;192,0,0,sanguine,24&#xD;128,0,0,maroon,25&#xD;201,0,22,crimson,26&#xD;217,77,17,Lists,27&#xD;255,8,0,candy apple red,28&#xD;255,56,0,coquelicot,29&#xD;139,69,19,saddle brown,30&#xD;123,63,0,chocolate,31&#xD;107,68,35,kobicha,32&#xD;112,66,20,sepia,33&#xD;149,69,53,chestnut,34&#xD;101,67,33,dark brown,35&#xD;150,75,0,brown,36&#xD;153,101,21,golden brown,37&#xD;184,115,51,cinnamon,38&#xD;210,105,30,copper,39&#xD;255,127,0,orange,40&#xD;255,88,0,Pantone orange,41&#xD;255,117,24,pumpkin,42&#xD;243,118,29,Variables,43&#xD;232,97,0,Spanish orange,44&#xD;204,85,0,burnt orange,45&#xD;203,65,11,sinopia,46&#xD;204,119,34,ochre,47&#xD;237,145,33,carrot,48&#xD;242,133,0,tangerine,49&#xD;255,255,0,yellow,50&#xD;230,168,34,Control,51&#xD;184,134,11,dark goldenrod,52&#xD;218,165,32,goldenrod,53&#xD;244,196,48,saffron,54&#xD;236,213,64,sandstorm,55&#xD;255,219,88,mustard,56&#xD;255,215,0,gold,57&#xD;254,227,62,egg yolk,58&#xD;251,225,8,rubber duck,59&#xD;0,255,0,lime,60&#xD;141,182,0,apple green,61&#xD;98,194,19,Operators,62&#xD;34,139,34,forest green,63&#xD;0,128,0,green,64&#xD;0,100,0,dark green,65&#xD;3,192,60,dark pastel green,66&#xD;80,200,120,emerald,67&#xD;62,180,137,mint,68&#xD;0,161,120,Pen,69&#xD;0,255,255,aqua,70&#xD;0,139,139,dark cyan,71&#xD;0,123,167,cerulean,72&#xD;113,166,210,iceberg,73&#xD;4,148,220,Sensing,74&#xD;0,128,128,teal,75&#xD;135,206,250,light sky blue,76&#xD;0,191,255,deep sky blue,77&#xD;30,144,255,dodger blue,78&#xD;0,127,255,azure,79&#xD;0,0,255,blue,80&#xD;25,25,112,midnight blue,81&#xD;0,51,153,dark powder blue,82&#xD;0,71,171,cobalt,83&#xD;21,96,189,denim,84&#xD;0,0,128,navy blue,85&#xD;70,130,180,steel blue,86&#xD;74,108,212,Motion,87&#xD;100,149,237,cornflower,88&#xD;106,90,205,slate blue,89&#xD;128,0,255,violet,90&#xD;143,86,227,Looks,91&#xD;111,45,168,grape,92&#xD;75,0,130,indigo,93&#xD;160,32,240,x11 purple,94&#xD;255,0,255,magenta,95&#xD;153,50,204,dark orchid,96&#xD;207,74,217,Sound,97&#xD;127,0,127,purple,98&#xD;139,0,139,dark magenta,99&#xD;0,255,255,cyan,100&#xD;255,0,255,fuchia,101&#xD;18,18,18,grey7,102&#xD;36,36,36,grey14,103&#xD;54,54,54,grey21,104&#xD;72,72,72,grey28,105&#xD;92,92,92,grey36,106&#xD;109,109,109,grey43,107&#xD;127,127,127,grey50,108&#xD;145,145,145,grey57,109&#xD;163,163,163,grey64,110&#xD;181,181,181,grey71,111&#xD;200,200,200,grey78,112&#xD;218,218,218,grey85,113&#xD;236,236,236,grey92,114</l></custom-block><l><option>csv</option></l></block></block></script><list></list></block></script></block-definition><block-definition s="does var %&apos;_name&apos; exist?" type="predicate" category="variables" helper="true"><comment x="0" y="0" w="146" collapsed="false">This block reports &quot;true&quot; if there is a variable with this given name (input slot) in that context.&#xD;&#xD;It can be a global, sprite or script variable.&#xD;&#xD;Otherwise it reports &quot;false&quot;.</comment><header></header><code></code><translations>pt:a variável _ existe&#xD;ca:existeix la variable _ ?&#xD;es:existe la variable _ ?&#xD;de:existiert var _ ?&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doApplyExtension"><l>err_ignore</l><list><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="_name"/></list></block></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="reifyScript"><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><l></l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="multiline %&apos;text&apos;" type="reporter" category="operators" helper="true"><header></header><code></code><translations>pt:o texto multilinha _&#xD;</translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block var="text"/></block></script></block-definition><block-definition s="create %&apos;_scope&apos; var %&apos;_names&apos;" type="command" category="variables" helper="true"><comment x="0" y="0" w="146" collapsed="false">This block creates  new variables on the selected scope: global (for all sprites), sprite (for this sprite only) or script (only for that blocks stack) with the names given (in &apos;names&apos; list).&#xD;&#xD;If there is already a variable with that name in that scope, it does nothing: no errors and no overwrites.</comment><header></header><code></code><translations>pt:cria as variáveis _ _&#xD;ca:crea les _ variables _&#xD;es:crear las _ variables _&#xD;de:erstellen _ var _&#xD;</translations><inputs><input type="%s" readonly="true">global<options>global&#xD;sprite&#xD;script</options></input><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>_item</l><block var="_names"/><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><block var="_scope"/><block var="_item"/></list></block></script></block></script></block></script></block-definition><block-definition s="Stop speech recognition" type="command" category="other"><comment x="0" y="0" w="282" collapsed="true">Stops the current attempt to recognize what is spoken.</comment><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>stop_speech_recognition</l><list></list></custom-block></script></block-definition><block-definition s="Listen to the microphone $nl %&apos;handle response&apos; when recognition completes $nl but if error %&apos;handle error&apos; with error message" type="command" category="other"><comment x="0" y="0" w="300" collapsed="false">Listens to the microphone for speech. The first script is run with the recognized text unless an error is encountered then the second script is called with text describing the error.</comment><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input><input type="%cmdRing"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>start_speech_recognition</l><list><block var="handle response"/><block var="handle error"/></list></custom-block></script></block-definition><block-definition s="Listen to the microphone $nl %&apos;respond as heard&apos; as words are recognised $nl %&apos;handle final response&apos; when recognition completes $nl but if error %&apos;handle error&apos; with error message $nl with language %&apos;language&apos; $nl with %&apos;max alternatives&apos; maximum number of alternatives $nl %&apos;handle alternatives&apos; with the list of alternative recognitions $nl %&apos;handle confidences&apos; with the list of confidences" type="command" category="other"><comment x="0" y="0" w="463.99999999999994" collapsed="false">As words are recognised &apos;respond as heard&apos; is passed what the recogniser thinks it has heard. When it thinks you are finished speaking the &apos;handle final response&apos; is given the final text. If an error occurs such as &apos;no-speech&apos; then the error description is given to &apos;handle error&apos;. &apos;language&apos; can be its code or name. You can ask for a list of alternative responses to what was spoken that contains at most &apos;max alternatives&apos;. &apos;handle alternatives&apos; is given a list of alternatives. &apos;handle confidences&apos; is given a list of numbers between 0 and 1 where 1 is certainty.</comment><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input><input type="%cmdRing"></input><input type="%cmdRing"></input><input type="%txt"></input><input type="%n"></input><input type="%cmdRing"></input><input type="%cmdRing"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>start_speech_recognition</l><list><block var="handle final response"/><block var="handle error"/><block var="respond as heard"/><block var="language"/><block var="max alternatives"/><block var="handle alternatives"/><block var="handle confidences"/></list></custom-block></script></block-definition><block-definition s="Broadcast speech recognition results and report any errors %&apos;report&apos;" type="command" category="other"><comment x="0" y="0" w="535" collapsed="false">When something is spoken this broadcasts &apos;heard something&apos; and sets &apos;last thing spoken&apos; to the text that was spoken.&#xD;You will need to create two new variables for this to work: &apos;last thing spoken&apos; and &apos;speech recognition error&apos;. Optionally reports errors. The &apos;stop speech recognition&apos; block will stop the listening as will silence that triggers a &apos;no-speech&apos; error.</comment><header></header><code></code><translations></translations><inputs><input type="%b"></input></inputs><script><custom-block s="Listen to the microphone %br %cmdRing when recognition completes %br but if error %cmdRing with error message"><block s="reifyScript"><script><block s="doSetVar"><l>last thing spoken</l><block var="spoken"/></block><block s="doBroadcast"><l>heard something</l><list></list></block><block s="doWait"><l>.1</l></block><custom-block s="Broadcast speech recognition results and report any errors %b"><block var="report"/></custom-block></script><list><l>spoken</l></list></block><block s="reifyScript"><script><block s="doSetVar"><l>speech recognition error</l><block var="error"/></block><block s="doBroadcast"><l>speech recognition error</l><list></list></block><block s="doIf"><block var="report"/><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="speech recognition error"/><l>no-speech</l></list></block><script><block s="bubble"><l>I didn&apos;t hear anything for a while. Bye. Click the green flag to start listening again.</l></block></script><script><block s="bubble"><block s="reportJoinWords"><list><l>There was an error: </l><block var="speech recognition error"/><l>. Click the green flag to try again.</l></list></block></block></script></block></script><list></list></block></script><list><l>error</l></list></block></custom-block></script></block-definition><block-definition s="Train with audio buckets %&apos;bucket names&apos; labels $nl add to any earlier training %&apos;add to previous training&apos; $nl optionally add this text to the page %&apos;introduction&apos; $nl then %&apos;do when ready&apos; when returning from training" type="command" category="other"><comment x="0" y="0" w="252.85714285714286" collapsed="false">Will display a panel where one can train the system to classify sounds or speech. &apos;bucket names&apos; are the labels of the classes to train. Optionally one can provide HTML to appear on the page as an introduction. If &apos;do when ready&apos; is provided those commands will be run when returning to Snap!</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%b">true</input><input type="%txt"></input><input type="%cs"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>tensorflow_train_using_microphone</l><list><block var="bucket names"/><block var="add to previous training"/><block var="introduction"/><block var="do when ready"/></list></custom-block><block s="doIf"><block s="reportIsA"><block var="do when ready"/><l><option>command</option></l></block><script><block s="doWaitUntil"><block s="reportNot"><custom-block s="%txt panel visible"><l>training using microphone</l></custom-block></block></block><block s="doRun"><block var="do when ready"/><list></list></block></script><list></list></block></script></block-definition><block-definition s="the next thing spoken" type="reporter" category="other"><comment x="0" y="0" w="281.42857142857144" collapsed="false">Reports the last thing spoken or if there was an error the error message. Note that &quot;no-speech&quot; is an error message while if spoken it will be &quot;no speech&quot;. NOTE that this waits for something to be spoken or enough time has passed.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>spoken or error messge</l></list></block><custom-block s="Listen to the microphone %br %cmdRing when recognition completes %br but if error %cmdRing with error message"><block s="reifyScript"><script><block s="doSetVar"><l>spoken or error messge</l><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l>spoken or error messge</l><l></l></block></script><list></list></block></custom-block><block s="doWaitUntil"><block var="spoken or error messge"/></block><block s="doReport"><block var="spoken or error messge"/></block></script></block-definition><block-definition s="show message %&apos;message&apos; for %&apos;seconds&apos; seconds" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%s"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>show_message</l><list><block var="message"/><block var="seconds"/></list></custom-block></script></block-definition><block-definition s="set default language to %&apos;language&apos;" type="command" category="sensing"><comment x="0" y="0" w="275.7142857142857" collapsed="false">Language to use for speech input and output only if no language or voice is specified. Can be the language name in English or itself. Or the official code for the language such as fr-FR for French in France. Also used as the default language for the word embedding blocks.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>set_default_language</l><list><block var="language"/></list></custom-block></script></block-definition><block-definition s="%&apos;source&apos; panel visible" type="reporter" category="sensing"><comment x="0" y="0" w="182.14285714285717" collapsed="false">Reports whether the selected support panel is visible. </comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">training using camera<options>training using camera&#xD;training using microphone&#xD;posenet</options></input></inputs><script><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>support_window_visible</l><list><block var="source"/></list></custom-block></block></script></block-definition><block-definition s="Audio label confidences %&apos;process confidences&apos; $nl using %&apos;model&apos;" type="command" category="other"><comment x="0" y="0" w="318.5714285714286" collapsed="false">As it recognises what is spoken it passes the list of label confidences to the  &apos;process confidences&apos; input. If model is &quot;Pre-trained model of 20 words&quot; then it will recognise  &apos;zero&apos;, &apos;one&apos;, &apos;two&apos;, &apos;three&apos;, &apos;four&apos;, &apos;five&apos;, &apos;six&apos;, &apos;seven&apos;, &apos;eight&apos;, &apos;nine&apos;, &apos;up&apos;, &apos;down&apos;, &apos;left&apos;, &apos;right&apos;, &apos;go&apos;, &apos;stop&apos;, &apos;yes&apos;, and &apos;no&apos;,&#xD;Alternatively if model is &quot;User-trained model&quot; then the model trained by running the &quot;Train with audio buckets&quot; block will be used.&#xD;Use the &apos;stop listening for audio label confidences&apos; block to stop this.</comment><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input><input type="%txt" readonly="true">User-trained model<options>Pre-trained model of 20 words&#xD;User-trained model</options></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>microphone_confidences</l><list><block s="reportVariadicEquals"><list><block var="model"/><l>Pre-trained model of 20 words</l></list></block><block var="process confidences"/></list></custom-block></script></block-definition><block-definition s="Load microphone training data from URL %&apos;URL&apos; then %&apos;do after loading&apos;" type="command" category="other"><comment x="0" y="0" w="255.00000000000003" collapsed="false">Loads in the training created using the &apos;Train with audio buckets ...&quot; block where the saved training has been copied to a web server.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%cs"></input></inputs><script><custom-block s="show message %txt for %s seconds"><l>Loading</l><l>999</l></custom-block><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>load_microphone_training_from_URL</l><list><block var="URL"/><block s="reifyScript"><script><custom-block s="show message %txt for %s seconds"><l></l><l>0</l><comment w="183.57142857142858" collapsed="true">Removes the loading message.</comment></custom-block><block s="doRun"><block var="do after loading"/><list></list></block></script><list></list></block></list></custom-block></script></block-definition><block-definition s="Load microphone training data from file then %&apos;after loading training data&apos;" type="command" category="other"><comment x="0" y="0" w="286.4285714285715" collapsed="false">Loads in the training created using the &apos;Train with audio buckets ...&quot; block . It prompts for the file.</comment><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs><script><custom-block s="show message %txt for %s seconds"><l>Loading</l><l>999</l></custom-block><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>load_microphone_training_from_file</l><list><block s="reifyScript"><script><custom-block s="show message %txt for %s seconds"><l></l><l>0</l><comment w="183.57142857142858" collapsed="true">Removes the loading message.</comment></custom-block><block s="doRun"><block var="after loading training data"/><list></list></block></script><list></list></block></list></custom-block></script></block-definition><block-definition s="Open support panel %&apos;source&apos;" type="command" category="sensing"><comment x="0" y="0" w="170.71428571428575" collapsed="false">Open an interface page for different machine learning models.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">training using camera<options>training using camera&#xD;training using microphone&#xD;posenet&#xD;tensorflow.js</options></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>display_support_window</l><list><block var="source"/></list></custom-block></script></block-definition><block-definition s="load tensorflow" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>loaded</l></list></block><block s="doSetVar"><l>loaded</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>load_tensorflow</l><list><block s="reifyScript"><script><block s="doSetVar"><l>loaded</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></list></custom-block><block s="doWaitUntil"><block var="loaded"/></block></script></block-definition><block-definition s="Get predictions using Teachable Machine audio model %&apos;URL&apos; $nl and process each word recognised %&apos;process word predictions&apos; $nl or else if there is an error %&apos;do if error&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%cmdRing"></input><input type="%cmdRing"></input></inputs><script><custom-block s="Load eCraft2Learn library"></custom-block><custom-block s="load tensorflow"></custom-block><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>get_prediction_from_teachable_machine_audio_model</l><list><block var="URL"/><l>option not yet supported</l><block var="process word predictions"/><block var="do if error"/></list></custom-block></script></block-definition><block-definition s="Show message %&apos;message&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>show_message</l><list><block var="message"/></list></custom-block></script></block-definition><block-definition s="Train Teachable Machine with %&apos;type&apos; data" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">image<options>image&#xD;audio&#xD;pose</options></input></inputs><script><custom-block s="Open web page %txt"><block s="reportJoinWords"><list><l>https://teachablemachine.withgoogle.com/train/</l><block var="type"/></list></block></custom-block></script></block-definition><block-definition s="Stop listening for audio label confidences" type="command" category="other"><comment x="0" y="0" w="183.57142857142858" collapsed="false">If any of the blocks listening for speech or sounds are running this stops them.</comment><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>stop_audio_recognition</l><list></list></custom-block></script></block-definition><block-definition s="call eCraft2Learn reporter %&apos;reporter name&apos; with %&apos;inputs&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%mult%s"></input></inputs><script><custom-block s="load eCraft2Learn"></custom-block><block s="doReport"><block s="reportApplyExtension"><l>e2l_call(reporter_name, parameters)</l><list><block var="reporter name"/><block var="inputs"/></list></block></block></script></block-definition><block-definition s="Set presentation mode to %&apos;flag&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%b"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>set_presentation_mode</l><list><block var="flag"/></list></custom-block></script></block-definition><block-definition s="Open web page %&apos;url&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><custom-block s="Load eCraft2Learn library"></custom-block><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>open_web_page</l><list><block var="url"/></list></custom-block></script></block-definition><block-definition s="run eCraft2Learn command %&apos;command name&apos; with %&apos;inputs&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%mult%s"></input></inputs><script><custom-block s="load eCraft2Learn"></custom-block><block s="doApplyExtension"><l>e2l_run(command_name, parameters)</l><list><block var="command name"/><block var="inputs"/></list></block></script></block-definition><block-definition s="load eCraft2Learn" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>https://ecraft2learn.github.io/ai/ecraft2learn.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>https://ecraft2learn.github.io/ai/js/ecraft2learn_snap_extension.js</l></list></block></script></block-definition><block-definition s="Load eCraft2Learn library" type="command" category="other"><comment x="0" y="0" w="238.57142857142858" collapsed="false">No longer needed in Snap! 7+ but retained to avoid error from blocks that expect it.</comment><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="speak %&apos;text&apos; with %&apos;lang&apos; accent $nl and pitch %&apos;pitch&apos; rate %&apos;rate&apos;" type="command" category="sound"><header></header><code></code><translations>de:sprich _ mit _ Aussprache _ und Höhe _ Geschwindigkeit _&#xD;pt:fala _ na língua _ _ com tom _ e velocidade _&#xD;ca:digues _ amb accent _ _ to _ i velocitat _&#xD;pl:powiedz _ z akcentem _ _ wysokość _ szybkość _&#xD;</translations><inputs><input type="%s">Hello, World!</input><input type="%txt">en-US<options>العربية=ar&#xD;Български=bg&#xD;বাংলা=bn&#xD;Català=ca&#xD;Català - Valencià=ca-VA&#xD;Česky=cs&#xD;Deutsch=de&#xD;Dansk=dk&#xD;Ελληνικά=el&#xD;English-American=en-US&#xD;English-British=en-GB&#xD;Esperanto=eo&#xD;Español=es&#xD;Eesti=et&#xD;Euskara=eu&#xD;suomi=fi&#xD;Français=fr&#xD;Galego=gl&#xD;Hrvatski=hr&#xD;Magyar=hu&#xD;Interlingua=ia&#xD;Bahasa Indonesia=id&#xD;Italiano=it&#xD;日本語=ja&#xD;にほんご=ja-HIRA&#xD;ಕನ್ನಡ=kn&#xD;한국어=ko&#xD;Malayalam=ml&#xD;Nederlands=nl&#xD;Norsk=no&#xD;Polski=pl&#xD;Português=pt&#xD;Português do Brasil=pt-BR&#xD;Român=ro&#xD;Русский=ru&#xD;Slovenščina=si&#xD;svenska=sv&#xD;Tamil=ta&#xD;Telagu=te&#xD;Türkçe=tr&#xD;Українська=ua&#xD;简体中文=zh-CN&#xD;繁體中文=zh-TW</options></input><input type="%n">1</input><input type="%n">1</input></inputs><script><block s="doApplyExtension"><l>tts_speak(txt, lang, pitch, rate)</l><list><block var="text"/><block var="lang"/><block var="pitch"/><block var="rate"/></list></block></script></block-definition><block-definition s="speak %&apos;text&apos; with %&apos;lang&apos; accent $nl and pitch %&apos;pitch&apos; rate %&apos;rate&apos; and wait" type="command" category="sound"><header></header><code></code><translations>de:sprich _ mit _ Aussprache _ und Höhe _ Geschwindigkeit _ und warte&#xD;pt:fala _ na língua _ _ com tom _ e velocidade _ , e espera&#xD;ca:digues _ amb accent _ _ to _ velocitat _ i espera&#xD;pl:powiedz _ z akcentem _ _ wysokość _ szybkość _ i czekaj&#xD;</translations><inputs><input type="%s">Hello, World!</input><input type="%txt">en-US<options>العربية=ar&#xD;Български=bg&#xD;বাংলা=bn&#xD;Català=ca&#xD;Català - Valencià=ca-VA&#xD;Česky=cs&#xD;Deutsch=de&#xD;Dansk=dk&#xD;Ελληνικά=el&#xD;English-American=en-US&#xD;English-British=en-GB&#xD;Esperanto=eo&#xD;Español=es&#xD;Eesti=et&#xD;Euskara=eu&#xD;suomi=fi&#xD;Français=fr&#xD;Galego=gl&#xD;Hrvatski=hr&#xD;Magyar=hu&#xD;Interlingua=ia&#xD;Bahasa Indonesia=id&#xD;Italiano=it&#xD;日本語=ja&#xD;にほんご=ja-HIRA&#xD;ಕನ್ನಡ=kn&#xD;한국어=ko&#xD;Malayalam=ml&#xD;Nederlands=nl&#xD;Norsk=no&#xD;Polski=pl&#xD;Português=pt&#xD;Português do Brasil=pt-BR&#xD;Român=ro&#xD;Русский=ru&#xD;Slovenščina=si&#xD;svenska=sv&#xD;Tamil=ta&#xD;Telagu=te&#xD;Türkçe=tr&#xD;Українська=ua&#xD;简体中文=zh-CN&#xD;繁體中文=zh-TW</options></input><input type="%n">1</input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>callback</l></list></block><block s="doSetVar"><l>callback</l><block s="reportApplyExtension"><l>tts_speak(txt, lang, pitch, rate)</l><list><block var="text"/><block var="lang"/><block var="pitch"/><block var="rate"/></list></block></block><block s="doWaitUntil"><block s="evaluate"><block var="callback"/><list></list></block></block></script></block-definition><block-definition s="recognize speech" type="reporter" category="sensing"><header></header><code></code><translations>de:erkenne Gesprochenes&#xD;ar:التعرف على الكلام&#xD;bg:Разпознаване на изговорени думи&#xD;hr:Prepoznavanje izgovorenih riječi&#xD;hy:ճանաչել ասված բառերը&#xD;ca:reconèixer les paraules pronunciades&#xD;cs:Rozpoznávání mluvených slov&#xD;dk:At genkende talte ord&#xD;eu:ahozko hitzak ezagutu&#xD;el:Αναγνώριση προφορικών λέξεων&#xD;es:Reconocer palabras habladas&#xD;fi:Puhuttujen sanojen tunnistaminen&#xD;fr:Reconnaître les mots parlés&#xD;he:זיהוי מילים מדוברות&#xD;hi:बोले गए शब्दों को पहचानना&#xD;hu:A kimondott szavak felismerése&#xD;it:Riconoscere le parole pronunciate&#xD;ja:話し言葉を認識する&#xD;ko:말한 단어 인식&#xD;no:Gjenkjenne talte ord&#xD;po:Rozpoznawanie wypowiedzianych słów&#xD;pt_BR:Reconhecendo palavras faladas&#xD;pt:Reconhecendo palavras faladas&#xD;ro:Recunoașterea cuvintelor rostite&#xD;ru:Распознавание произнесенных слов&#xD;sk:Rozpoznávanie hovorených slov&#xD;si:Prepoznavanje govorjenih besed&#xD;sv:Att känna igen talade ord&#xD;ti:ዝተዛረቡ ቃላት ምልላይ&#xD;tr:Konuşulan kelimeleri tanıma&#xD;ua:Розпізнавання вимовлених слів&#xD;zh_CN:识别口语单词&#xD;zh_TW:辨識口語單字&#xD;nl:gesproken woorden herkennen&#xD;et:ära tunda öeldud sõnu&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>tts_recognize</l><list></list></block></block></script></block-definition><block-definition s="stop speech recognition" type="command" category="sensing"><header></header><code></code><translations>de:stoppe Spracherkennung&#xD;</translations><inputs></inputs><script><block s="doApplyExtension"><l>tts_stop</l><list></list></block></script></block-definition><block-definition s="activate speech synthesis %&apos;msg&apos;" type="command" category="sound"><comment x="0" y="0" w="201" collapsed="false">create a DOM button element covering the stage displaying the given label text, if any, blocking the current script&apos;s execution until the user has clicked the button, which will enable speech synthesis on stupid iOS / iPadOS devices, where Apple forgot to activate speech synthesis when the user interacts with a canvas element. Sigh.&#xD;&#xD;Do this right when you start the project. What a kludge.&#xD;</comment><header></header><code></code><translations>de:aktiviere Sprachausgabe _&#xD;</translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doApplyExtension"><l>tts_activate(msg)</l><list><block var="msg"/></list></block></script></block-definition></blocks><primitives></primitives><stage name="Stage" width="480" height="360" costume="0" 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="1184"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="1185"></list></costumes><sounds><list struct="atomic" id="1186"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Other Sprite" idx="3" x="147.53048327204692" y="147.5304832720494" heading="45" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="0,255,0,1" pen="tip" id="1191"><costumes><list struct="atomic" id="1192"></list></costumes><sounds><list struct="atomic" id="1193"></list></sounds><blocks></blocks><variables></variables><scripts><script x="85.00000000000001" y="13.000000000000025"><block s="receiveGo"><comment w="90" collapsed="false">Use this to interact with the first Sprite</comment></block></script><script x="386" y="14.50000000000002"><block s="hide"></block></script><script x="438" y="165.99999999999997"><block s="clearEffects"></block></script><script x="85.73529411764707" y="70.52941176470588"><block s="doDeclareVariables"><list><l>velocity</l></list></block><block s="show"></block><block s="doSetVar"><l>velocity</l><l>2</l></block><block s="clear"><comment w="90" collapsed="false">Clear everything out</comment></block><block s="gotoXY"><l>45</l><l>45</l></block><block s="setHeading"><l>45</l></block><custom-block s="set pen to crayon %s"><l>60</l></custom-block><block s="setSize"><l>2</l><comment w="90" collapsed="false">Nudge continuous motion</comment></block><block s="doForever"><script><block s="doIfElse"><block s="reportKeyPressed"><l><option>space</option></l></block><script><block s="down"></block></script><script><block s="up"></block></script></block><block s="doIf"><block s="reportKeyPressed"><l><option>up arrow</option></l></block><script><block s="turnLeft"><l>10</l></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>down arrow</option></l></block><script><block s="turnLeft"><l>10</l></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>right arrow</option></l></block><script><block s="doChangeVar"><l>velocity</l><l>0.5</l></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>left arrow</option></l></block><script><block s="doChangeVar"><l>velocity</l><l>-0.5</l></block></script><list></list></block><block s="forward"><block var="velocity"/></block><block s="bounceOffEdge"></block></script></block></script></scripts></sprite><sprite name="Dot" idx="2" x="-143" y="124" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="1" color="255,252,240,1" pen="tip" id="1276"><costumes><list id="1277"><item><ref mediaID="Interactivity - 16Feb_Dot_cst_black"></ref></item><item><ref mediaID="Interactivity - 16Feb_Dot_cst_white"></ref></item></list></costumes><sounds><list struct="atomic" id="1278"></list></sounds><blocks></blocks><variables></variables><scripts><script x="76" y="10"><block s="show"></block><block s="doRepeat"><l>10</l><script><block s="forward"><l>10</l></block><custom-block s="make a dot fall"></custom-block></script></block></script><script x="83" y="255.16666666666674"><block s="gotoXY"><l>0</l><l>0</l></block></script><script x="309" y="23.166666666666742"><block s="gotoXY"><l>0</l><l>0</l></block><block s="show"></block><block s="setEffect"><l><option>color</option></l><l>0</l></block></script><script x="508.99999999999994" y="32.16666666666663"><block s="doSwitchToCostume"><l><option>Turtle</option></l></block><block s="clearEffects"></block><block s="doForever"><script><custom-block s="set pen to crayon %s"><block s="reportMouseX"></block></custom-block></script></block></script><script x="280" y="164.83333333333337"><block s="up"></block></script><script x="577" y="240.10000000000002"><custom-block s="change crayon by %n"><l>2</l></custom-block></script><script x="543.6396484375" y="293.1"><custom-block s="pen crayon"></custom-block></script><script x="321" y="333.66666666666663"><block s="show"></block></script><script x="399.99999999999994" y="177"><block s="clearEffects"></block></script><script x="140" y="359.6666666666665"><custom-block s="color change"></custom-block></script><script x="409" y="291.66666666666663"><block s="doStamp"></block></script><script x="10" y="201.66666666666669"><block s="setColor"><color>255,252,240,1</color></block><block s="floodFill"></block></script><script x="73" y="130.83333333333337"><custom-block s="make a dot change color"></custom-block></script><script x="224.99999999999997" y="28.33333333333337"><block s="hide"></block></script></scripts></sprite><sprite name="Sprite" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="0" color="251,0,39,1" pen="tip" id="1322"><costumes><list id="1323"><item><ref mediaID="Interactivity - 16Feb_Sprite_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="1324"></list></sounds><blocks></blocks><variables></variables><scripts><script x="421.35294117647135" y="1008.8529411764708"><block s="receiveGo"><comment w="90" collapsed="false">Use this to interact with the other sprite</comment></block></script><script x="15.3529411764705" y="7.352941176470588"><block s="clear"><comment w="90" collapsed="false">Clear everything out</comment></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="setColor"><color>41,17,0,1</color></block></script><script x="46.35294117647072" y="1200.5196078431393"><block s="setSize"><l>2</l><comment w="90" collapsed="false">Mystery drawing program</comment></block><block s="doForever"><script><block s="doIfElse"><block s="reportMouseDown"></block><script><block s="down"></block></script><script><block s="up"></block></script></block><block s="doIf"><block s="reportKeyPressed"><l><option>up arrow</option></l></block><script><block s="changeSize"><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>down arrow</option></l></block><script><custom-block s="change crayon by %n"><l>2</l></custom-block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>1</option></l></block><script><block s="setSize"><l>1</l></block></script><list></list></block><block s="doGotoObject"><l><option>mouse-pointer</option></l></block></script></block></script><script x="317.35294117647067" y="9.352941176470775"><block s="doForever"><script><block s="doThink"><block s="reportAudio"><l><option>volume</option></l></block></block><block s="doWait"><l>0.5</l></block></script><comment w="90" collapsed="false">Test sensors like this</comment></block></script><script x="478.35294117647067" y="88.519607843137"><block s="setSize"><l>2</l><comment w="90" collapsed="false">Draw with random component</comment></block><block s="doForever"><script><block s="doIfElse"><block s="reportMouseDown"></block><script><block s="down"></block></script><script><block s="up"></block></script></block><block s="doGotoObject"><l><option>mouse-pointer</option></l></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportRandom"><l>1</l><l>10</l></block><l>8</l></list></block><script><block s="doGotoObject"><l><option>random position</option></l></block></script><list></list></block></script></block></script><script x="393.35294117647123" y="335.1862745098055"><block s="setSize"><l>30</l><comment w="90" collapsed="false">Using the sound frequency to pick color</comment></block><block s="setColor"><color>0,222,206,1</color></block><block s="doForever"><script><block s="doIfElse"><block s="reportMouseDown"></block><script><block s="down"></block></script><script><block s="up"></block></script></block><block s="setPenColorDimension"><l><option>hue</option></l><block s="reportVariadicProduct"><list><block s="reportAudio"><l><option>volume</option></l></block><l>5</l></list></block></block><block s="doGotoObject"><l><option>mouse-pointer</option></l></block></script></block></script><script x="904.3529411764692" y="992.3529411764688"><block s="setSize"><l>2</l><comment w="90" collapsed="false">Makes dots that fade</comment></block><block s="up"></block><block s="doForever"><script><block s="doIfElse"><block s="reportMouseDown"></block><script><block s="down"></block><block s="doTellTo"><l>Dot</l><block s="reifyScript"><script><block s="doGotoObject"><l><option>mouse-pointer</option></l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>Dot</l><block s="reifyScript"><script><custom-block s="make a dot fade"></custom-block></script><list></list></block><list></list></block></script><script><block s="up"></block></script></block><block s="doGotoObject"><l><option>mouse-pointer</option></l></block></script></block></script><script x="1200.0902458639694" y="989.3529411764691"><block s="setSize"><l>2</l><comment w="90" collapsed="false">Makes dots that change color</comment></block><block s="doForever"><script><block s="doIfElse"><block s="reportMouseDown"></block><script><block s="down"></block><block s="doTellTo"><l>Dot</l><block s="reifyScript"><script><block s="doGotoObject"><l><option>mouse-pointer</option></l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>Dot</l><block s="reifyScript"><script><custom-block s="make a dot change color"></custom-block></script><list></list></block><list></list></block></script><script><block s="up"></block></script></block><block s="doGotoObject"><l><option>mouse-pointer</option></l></block></script></block></script><script x="1523.2552849264737" y="981.3529411764684"><block s="setSize"><l>2</l><comment w="90" collapsed="false">Makes dots that fall</comment></block><block s="doForever"><script><block s="up"></block><block s="doIfElse"><block s="reportMouseDown"></block><script><block s="doTellTo"><l>Dot</l><block s="reifyScript"><script><block s="doGotoObject"><l><option>mouse-pointer</option></l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>Dot</l><block s="reifyScript"><script><custom-block s="make a dot fall"></custom-block></script><list></list></block><list></list></block></script><script></script></block><block s="doGotoObject"><l><option>mouse-pointer</option></l></block></script></block></script><script x="395.3529411764711" y="588.6862745098045"><block s="doForever"><script><block s="doIfElse"><block s="reportMouseDown"></block><script><block s="playFreq"><block s="reportVariadicSum"><list><l>700</l><block s="reportVariadicProduct"><list><block s="reportAspect"><l><option>hue</option></l><l><option>mouse-pointer</option></l></block><l>20</l></list></block></list></block></block></script><script><block s="stopFreq"></block></script></block></script><comment w="90" collapsed="false">Playing back what we drew with sound</comment></block></script><script x="630.7481234681369" y="825.0196078431367"><block s="doForever"><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportVideo"><l><option>motion</option></l><l><option>myself</option></l></block><l>20</l></list></block><script><block s="setHeading"><block s="reportVideo"><l><option>direction</option></l><l>Stage</l></block></block><block s="forward"><l>5</l></block><block s="bounceOffEdge"></block></script><list></list></block></script><comment w="90" collapsed="false">Drawing with the camera</comment></block></script><script x="1417.0196078431388" y="567.0196078431379"><block s="receiveMessage"><l>pen down</l><list></list></block><block s="down"></block></script><script x="1414.0196078431388" y="650.0196078431375"><block s="receiveMessage"><l>pen up</l><list></list></block><block s="up"></block></script><script x="1415.0196078431386" y="461.3529411764715"><block s="receiveMessage"><l>move forward</l><list></list></block><block s="forward"><block var="velocity"/></block><block s="bounceOffEdge"></block></script><script x="1416.0196078431386" y="377.68627450980654"><block s="receiveMessage"><l>turn right</l><list></list></block><block s="turn"><l>10</l></block></script><script x="1413.0196078431384" y="277.6862745098043"><block s="receiveMessage"><l>turn left</l><list></list></block><block s="turnLeft"><l>10</l></block></script><script x="1644.1175896139741" y="383.35294117647305"><block s="doGotoObject"><l><option>random position</option></l></block></script><script x="1404.3529411764716" y="167.91960784313744"><block s="receiveOnClone"></block><block s="doGotoObject"><l><option>random position</option></l></block><block s="changePenColorDimension"><l><option>hue</option></l><block s="reportRandom"><l>1</l><l>100</l></block></block></script><script x="1072.3529411764687" y="37.68627450980358"><block s="clear"><comment w="90" collapsed="false">Clone drawing</comment></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="up"></block><block s="setColor"><color>26,255,255,1</color></block><block s="doRepeat"><l>20</l><script><block s="createClone"><l><option>myself</option></l></block></script></block><block s="doSetVar"><l>velocity</l><l>5</l></block><block s="doForever"><script><block s="doIfElse"><block s="reportKeyPressed"><l><option>space</option></l></block><script><block s="doBroadcast"><l>pen down</l><list></list></block></script><script><block s="doBroadcast"><l>pen up</l><list></list></block></script></block><block s="doIf"><block s="reportKeyPressed"><l><option>up arrow</option></l></block><script><block s="doBroadcast"><l>turn left</l><list></list></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>down arrow</option></l></block><script><block s="doBroadcast"><l>turn right</l><list></list></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>right arrow</option></l></block><script><block s="doChangeVar"><l>velocity</l><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>left arrow</option></l></block><script><block s="doChangeVar"><l>velocity</l><l>-1</l></block></script><list></list></block><block s="doBroadcast"><l>move forward</l><list></list></block></script></block></script><script x="7.352941176470588" y="581.5196078431386"><block s="doDeclareVariables"><list><l>velocity</l></list><comment w="90" collapsed="false">Keyboard drawing</comment></block><block s="doSetVar"><l>velocity</l><l>5</l></block><block s="clear"><comment w="90" collapsed="false">Clear everything out</comment></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="setColor"><color>41,17,0,1</color></block><block s="setSize"><l>2</l><comment w="90" collapsed="false">Nudge continuous motion</comment></block><block s="doForever"><script><block s="doIfElse"><block s="reportKeyPressed"><l><option>space</option></l></block><script><block s="down"></block></script><script><block s="up"></block></script></block><block s="doIf"><block s="reportKeyPressed"><l><option>up arrow</option></l></block><script><block s="turnLeft"><l>10</l></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>down arrow</option></l></block><script><block s="turn"><l>10</l></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>right arrow</option></l></block><script><block s="doChangeVar"><l>velocity</l><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>left arrow</option></l></block><script><block s="doChangeVar"><l>velocity</l><l>-1</l></block></script><list></list></block><block s="forward"><block var="velocity"/></block><block s="bounceOffEdge"></block></script></block></script><script x="861.0196078431355" y="540.6862745098055"><block s="clearEffects"></block></script><script x="832.0196078431353" y="452.8529411764719"><block s="doForever"><script><block s="setEffect"><l><option>ghost</option></l><block s="reportMouseX"></block></block><block s="setEffect"><l><option>fisheye</option></l><block s="reportMouseY"></block></block></script></block></script><script x="795.3529411764688" y="28.35294117647021"><block s="doForever"><script><block s="doIfElse"><block s="reportKeyPressed"><l><option>any key</option></l></block><script><block s="down"></block></script><script><block s="up"></block></script></block><block s="doIf"><block s="reportKeyPressed"><l><option>up arrow</option></l></block><script><block s="changeYPosition"><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>down arrow</option></l></block><script><block s="changeYPosition"><l>-1</l></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>left arrow</option></l></block><script><block s="changeXPosition"><l>-1</l></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>right arrow</option></l></block><script><block s="changeXPosition"><l>1</l></block></script><list></list></block></script></block></script><script x="413.3529411764713" y="1073.8529411764716"><block s="doDeclareVariables"><list><l>velocity</l></list></block><block s="doSetVar"><l>velocity</l><l>5</l></block><block s="clear"><comment w="90" collapsed="false">Clear everything out</comment></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="setColor"><color>41,17,0,1</color></block><block s="setSize"><l>2</l><comment w="90" collapsed="false">Nudge continuous motion</comment></block><block s="doForever"><script><block s="doIfElse"><block s="reportKeyPressed"><l><option>space</option></l></block><script><block s="down"></block></script><script><block s="up"></block></script></block><block s="doIf"><block s="reportKeyPressed"><l><option>up arrow</option></l></block><script><block s="turnLeft"><l>10</l></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>down arrow</option></l></block><script><block s="turnLeft"><l>10</l></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>right arrow</option></l></block><script><block s="doChangeVar"><l>velocity</l><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>left arrow</option></l></block><script><block s="doChangeVar"><l>velocity</l><l>-1</l></block></script><list></list></block><block s="forward"><block var="velocity"/></block><block s="doIf"><block s="reportTouchingColor"><color>0,255,0,1</color></block><script><block s="forward"><l>10</l></block><block s="turn"><l>45</l></block></script><list></list><comment w="90" collapsed="false">bounch if hit the other ones lines.</comment></block><block s="bounceOffEdge"></block></script></block></script><script x="18.64705882352917" y="387.8627450980413"><block s="doUntil"><block s="reportKeyPressed"><l><option>space</option></l></block><script><block s="doIfElse"><block s="reportMouseDown"></block><script><block s="down"></block></script><script><block s="up"></block></script></block><block s="doGotoObject"><l><option>mouse-pointer</option></l></block></script></block></script><script x="29.55882352941163" y="170.04901960784295"><block s="setSize"><l>2</l><comment w="90" collapsed="false">Simplest drawing program</comment></block><block s="doForever"><script><block s="doIfElse"><block s="reportMouseDown"></block><script><block s="down"></block></script><script><block s="up"></block></script></block><block s="doGotoObject"><l><option>mouse-pointer</option></l></block></script></block></script><script x="53.911764705882305" y="1684.990196078443"><block s="gotoXY"><l>0</l><l>0</l></block><block s="setColor"><color>0,6,8,1</color></block><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="recognize speech"></custom-block><l>blue</l></list></block><script><block s="setColor"><color>6,0,227,1</color></block></script><list><l><bool>true</bool></l><script><block s="setColor"><color>251,0,39,1</color></block></script></list></block></script><script x="58.676470588235254" y="1856.2598039215825"><block s="receiveConditionEvent"><block s="reportKeyPressed"><l><option>x</option></l></block></block><custom-block s="stop speech recognition"></custom-block></script><script x="49.08823529411764" y="2072.519607843151"><block s="doDeclareVariables"><list><l>heard</l></list></block><block s="doForever"><script><block s="doWaitUntil"><block s="reportKeyPressed"><l><option>space</option></l></block></block><block s="doBroadcast"><l>listening</l><list></list></block><block s="doSetVar"><l>heard</l><custom-block s="recognize speech"></custom-block></block><block s="doSayFor"><block var="heard"/><l>2</l></block><block s="doWaitUntil"><block s="reportNot"><block s="reportKeyPressed"><l><option>space</option></l></block></block></block></script></block></script><script x="301.29411764705895" y="2069.5784313725626"><block s="receiveMessage"><l>listening</l><list></list></block><block s="doWaitUntil"><block s="reportNot"><block s="reportKeyPressed"><l><option>space</option></l></block></block></block><custom-block s="stop speech recognition"></custom-block></script><script x="1711.2338579963275" y="649.5000000000003"><block s="doRepeat"><l>20</l><script><block s="createClone"><l><option>myself</option></l></block></script><comment w="90" collapsed="false">Flocking Behavior</comment></block><block s="doForEach"><l>item</l><block s="reportGet"><l><option>clones</option></l></block><script><block s="doTellTo"><block var="item"/><block s="reifyScript"><script><block s="doGotoObject"><l><option>random position</option></l></block></script><list></list></block><list></list></block></script></block><block s="doForever"><script><block s="doForEach"><l>item</l><block s="reportGet"><l><option>clones</option></l></block><script><block s="doTellTo"><block var="item"/><block s="reifyScript"><script><block s="doFaceTowards"><l><option>mouse-pointer</option></l></block></script><list></list></block><list></list></block><block s="doTellTo"><block var="item"/><block s="reifyScript"><script><block s="forward"><l>20</l></block></script><list></list></block><list></list></block></script></block></script></block></script><script x="1799.6081112132333" y="481.3529411764704"><block s="doRepeat"><l>20</l><script><block s="createClone"><l><option>myself</option></l></block></script><comment w="90" collapsed="false">20 random clones</comment></block><block s="doForEach"><l>item</l><block s="reportGet"><l><option>clones</option></l></block><script><block s="doTellTo"><block var="item"/><block s="reifyScript"><script><block s="doGotoObject"><l><option>random position</option></l></block></script><list></list></block><list></list></block></script></block></script></scripts></sprite><watcher scope="Sprite" s="xPosition" style="normal" x="10" y="10" color="74,108,212" hidden="true"/><watcher scope="Sprite" s="yPosition" style="normal" x="10" y="31.000001999999995" color="74,108,212" hidden="true"/><watcher scope="Dot" s="xPosition" style="normal" x="10" y="52.00000399999999" color="74,108,212" hidden="true"/><watcher scope="Dot" s="yPosition" style="normal" x="10" y="73.00000599999998" color="74,108,212" hidden="true"/><watcher var="velocity" style="normal" x="10" y="94.00000799999998" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="✐ last crayon"><l>40</l></variable><variable name="✐ crayon colors"><list id="2164"><item><list struct="atomic" id="2165">0,0,0,black,0</list></item><item><list struct="atomic" id="2166">18,18,18,gray7,1</list></item><item><list struct="atomic" id="2167">36,36,36,gray14,2</list></item><item><list struct="atomic" id="2168">54,54,54,gray21,3</list></item><item><list struct="atomic" id="2169">72,72,72,gray28,4</list></item><item><list struct="atomic" id="2170">92,92,92,gray36,5</list></item><item><list struct="atomic" id="2171">109,109,109,gray43,6</list></item><item><list struct="atomic" id="2172">127,127,127,gray50,7</list></item><item><list struct="atomic" id="2173">145,145,145,gray57,8</list></item><item><list struct="atomic" id="2174">163,163,163,gray64,9</list></item><item><list struct="atomic" id="2175">181,181,181,gray71,10</list></item><item><list struct="atomic" id="2176">200,200,200,gray78,11</list></item><item><list struct="atomic" id="2177">218,218,218,gray85,12</list></item><item><list struct="atomic" id="2178">236,236,236,gray92,13</list></item><item><list struct="atomic" id="2179">255,255,255,white,14</list></item><item><list struct="atomic" id="2180">255,20,147,deep pink,15</list></item><item><list struct="atomic" id="2181">255,105,180,hot pink,16</list></item><item><list struct="atomic" id="2182">255,0,127,bright pink,17</list></item><item><list struct="atomic" id="2183">227,11,93,raspberry,18</list></item><item><list struct="atomic" id="2184">229,43,80,amaranth,19</list></item><item><list struct="atomic" id="2185">255,0,0,red,20</list></item><item><list struct="atomic" id="2186">144,0,32,burgundy,21</list></item><item><list struct="atomic" id="2187">153,0,0,cherry,22</list></item><item><list struct="atomic" id="2188">164,0,0,dark candy apple red,23</list></item><item><list struct="atomic" id="2189">192,0,0,sanguine,24</list></item><item><list struct="atomic" id="2190">128,0,0,maroon,25</list></item><item><list struct="atomic" id="2191">201,0,22,crimson,26</list></item><item><list struct="atomic" id="2192">217,77,17,Lists,27</list></item><item><list struct="atomic" id="2193">255,8,0,candy apple red,28</list></item><item><list struct="atomic" id="2194">255,56,0,coquelicot,29</list></item><item><list struct="atomic" id="2195">139,69,19,saddle brown,30</list></item><item><list struct="atomic" id="2196">123,63,0,chocolate,31</list></item><item><list struct="atomic" id="2197">107,68,35,kobicha,32</list></item><item><list struct="atomic" id="2198">112,66,20,sepia,33</list></item><item><list struct="atomic" id="2199">149,69,53,chestnut,34</list></item><item><list struct="atomic" id="2200">101,67,33,dark brown,35</list></item><item><list struct="atomic" id="2201">150,75,0,brown,36</list></item><item><list struct="atomic" id="2202">153,101,21,golden brown,37</list></item><item><list struct="atomic" id="2203">184,115,51,cinnamon,38</list></item><item><list struct="atomic" id="2204">210,105,30,copper,39</list></item><item><list struct="atomic" id="2205">255,127,0,orange,40</list></item><item><list struct="atomic" id="2206">255,88,0,Pantone orange,41</list></item><item><list struct="atomic" id="2207">255,117,24,pumpkin,42</list></item><item><list struct="atomic" id="2208">243,118,29,Variables,43</list></item><item><list struct="atomic" id="2209">232,97,0,Spanish orange,44</list></item><item><list struct="atomic" id="2210">204,85,0,burnt orange,45</list></item><item><list struct="atomic" id="2211">203,65,11,sinopia,46</list></item><item><list struct="atomic" id="2212">204,119,34,ochre,47</list></item><item><list struct="atomic" id="2213">237,145,33,carrot,48</list></item><item><list struct="atomic" id="2214">242,133,0,tangerine,49</list></item><item><list struct="atomic" id="2215">255,255,0,yellow,50</list></item><item><list struct="atomic" id="2216">230,168,34,Control,51</list></item><item><list struct="atomic" id="2217">184,134,11,dark goldenrod,52</list></item><item><list struct="atomic" id="2218">218,165,32,goldenrod,53</list></item><item><list struct="atomic" id="2219">244,196,48,saffron,54</list></item><item><list struct="atomic" id="2220">236,213,64,sandstorm,55</list></item><item><list struct="atomic" id="2221">255,219,88,mustard,56</list></item><item><list struct="atomic" id="2222">255,215,0,gold,57</list></item><item><list struct="atomic" id="2223">254,227,62,egg yolk,58</list></item><item><list struct="atomic" id="2224">251,225,8,rubber duck,59</list></item><item><list struct="atomic" id="2225">0,255,0,lime,60</list></item><item><list struct="atomic" id="2226">141,182,0,apple green,61</list></item><item><list struct="atomic" id="2227">98,194,19,Operators,62</list></item><item><list struct="atomic" id="2228">34,139,34,forest green,63</list></item><item><list struct="atomic" id="2229">0,128,0,green,64</list></item><item><list struct="atomic" id="2230">0,100,0,dark green,65</list></item><item><list struct="atomic" id="2231">3,192,60,dark pastel green,66</list></item><item><list struct="atomic" id="2232">80,200,120,emerald,67</list></item><item><list struct="atomic" id="2233">62,180,137,mint,68</list></item><item><list struct="atomic" id="2234">0,161,120,Pen,69</list></item><item><list struct="atomic" id="2235">0,255,255,aqua,70</list></item><item><list struct="atomic" id="2236">0,139,139,dark cyan,71</list></item><item><list struct="atomic" id="2237">0,123,167,cerulean,72</list></item><item><list struct="atomic" id="2238">113,166,210,iceberg,73</list></item><item><list struct="atomic" id="2239">4,148,220,Sensing,74</list></item><item><list struct="atomic" id="2240">0,128,128,teal,75</list></item><item><list struct="atomic" id="2241">135,206,250,light sky blue,76</list></item><item><list struct="atomic" id="2242">0,191,255,deep sky blue,77</list></item><item><list struct="atomic" id="2243">30,144,255,dodger blue,78</list></item><item><list struct="atomic" id="2244">0,127,255,azure,79</list></item><item><list struct="atomic" id="2245">0,0,255,blue,80</list></item><item><list struct="atomic" id="2246">25,25,112,midnight blue,81</list></item><item><list struct="atomic" id="2247">0,51,153,dark powder blue,82</list></item><item><list struct="atomic" id="2248">0,71,171,cobalt,83</list></item><item><list struct="atomic" id="2249">21,96,189,denim,84</list></item><item><list struct="atomic" id="2250">0,0,128,navy blue,85</list></item><item><list struct="atomic" id="2251">70,130,180,steel blue,86</list></item><item><list struct="atomic" id="2252">74,108,212,Motion,87</list></item><item><list struct="atomic" id="2253">100,149,237,cornflower,88</list></item><item><list struct="atomic" id="2254">106,90,205,slate blue,89</list></item><item><list struct="atomic" id="2255">128,0,255,violet,90</list></item><item><list struct="atomic" id="2256">143,86,227,Looks,91</list></item><item><list struct="atomic" id="2257">111,45,168,grape,92</list></item><item><list struct="atomic" id="2258">75,0,130,indigo,93</list></item><item><list struct="atomic" id="2259">160,32,240,x11 purple,94</list></item><item><list struct="atomic" id="2260">255,0,255,magenta,95</list></item><item><list struct="atomic" id="2261">153,50,204,dark orchid,96</list></item><item><list struct="atomic" id="2262">207,74,217,Sound,97</list></item><item><list struct="atomic" id="2263">127,0,127,purple,98</list></item><item><list struct="atomic" id="2264">139,0,139,dark magenta,99</list></item><item><list struct="atomic" id="2265">0,255,255,cyan,100</list></item><item><list struct="atomic" id="2266">255,0,255,fuchia,101</list></item><item><list struct="atomic" id="2267">18,18,18,grey7,102</list></item><item><list struct="atomic" id="2268">36,36,36,grey14,103</list></item><item><list struct="atomic" id="2269">54,54,54,grey21,104</list></item><item><list struct="atomic" id="2270">72,72,72,grey28,105</list></item><item><list struct="atomic" id="2271">92,92,92,grey36,106</list></item><item><list struct="atomic" id="2272">109,109,109,grey43,107</list></item><item><list struct="atomic" id="2273">127,127,127,grey50,108</list></item><item><list struct="atomic" id="2274">145,145,145,grey57,109</list></item><item><list struct="atomic" id="2275">163,163,163,grey64,110</list></item><item><list struct="atomic" id="2276">181,181,181,grey71,111</list></item><item><list struct="atomic" id="2277">200,200,200,grey78,112</list></item><item><list struct="atomic" id="2278">218,218,218,grey85,113</list></item><item><list struct="atomic" id="2279">236,236,236,grey92,114</list></item></list></variable><variable name="velocity"><l>20</l></variable></variables></scene></scenes></project><media name="Interactivity - 16Feb" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><costume name="black" center-x="29" center-y="29" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAA6CAYAAADhu0ooAAACnklEQVR4AezYDXLbIBCG4bQnS0+W5mRNT9bqYbIaJKM/W5YFdsafQcAu38sSTSY/3475ee+2Cf3u+qEY64bu+7kHKPNA/nTW/31LP/TRjYViLF8nVo5u2X6fvUAZY5phLRBjW52KESuHXLtB3wrKGFOkvxVsaX1AA6al9ZPz14KCAkf6kxvsNAGYwNLmtNeAgqMjAMdAYGkz7BZQYH5vtGMDRz+D5WU18FpQCVXxaKCl/QDztrTubQ2oRBIuJnvQAt54nN1+CVQCiWaTnGCSR14nrcyBCpRgMvhkE7zyXLQ1BSpAYDHoxIM8835hsQTqrSrgYnElA7xjGNgtgZ7x7TowveIB7GDZGLRY9kFEHQ8qOmAZg16cRB1cRZdYAKfJHHRwAmm2/i+wiSIH7QfTzKFfd9tMRan/y6jFasbppQJGRdNDzDTW9hVtuZpRs/eoaAy02n4AbfnaRuGepqL9WzfIm21d3WbhcrAXaH4aLfRfFW2hijnDq6L5abTQf1W0hSrmDE9V0a+cvNRvYexZKvoJ9LOFii0wfAF1dWlhbdXTCRTBX1+NKt1YFcXX8v+NEluAgk3kOg2pZ8pBE3lDkFB6phzURH8CHirXgGUM6gRaeAODxNLXagxq4pevyjWAxFICNV4zbNH7FKjrq/ygaxLPvF94ngK1UPkF6tcgXnkuep0DFSBQAv0zi0deJz0ugQqUoHjvTZ5AvPE4a2UNqATu/Y+u4+S65hSf8KRdNLQWNBI5uUfBhgetKpL+Km0FlRTso6rrkO29qorMhq4BjdgjgQPQnrH/pvYW0NjI5k6ZGYrxW1tVcz3ltsdN+fYADQPMEGMMgiaGY81Uaw1ZLzZyGJuK2TS+J2i+MYOgKYwzT55DnimerReb59ql/x8AAP//N7MzggAAAAZJREFUAwADT2Y1ugUGfwAAAABJRU5ErkJggg==" mediaID="Interactivity - 16Feb_Dot_cst_black"/><costume name="white" center-x="37" center-y="31.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEoAAAA/CAYAAABHP14DAAAD6ElEQVR4AeyYC3biMAxFebOx6axs6MqGnTG6aiwcJ4ADAfJxj4VtWbb1bhTa01+HZfx8WRq3zJY/294NChhHk4z9s/7cGeNbVsaxn7Ns+3vaO0AhCgiIpf9r0rCv8/l8mGK2DzgY+zkrnYkPs5DXtFeBOlq6SQiiRqFYzKQ2BtUOABB3JWNu7nnb3KAAxFMewJk37ctpOTzzAglg5EDP3NzPt7lA5YDidXo+vWknJGjdLiABC+tcj3fPgloEoFL+CDAqjFzL0Or5o6DS0+IV+1gF3VNZACNXqovc720drD8CiifjFxaJDA5fioM8u1yARO5o6Fx13VRQXMCT8Sqqu2IZUcDCumzQgJZuer+bAoonwQWrg5RjKGChKV++Oq4FxYGU7aohJQoZLDShLS1d7WtAcRAHbgJSIjEV1j1QG4KUEF36KbBugeLLbnOVdMH0Mypgoflnofi8BooNq//iLrRenWaw0Iz2QewYKKqIDZv6ThooLxwFrGL1cBgDtTtIiUoGa1BVJSiqCUt799pTLD1YJSgCdvXKlZWQVVVvKQdFJfk/2HoRO5x0sCiaqKocFAs7xFInOYHyaqrbso+orKpccALlk27Rx+0jCPjrl0C11y64DAa/8SRQvHrMm2UEujfM2QDKB50zC2vDjMBXgMqcix1+MDEH9cH713M1FbWebD+YaQNVCb+BaqAqCVSGtYpqoCoJVIa1imqgKgnUhZ2oqFNd7L6jApSkfZMYUS8FE68oQr75aDZKwN84Kmp0tTmDgBdRAuX/xZOi1CJq3sF6TpOCxaCinNx6pLwlU4fETamiGDfrCEhRTVE8OShev28pgrptu+2oJswB5KBwAOsg7ReWFNqjmgBTgsLXC8CxF5N6kKKa0D8Gau9VBSBnAKBkY6BY+8OHFISZbtqk0Dr6Rl0DBVXfIMUBmwUlhUY0o32g9RooAik/Nm76y13qQUIz2gd2CxTBbNwsLKkOEiDugSJmk7CkekhAqAFF3KZgSdMgAaAWFLE9WFJcxtpqTIq8+UpBU1XuU0Bx4NE++NPBfzNIcam5l90k5b+U0FANCWVTQbEHSFzEE/HLJeFfrEmRHzkzQcOkfB8BlS7giQDML5W4Py0to5fkD9KyARBGzjad3p4BxW1AAhZ2kiIx1j5mUi+PBOhhSAh5FhRnYKPAJLH2FpPk1SOJ+4CDMXkKEIdhc4HiLKwHzBxRZRI5m2fGJimHw8nAobqBg+GbxeYGlZLKgZE4AnrQpIHItHfQS5dY6TK2QO7hbO6QzYGDz4bztleByrMkcQQkMfQYfjdJURnScGyHeZz1QMHYL5vTczbrNn1d+w8AAP//4BadEQAAAAZJREFUAwD831kB4Hlm9wAAAABJRU5ErkJggg==" mediaID="Interactivity - 16Feb_Dot_cst_white"/><costume name="Untitled" center-x="80.5" center-y="71" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKEAAACOCAYAAABZq2hVAAAD0ElEQVR4AezSUW6dQBBEUZSVZP+bSpYSO/I3PGmAqe4+kp/8AcxU3bq/juP4ffhhsNGBbwn/fEnodxwYbGLwLeGXg/4Q2EeAhPvYu/mHAAl/QPi3jwAJ97F38w+B/hL+FPUvlwAJc7cZk4yEY6bOLUrC3G3GJCPhmKlzi5Iwd5sxyUhYf+ryDUhYfsL6BUhYf8PyDUhYfsL6BUhYf8PyDUhYfsL6BUhYf8PyDS4lLN9QgXgCJIyfqH9AEvbfOL4hCeMn6h+QhP03jm9IwviJ+gck4dF/5PSGJExfaEA+Eg4YOb0iCdMXGpCPhANGTq9IwvSFBuQj4YCR0yuSMH2hAflIOGDk9IokTF9oQD4SDhg5vSIJ0xcakI+EA0ZOr7guYXpD+eIJkDB+ov4BSdh/4/iGJIyfqH9AEvbfOL4hCeMn6h+QhNcbe+NhAiR8GLDjrwmQ8JqRNx4mQMKHATv+mgAJrxl542ECJHwYsOOvCZDwmlH/NzY3JOHmAVx/HCRkwXYCJNw+gQAk5MB2AiTcPoEAJOTAdgIvSLi9owDhBEgYPtCEeCScsHJ4RxKGDzQhHgknrBzekYThA02IR8IbVnbEGgESrvHz9Q0ESHgDREesESDhGj9f30CAhDdAdMQaARKu8fP1DQRIeAPE/kc825CEz/J1+gcESPgBJK88S4CEz/J1+gcESPgBJK88S4CEz/J1+gcESPgBJK88SyBBwmcbOj2eAAnjJ+ofkIT9N45vSML4ifoHJGH/jeMbkjB+ov4BSfjGxu44JUDCUzwevkGAhG9QdscpARKe4vHwDQIkfIOyO04JkPAUj4dvECDhG5T737HUkIRL+Hx8BwES3kHRGUsESLiEz8d3ECDhHRSdsUSAhEv4fHwHARLeQdEZSwRKSLjU0MfxBEgYP1H/gCTsv3F8QxLGT9Q/IAn7bxzfkITxE/UPSMKIjWeHIOHs/SPakzBihtkhSDh7/4j2JIyYYXYIEs7eP6I9CSNm6B/irCEJz+h49goBEr6C2SVnBEh4RsezVwiQ8BXMLjkjQMIzOp69QoCEr2B2yRmBHhKeNfQsngAJ4yfqH5CE/TeOb0jC+In6ByRh/43jG5IwfqL+AUlYY+PWKUnYet4a5UhYY6fWKUnYet4a5UhYY6fWKUnYet4a5UhYY6fWKf9L2LqhcvEESBg/Uf+AJOy/cXxDEsZP1D8gCftvHN+QhPET9Q84RML+Q1ZuSMLK6zXJTsImQ1auQcLK6zXJTsImQ1auQcLK6zXJTsImQ1auQcLK6zXJ/i3h368ufseBwSYG/wAAAP//wn0twwAAAAZJREFUAwAt+C5rjoqPGQAAAABJRU5ErkJggg==" mediaID="Interactivity - 16Feb_Sprite_cst_Untitled"/></media></snapdata>