<snapdata remixID="13402978"><project name="Lab 4.5 - List Tracing&#xD;" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="Lab 4.5 - List Tracing&#xD;"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="$globe show current location" type="command" category="other"><header></header><code></code><translations>de:$globe zeige aktuellen Standort&#xD;pt:mostra a localização corrente do dispositivo no $globe&#xD;ca:$globe centra a la meva ubicació&#xD;</translations><inputs></inputs><script><custom-block s="set $globe to lon: %n lat: %n"><custom-block s="$globe current longitude"></custom-block><custom-block s="$globe current latitude"></custom-block></custom-block></script></block-definition><block-definition s="$globe zoom" type="reporter" category="other"><header></header><code></code><translations>de:$globe Zoom&#xD;pt:o zoom do $globe&#xD;ca:$globe zoom&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>map_zoom</l><list></list></block></block></script></block-definition><block-definition s="set $globe zoom to %&apos;n&apos;" type="command" category="other"><header></header><code></code><translations>de:setze $globe Zoom auf _&#xD;pt:altera o zoom do $globe para _&#xD;ca:$globe fixa el zoom a _&#xD;</translations><inputs><input type="%n">10</input></inputs><script><block s="doApplyExtension"><l>map_zoom(n)</l><list><block var="n"/></list></block><custom-block s="update $globe"></custom-block></script></block-definition><block-definition s="$globe longitude of x %&apos;x&apos;" type="reporter" category="other"><header></header><code></code><translations>de:$globe Längengrad von x _&#xD;pt:a longitude no $globe da coordenada x _&#xD;ca:$globe longitud per a x _&#xD;</translations><inputs><input type="%n">0</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>map_lon(x)</l><list><block var="x"/></list></block></block></script></block-definition><block-definition s="$globe latitude of y %&apos;y&apos;" type="reporter" category="other"><header></header><code></code><translations>de:$globe Breitengrad von y _&#xD;pt:a latitude no $globe da coordenada y _&#xD;ca:$globe latitud per a y _&#xD;</translations><inputs><input type="%n">0</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>map_lat(y)</l><list><block var="y"/></list></block></block></script></block-definition><block-definition s="set $globe to lon: %&apos;lon&apos; lat: %&apos;lat&apos;" type="command" category="other"><header></header><code></code><translations>de:setze $globe auf Länge: _ Breite: _&#xD;pt:altera a posição no $globe para (longitude: _ , latitude: _ )&#xD;ca:$globe centra a longitud: _ latitud: _&#xD;</translations><inputs><input type="%n">-122.257852</input><input type="%n">37.872099</input></inputs><script><block s="doApplyExtension"><l>map_view(lon, lat)</l><list><block var="lon"/><block var="lat"/></list></block><custom-block s="update $globe"></custom-block></script></block-definition><block-definition s="y of $globe latitude %&apos;lat&apos;" type="reporter" category="other"><header></header><code></code><translations>de:y von $globe Breitengrad _&#xD;pt:a coordenada y da latitude _ no $globe&#xD;ca:$globe y per a latitud _&#xD;</translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>map_y(lat)</l><list><block var="lat"/></list></block></block></script></block-definition><block-definition s="x of $globe longitude %&apos;lon&apos;" type="reporter" category="other"><header></header><code></code><translations>de:x von $globe Längengrad _&#xD;pt:a coordenada x da longidude _ no $globe&#xD;ca:$globe x per a longitud _&#xD;</translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>map_x(lon)</l><list><block var="lon"/></list></block></block></script></block-definition><block-definition s="change $globe by x: %&apos;x&apos; y: %&apos;y&apos; pixels" type="command" category="other"><header></header><code></code><translations>de:ändere $globe um x: _ y: _ Pixel&#xD;pt:desloca a posição do mapa de (x: _ , y: _ )&#xD;ca:$globe canvia la ubicació en x: _ y: _ píxels&#xD;</translations><inputs><input type="%n">10</input><input type="%n">10</input></inputs><script><block s="doApplyExtension"><l>map_pan(x, y)</l><list><block var="x"/><block var="y"/></list></block><custom-block s="update $globe"></custom-block></script></block-definition><block-definition s="$globe distance in km to %&apos;target&apos;" type="reporter" category="other"><header></header><code></code><translations>de:$globe Entfernung in km zu _&#xD;pt:a tua distância em km a _ no $globo&#xD;ca:$globe distància en km fins a _&#xD;</translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input></inputs><script><block s="doDeclareVariables"><list><l>trg</l></list></block><block s="doSetVar"><l>trg</l><block s="reportObject"><block var="target"/></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportGet"><l><option>self</option></l></block><l><option>sprite</option></l></block><block s="reportIsA"><block var="trg"/><l><option>sprite</option></l></block></list></block></block><script><block s="doReport"><l>-1</l></block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>map_dist(lat1, lon1, lat2, lon2)</l><list><custom-block s="$globe latitude of y %n"><block s="yPosition"></block></custom-block><custom-block s="$globe longitude of x %n"><block s="xPosition"></block></custom-block><custom-block s="$globe latitude of y %n"><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block></custom-block><custom-block s="$globe longitude of x %n"><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block></custom-block></list></block></block></script></block-definition><block-definition s="$globe current location" type="reporter" category="other"><header></header><code></code><translations>de:$globe aktuelle Position&#xD;pt:a localização corrente do dispositivo no $globe&#xD;ca:$globe ubicació actual&#xD;</translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>callback</l></list></block><block s="doSetVar"><l>callback</l><block s="reportApplyExtension"><l>geo_location(acc?)</l><list><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></block><block s="doWaitUntil"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="evaluate"><block var="callback"/><list></list></block></block><l>2</l></list></block></block><block s="doReport"><block s="evaluate"><block var="callback"/><list></list></block></block></script></block-definition><block-definition s="$globe current latitude" type="reporter" category="other"><header></header><code></code><translations>de:$globe aktueller Breitengrad&#xD;pt:a latitude corrente do dispositivo no $globe&#xD;ca:$globe latitud actual&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><custom-block s="$globe current location"></custom-block></block></block></script></block-definition><block-definition s="$globe current longitude" type="reporter" category="other"><header></header><code></code><translations>de:$globe aktueller Längengrad&#xD;pt:a longitude corrente do dispositivo no $globe&#xD;ca:$globe longitud actual&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportListItem"><l>2</l><custom-block s="$globe current location"></custom-block></block></block></script></block-definition><block-definition s="update $globe" type="command" category="other"><header></header><code></code><translations>de:aktualisiere $globe&#xD;pt:actualiza o $globe&#xD;ca:$globe força refresc&#xD;</translations><inputs></inputs><script><block s="doApplyExtension"><l>map_update</l><list></list></block><block s="doTellTo"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyScript"><script><block s="doSwitchToCostume"><custom-block s="$globe as costume"></custom-block></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="$globe as costume" type="reporter" category="other"><header></header><code></code><translations>de:$globe als Kostüm&#xD;pt:a parte visível do $globe na forma de traje&#xD;ca:$globe vestit del mapa actual&#xD;</translations><inputs></inputs><script><block s="doWaitUntil"><block s="reportApplyExtension"><l>map_loaded</l><list></list></block></block><block s="doReport"><block s="reportApplyExtension"><l>map_costume</l><list></list></block></block></script></block-definition><block-definition s="set $globe style to %&apos;name&apos;" type="command" category="other"><header></header><code></code><translations>de:setze $globe Stil auf _&#xD;pt:altera o estilo do $globe para _&#xD;ca:$globe fixa l&apos;estil de mapa a _&#xD;</translations><inputs><input type="%s" readonly="true">OpenStreetMap<options>OpenStreetMap&#xD;Wikimedia&#xD;Watercolor&#xD;Toner&#xD;Terrain&#xD;Topographic&#xD;Satellite&#xD;Streets&#xD;Shading&#xD;Mapbox (experimental)</options></input></inputs><script><block s="doApplyExtension"><l>map_style(name)</l><list><block var="name"/></list></block><custom-block s="update $globe"></custom-block></script></block-definition><block-definition s="$camera snap" type="reporter" category="sensing"><comment x="0" y="0" w="216" collapsed="false">takes a snapshot with the webcam and reports it as a new costume, or zero if the user cancels</comment><header></header><code></code><translations>pt:$camera a imagem actual do vídeo&#xD;</translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>callback</l><l>pic</l></list></block><block s="doSetVar"><l>callback</l><block s="reportApplyExtension"><l>mda_snap</l><list></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reifyScript"><script><block s="doSetVar"><l>pic</l><block s="evaluate"><block var="callback"/><list></list></block></block><block s="doReport"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="pic"/><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></block></block></script><list></list></block><list></list></block></block><block s="doReport"><block var="pic"/></block></script></block-definition><block-definition s="export costume %&apos;costume&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input></inputs><script><block s="doSetVar"><l>costume</l><block s="reportIfElse"><block s="reportIsA"><block var="costume"/><l><option>costume</option></l></block><block var="costume"/><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportGetImageAttribute"><l><option>name</option></l><l></l></block><block var="costume"/></list></block></autolambda><list></list></block><block s="reportGet"><l><option>costumes</option></l></block></block></block></block><block s="doIf"><block s="reportIsA"><block var="costume"/><l><option>costume</option></l></block><script><block s="doApplyExtension"><l>cst_export(cst, name)</l><list><block var="costume"/><l></l></list></block></script><list></list></block></script></block-definition><block-definition s="set name of costume %&apos;costume&apos; to %&apos;name&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input><input type="%s">thing</input></inputs><script><block s="doSetVar"><l>costume</l><block s="reportIfElse"><block s="reportIsA"><block var="costume"/><l><option>costume</option></l></block><block var="costume"/><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportGetImageAttribute"><l><option>name</option></l><l></l></block><block var="costume"/></list></block></autolambda><list></list></block><block s="reportGet"><l><option>costumes</option></l></block></block></block></block><block s="doIf"><block s="reportIsA"><block var="costume"/><l><option>costume</option></l></block><script><block s="doApplyExtension"><l>obj_name(obj, name)</l><list><block var="costume"/><block var="name"/></list></block></script><list></list></block></script></block-definition><block-definition s="export costume list %&apos;costumes&apos; base name %&apos;name&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s">frame</input></inputs><script><block s="doDeclareVariables"><list><l>count</l></list></block><block s="doSetVar"><l>count</l><block s="reportListAttribute"><l><option>length</option></l><block var="costumes"/></block></block><block s="doForEach"><l>item</l><block s="reportListAttribute"><l><option>reverse</option></l><block var="costumes"/></block><script><block s="doApplyExtension"><l>cst_export(cst, name)</l><list><block var="item"/><block s="reportJoinWords"><list><block var="name"/><l> (</l><block var="count"/><l>)</l></list></block></list></block><block s="doChangeVar"><l>count</l><l>-1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="count"/><l>10</l></block><l>0</l></list></block><script><block s="doWait"><l>1</l></block></script><list></list></block></script></block></script></block-definition><block-definition s="%&apos;filter&apos; filter on %&apos;costume&apos; alpha %&apos;alpha&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">blur<options>blur&#xD;sharpen&#xD;outline&#xD;emboss&#xD;edge={&#xD;left&#xD;right&#xD;top&#xD;bottom&#xD;}&#xD;Gauss</options></input><input type="%s" readonly="true">current<options>§_costumesMenu</options></input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>kernel</l><l>pixels</l><l>channels</l></list></block><block s="doSetVar"><l>kernel</l><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>rank</option></l><block var="filter"/></block><l>1</l></list></block><block var="filter"/><custom-block s="filter %s"><block var="filter"/></custom-block></block></block><block s="doSetVar"><l>pixels</l><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="costume"/></block></block><block s="doIf"><block var="alpha"/><script><block s="doSetVar"><l>channels</l><l>4</l></block></script><list><l><bool>true</bool></l><script><block s="doSetVar"><l>channels</l><l>3</l></block><block s="doSetVar"><l>pixels</l><block s="reportVariadicProduct"><list><block var="pixels"/><block s="reportNewList"><list><l>1</l><l>1</l><l>1</l></list></block></list></block><comment w="137" collapsed="true">remove alpha channel</comment></block></script></list></block><block s="doReport"><block s="reportNewCostume"><custom-block s="convolve matrix %l * kernel %l"><block s="reportReshape"><block var="pixels"/><list><block s="reportGetImageAttribute"><l><option>height</option></l><block var="costume"/></block><block s="reportGetImageAttribute"><l><option>width</option></l><block var="costume"/></block><block var="channels"/></list></block><block var="kernel"/></custom-block><l></l><l></l></block></block></script></block-definition><block-definition s="filter %&apos;name&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">blur<options>blur&#xD;sharpen&#xD;outline&#xD;emboss&#xD;edge={&#xD;left&#xD;right&#xD;top&#xD;bottom&#xD;}&#xD;Gauss</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="name"/><l>sharpen</l></list></block><script><block s="doReport"><custom-block s="kernel %br %n %n %n %br %n %n %n %br %n %n %n"><l>0</l><l>-1</l><l>0</l><l>-1</l><l>5</l><l>-1</l><l>0</l><l>-1</l><l>0</l></custom-block></block></script><list><block s="reportVariadicEquals"><list><block var="name"/><l>outline</l></list></block><script><block s="doReport"><custom-block s="kernel %br %n %n %n %br %n %n %n %br %n %n %n"><l>-1</l><l>-1</l><l>-1</l><l>-1</l><l>8</l><l>-1</l><l>-1</l><l>-1</l><l>-1</l></custom-block></block></script><block s="reportVariadicEquals"><list><block var="name"/><l>emboss</l></list></block><script><block s="doReport"><custom-block s="kernel %br %n %n %n %br %n %n %n %br %n %n %n"><l>-2</l><l>-1</l><l>0</l><l>-1</l><l>1</l><l>1</l><l>0</l><l>1</l><l>2</l></custom-block></block></script><block s="reportVariadicEquals"><list><block var="name"/><l>left</l></list></block><script><block s="doReport"><custom-block s="kernel %br %n %n %n %br %n %n %n %br %n %n %n"><l>-1</l><l>0</l><l>1</l><l>-2</l><l>0</l><l>2</l><l>-1</l><l>0</l><l>1</l></custom-block></block></script><block s="reportVariadicEquals"><list><block var="name"/><l>right</l></list></block><script><block s="doReport"><custom-block s="kernel %br %n %n %n %br %n %n %n %br %n %n %n"><l>1</l><l>0</l><l>-1</l><l>2</l><l>0</l><l>-2</l><l>1</l><l>0</l><l>-1</l></custom-block></block></script><block s="reportVariadicEquals"><list><block var="name"/><l>top</l></list></block><script><block s="doReport"><custom-block s="kernel %br %n %n %n %br %n %n %n %br %n %n %n"><l>-1</l><l>-2</l><l>-1</l><l>0</l><l>0</l><l>0</l><l>1</l><l>2</l><l>1</l></custom-block></block></script><block s="reportVariadicEquals"><list><block var="name"/><l>bottom</l></list></block><script><block s="doReport"><custom-block s="kernel %br %n %n %n %br %n %n %n %br %n %n %n"><l>1</l><l>2</l><l>1</l><l>0</l><l>0</l><l>0</l><l>-1</l><l>-2</l><l>-1</l></custom-block></block></script><block s="reportVariadicEquals"><list><block var="name"/><l>gauss</l></list></block><script><block s="doReport"><block s="reportQuotient"><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l><l>4</l><l>7</l><l>4</l><l>1</l></list></block><block s="reportNewList"><list><l>4</l><l>16</l><l>26</l><l>16</l><l>4</l></list></block><block s="reportNewList"><list><l>7</l><l>26</l><l>41</l><l>26</l><l>7</l></list></block><block s="reportNewList"><list><l>4</l><l>16</l><l>26</l><l>16</l><l>4</l></list></block><block s="reportNewList"><list><l>1</l><l>4</l><l>7</l><l>4</l><l>1</l></list></block></list></block><l>273</l></block></block></script></list></block><block s="doReport"><custom-block s="kernel %br %n %n %n %br %n %n %n %br %n %n %n"><l>0.0625</l><l>0.125</l><l>0.0625</l><l>0.125</l><l>0.25</l><l>0.125</l><l>0.0625</l><l>0.125</l><l>0.0625</l><comment w="80" collapsed="false">blur</comment></custom-block></block></script></block-definition><block-definition s="kernel $nl %&apos;a1&apos; %&apos;b1&apos; %&apos;c1&apos; $nl %&apos;a2&apos; %&apos;b2&apos; %&apos;c2&apos; $nl %&apos;a3&apos; %&apos;b3&apos; %&apos;c3&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportReshape"><block s="reportEnvironment"><l><option>inputs</option></l></block><list><l>3</l><l>3</l></list></block></block></script></block-definition><block-definition s="convolve matrix %&apos;matrix&apos; * kernel %&apos;kernel&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>padding</l><l>channels</l><l>every coordinate</l><l>channel indices</l></list></block><block s="doSetVar"><l>padding</l><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><block s="reportNewList"><list><l>1</l><l>2</l></list></block><block s="reportListAttribute"><l><option>dimensions</option></l><block var="kernel"/></block></block><l>1</l></block><l>2</l></block><comment w="119.00000000000001" collapsed="false">assume odd dimensions, typically 3x3 or 5x5</comment></block><block s="doSetVar"><l>channels</l><block s="reportListItem"><l>3</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="matrix"/></block></block></block><block s="doSetVar"><l>every coordinate</l><block s="reportCrossproduct"><block s="reportNumbers"><l>1</l><block s="reportListItem"><block s="reportNewList"><list><l>1</l><l>2</l></list></block><block s="reportListAttribute"><l><option>dimensions</option></l><block var="matrix"/></block></block></block></block></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="channels"/><l>0</l></list></block><script><block s="doSetVar"><l>channel indices</l><block s="reportNewList"><list><block s="reportReshape"><block s="reportNumbers"><l>1</l><block var="channels"/></block><list><block s="reportListAttribute"><l><option>length</option></l><block var="every coordinate"/></block><block var="channels"/></list></block></list></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>dimensions</option></l><block var="kernel"/></block><l>3</l></list></block><script><block s="doSetVar"><l>kernel</l><block s="reportReshape"><custom-block s="stretch %l by %n"><block s="reportListAttribute"><l><option>flatten</option></l><block var="kernel"/></block><block var="channels"/></custom-block><block s="reportConcatenatedLists"><list><block s="reportListAttribute"><l><option>dimensions</option></l><block var="kernel"/></block><block s="reportNewList"><list><block var="channels"/></list></block></list></block></block></block></script><list></list><comment w="90" collapsed="false">reshape the kernel to match the input matrix&apos;s channels, if any</comment></block></script><script><block s="doSetVar"><l>channel indices</l><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportReshape"><block s="reportVariadicSum"><block s="reportListAttribute"><l><option>columns</option></l><block s="reportVariadicSum"><block s="reportListAttribute"><l><option>columns</option></l><block s="reportVariadicProduct"><list><block s="reportListItem"><block s="reportListAttribute"><l><option>columns</option></l><block s="reportConcatenatedLists"><list><block s="reportListAttribute"><l><option>columns</option></l><block s="reportNumbers"><block s="reportDifference"><block var="every coordinate"/><block var="padding"/></block><block s="reportVariadicSum"><list><block var="every coordinate"/><block var="padding"/></list></block></block></block><block var="channel indices"/></list></block></block><block var="matrix"/></block><block var="kernel"/></list></block></block></block></block></block><block s="reportListAttribute"><l><option>dimensions</option></l><block var="matrix"/></block><comment w="80" collapsed="false">for every padded pixel create a partial copy of the input, item-multiply it with the kernel and take its overall sum (∑)</comment></block></block></script></block-definition><block-definition s="stretch %&apos;data&apos; by %&apos;factor&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportListItem"><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportNumbers"><l>1</l><block s="reportVariadicProduct"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><block var="factor"/></list></block></block><block var="factor"/></block></block><block var="data"/></block></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;" 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;</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;</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="all but first letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="199" collapsed="false">Takes a text string as input, and reports a new text string containing all but the first character of the input.</comment><header></header><code></code><translations>pt:_ sem o primeiro caractere&#xD;ca:_ sense la primera lletra&#xD;es:todos menos la primera letra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="string"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="all but first letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="string"/></block></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><block s="reportCDR"><block s="reportTextSplit"><custom-block s="require nonempty %s %s"><block var="string"/><l>All but first of empty word.</l></custom-block><l><option>letter</option></l></block></block></block></block></script></block-definition><block-definition s="all but first word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="223.000001" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the first word, with one space between words and no spaces at the beginning or end. (Note: consider using SENTENCE➞LIST and processing the resulting list instead of doing recursion on sentences in text string form.  List operations are faster.)</comment><header></header><code></code><translations>pt:_ sem a primeira palavra&#xD;ca:_ sense la primera paraula&#xD;es:todas menos la primera palabra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>All but first of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportCDR"><block var="sentence"/></block></block></script></block></script><list></list></block><block s="doReport"><custom-block s="list $arrowRight sentence %l"><block s="reportCDR"><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block><l>All but first of empty sentence.</l></custom-block></block></custom-block></block></script></block-definition><block-definition s="all but last letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="218" collapsed="false">Takes a text string as input, and reports a new text string containing all but the last letter of the input.</comment><header></header><code></code><translations>pt:_ sem o último caractere&#xD;ca:_ sense la darrera lletra&#xD;es:todos menos la última letra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="string"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="all but last letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="string"/></block></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><custom-block s="require nonempty %s %s"><block var="string"/><l>All but first of empty word.</l></custom-block><l><option>letter</option></l></block></block></block></block></block></block></script></block-definition><block-definition s="all but last word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="211.99999999999997" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the last word, with one space between words and no spaces at the beginning or end.  (Note: consider using SENTENCE-&gt;LIST and processing the resulting list instead of doing recursion on sentences in text string form.  List operations are faster.)</comment><header></header><code></code><translations>pt:_ sem a última palavra&#xD;ca:_ sense la darrera paraula&#xD;es:todos menos la última palabra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>All but last of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block var="sentence"/></block></block></block></block></script></block></script><list></list></block><block s="doReport"><custom-block s="list $arrowRight sentence %l"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block><l>All but last of empty sentence.</l></custom-block></block></block></block></custom-block></block></script></block-definition><block-definition s="first word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="236" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the first word, with no spaces before or after it.</comment><header></header><code></code><translations>pt:a primeira palavra de _&#xD;ca:primera paraula de _&#xD;es:primera palabra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>First of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="sentence"/></block></block></script></block></script><script><block s="doReport"><block s="reportListItem"><l>1</l><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block><l>First of empty sentence.</l></custom-block></block></block></script></block></script></block-definition><block-definition s="last letter of %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="260" collapsed="false">Takes a text string as input, and reports the last character in the string.</comment><header></header><code></code><translations>pt:o último caractere de _&#xD;ca:primera lletra de _&#xD;es:última letra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="last letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="word"/></block><l>0</l></list></block><script><custom-block s="error %txt"><l>Last of empty word.</l></custom-block></script><list></list></block><block s="doReport"><block s="reportLetter"><block s="reportTextAttribute"><l><option>length</option></l><block var="word"/></block><block var="word"/></block></block></script></block-definition><block-definition s="last word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="262" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the last word of the input, with no spaces before or after it.</comment><header></header><code></code><translations>pt:a última palavra de _&#xD;ca:darrera paraula de _&#xD;es:última palabra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>Last of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportListItem"><l><option>last</option></l><block var="sentence"/></block></block></script></block></script><list></list></block><block s="doReport"><block s="reportListItem"><l><option>last</option></l><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block><l>Last of empty sentence.</l></custom-block></block></block></script></block-definition><block-definition s="empty word? %&apos;word&apos;" type="predicate" category="operators"><comment x="0" y="0" w="208" collapsed="false">Takes a text string as input, and reports TRUE if the string has no characters in it of any kind, otherwise false.</comment><header></header><code></code><translations>pt:a palavra _ está vazia&#xD;ca:paraula buida? _&#xD;es:¿palabra vacía? _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="empty word? %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script><list></list></block><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="word"/></block><l>0</l></list></block></block></script></block-definition><block-definition s="empty sentence? %&apos;sentence&apos;" type="predicate" category="operators"><comment x="0" y="0" w="221" collapsed="false">Takes a text string as input, and reports TRUE if the input contains no characters other than spaces (therefore, no words when the string is considered as a sentence), otherwise FALSE.</comment><header></header><code></code><translations>pt:a frase _ está vazia&#xD;ca:frase buida? _&#xD;es:¿oración vacía? _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportListIsEmpty"><block var="sentence"/></block></block></script><list></list></block><block s="doReport"><block s="reportListIsEmpty"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block></block></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><comment x="0" y="0" w="230.66666666666666" collapsed="false">Like JOIN, takes any number of words (text strings) and reports a sentence with its inputs concatenated, but inserts a blank space between the inputs.&#xD;Consider using SENTENCE (Lists palette) instead.</comment><header></header><code></code><translations>de:füge Wörter zusammen _&#xD;ca:uneix les paraules _&#xD;es:unir las palabras _&#xD;fr:fusionne les mots _&#xD;pt:uma frase com as palavras _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="words"/></block><script><block s="doReport"><l></l></block></script><list></list></block><block s="doDeclareVariables"><list><l>first</l><l>bf</l></list></block><block s="doSetVar"><l>first</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="words"/></block><l><option>list</option></l></block><custom-block s="join words %mult%txt"><block s="reportListItem"><l>1</l><block var="words"/></block></custom-block><block s="reportListItem"><l>1</l><block var="words"/></block></block></block><block s="doSetVar"><l>bf</l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block><block s="doIf"><custom-block s="empty sentence? %txt"><block var="bf"/></custom-block><script><block s="doReport"><block var="first"/></block></script><list></list></block><block s="doIf"><custom-block s="empty sentence? %txt"><block var="first"/></custom-block><script><block s="doReport"><block var="bf"/></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><block var="first"/><l> </l><block var="bf"/></list></block></block></script></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><comment x="0" y="0" w="165.33333333333334" collapsed="false">Takes a sentence in list form and reports the sentence as a text string.</comment><header></header><code></code><translations>de:Liste $arrowRight Satz _&#xD;ca:llista $arrowRight frase _&#xD;es:lista $arrowRight frase _&#xD;fr:liste $arrowRight phrase _&#xD;pt:uma frase com as palavras em _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="196" collapsed="false">Takes a sentence in text string form and reports the sentence as a list of its words.</comment><header></header><code></code><translations>de:Satz $arrowRight Liste _&#xD;ca:frase $arrowRight llista _&#xD;es:frase $arrowRight lista _&#xD;fr:phrase $arrowRight liste _&#xD;pt:uma lista com as palavras da frase _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><l></l></block><l>0</l></list></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="text"/><l><option>word</option></l></block></block></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="146.42857142857144" collapsed="false">report a list in which each item is one letter from the input word</comment><header></header><code></code><translations>de:Wort $arrowRight Liste _&#xD;ca:paraula $arrowRight llista _&#xD;es:palabra $arrowRight lista _&#xD;fr:mot $arrowRight liste _&#xD;pt:uma lista com os caracteres da palavra _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="word $arrowRight list %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script><list></list></block><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><comment x="0" y="0" w="158.57142857142858" collapsed="false">join all the items of the input list&#xD;into a single word, and report it</comment><header></header><code></code><translations>de:Liste $arrowRight Wort _&#xD;ca:llista $arrowRight paraula _&#xD;es:lista $arrowRight palabra _&#xD;fr:liste $arrowRight mot _&#xD;pt:uma palavra com os caracteres em _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="list"/></block><script><block s="doReport"><block var="list"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="list"/></block><l></l></list></block><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script><list></list></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><block s="reportNewList"><list><custom-block s="list $arrowRight word %l"><l/></custom-block></list></block><l></l></block></autolambda><list></list></block><block var="list"/></block></block></script></block-definition><block-definition s="sentence %&apos;phrase&apos;" type="reporter" category="lists"><comment x="0" y="0" w="302.6666666666667" collapsed="false">SENTENCE is the main constructor for sentences, represented&#xD;as lists of words.  It takes zero or more inputs, each of which can&#xD;be either a list or a text string.  If a list, the input is assumed to be&#xD;a list of words.  If a text string, it is converted to a list of words using&#xD;SENTENCE→LIST.  Then all the lists of words are appended to form a new list of words.&#xD;&#xD;If the inputs are lists of lists rather than lists of words, SENTENCE,&#xD;like APPEND, does only one level of flattening, reporting a list of&#xD;all the items of all the input lists.</comment><header></header><code></code><translations>ca:frase _&#xD;es:oración _&#xD;</translations><inputs><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><l></l><custom-block s="sentence $arrowRight list %txt"><l></l></custom-block></block></autolambda><list></list></block><block var="phrase"/></block></block></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><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="printable %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="188.66666666666666" collapsed="false">Takes a (possibly deep) list as input,&#xD;and reports a human-readable text form &#xD;of the list (namely, Lisp notation).</comment><header></header><code></code><translations>ca:notació textual de _&#xD;es:imprimible _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><block var="data"/></block></script><list></list></block><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><l>()</l></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="printable %l"><l/></custom-block></autolambda><list></list></block><block var="data"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> </l><l></l></list></block></autolambda><list></list></block></block><l>)</l></list></block></block></script></block-definition><block-definition s="require nonempty %&apos;text&apos; %&apos;message&apos;" type="reporter" category="operators" helper="true"><comment x="0" y="0" w="220" collapsed="false">Helper function for word/sentence library.&#xD;Reports its first input, unless that input is empty, in which case it gives its second input as an error message.</comment><header></header><code></code><translations>es:requerir no vacío _ _&#xD;</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportIfElse"><block s="reportIsA"><block var="text"/><l><option>list</option></l></block><block s="reportListIsEmpty"><block var="text"/></block><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><l>0</l></list></block></block><script><custom-block s="error %txt"><block var="message"/></custom-block></script><script><block s="doReport"><block var="text"/></block></script></block></script></block-definition><block-definition s="first letter of %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="260" collapsed="false">Takes a text string as input, and reports the first character in the string.</comment><header></header><code></code><translations>pt:a primeira palavra de _&#xD;ca:primera lletra de _&#xD;es:primera letra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="first letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script><script><block s="doReport"><block s="reportLetter"><l>1</l><custom-block s="require nonempty %s %s"><block var="word"/><l>First of empty word.</l></custom-block></block></block></script></block></script></block-definition></blocks><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="1657"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><wear><ref mediaID="1"></ref></wear><costumes><list struct="atomic" id="1658"></list></costumes><sounds><list struct="atomic" id="1659"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="34" y="-7" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="1664"><costumes><list struct="atomic" id="1665"></list></costumes><sounds><list struct="atomic" id="1666"></list></sounds><blocks></blocks><variables></variables><scripts><script x="18.77192982456141" y="17.54385964912281"><block s="receiveKey"><l><option>1</option></l><list></list></block><block s="doDeclareVariables"><list><l>words list</l></list><comment w="181.22807017543855" collapsed="true">Makes a Variable for the script.</comment></block><block s="doSetVar"><l>words list</l><block s="reportNewList"><list><l>day</l><l>before</l><l>vaction</l></list></block><comment w="197.01754385964907" collapsed="true">Sets the variable to a list in the script. </comment></block><block s="bubble"><block var="words list"/><comment w="162.8070175438596" collapsed="true">says the words in the list.</comment></block></script><script x="18.77192982456141" y="139.79532163742672"><block s="receiveKey"><l><option>2</option></l><list></list></block><block s="doDeclareVariables"><list><l>words list</l></list><comment w="181.22807017543855" collapsed="true">Makes a Variable for the script.</comment></block><block s="doSetVar"><l>words list</l><block s="reportNewList"><list><l>day</l><l>before</l><l>vaction</l></list></block><comment w="197.01754385964907" collapsed="true">Sets the variable to a list in the script. </comment></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="words list"/></block><script><block s="doSayFor"><block s="reportListItem"><block var="i"/><block var="words list"/></block><l>1</l><comment w="157.54385964912274" collapsed="true">Says each item individualy.</comment></block></script><comment w="150.5263157894736" collapsed="true">If i =1 then do somthing.</comment></block></script><script x="18.77192982456141" y="300.9239766081868"><block s="receiveKey"><l><option>3</option></l><list></list></block><block s="doDeclareVariables"><list><l>words list</l></list><comment w="181.22807017543855" collapsed="true">Makes a Variable for the script.</comment></block><block s="doSetVar"><l>words list</l><block s="reportNewList"><list><l>day</l><l>before</l><l>vaction</l></list></block><comment w="197.01754385964907" collapsed="true">Sets the variable to a list in the script. </comment></block><block s="bubble"><custom-block s="list $arrowRight sentence %l"><l/></custom-block><comment w="161.0526315789473" collapsed="true">Says the list as a sentence.</comment></block></script></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="Lab 4.5 - List Tracing
" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><costume name="map" center-x="240" center-y="180" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAHqdJREFUeF7t23ewXdWVJ+CFMklEEwwmSiBykhAIASJjgskyNggwtG3adrs6TE1PTaiamj9c5W5PDzPQ2GAyJolkTBY5iSgRJUAEgQChACIqoMTU2tR99SQZN6Kwl6v4bhWF0LvvrH2+s+757b3PZYXRz07+NLwIECBAgACBv6jACgL4L+qtGAECBAgQaAICWCMQIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAgIIAL0JUkQIAAAQICWA8QIECAAIECAQFcgK4kAQIECBAQwHqAAAECBAgUCAjgAnQlCRAgQICAANYDBAgQIECgQEAAF6ArSYAAAQIEBLAeIECAAAECBQICuABdSQIECBAgIID1AAECBAgQKBAQwAXoShIgQIAAAQGsBwgQIECAQIGAAC5AV5IAAQIECAhgPUCAAAECBAoEBHABupIECBAgQEAA6wECBAgQIFAg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" mediaID="1"/></media></snapdata>