<snapdata remixID="9227201"><project name="U5L1 - List generator blocks" app="Snap! 5.4, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><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="true" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+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+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="8"><costumes><list struct="atomic" id="9"></list></costumes><sounds><list struct="atomic" id="10"></list></sounds><blocks></blocks><variables></variables><scripts><script x="30" y="80"><custom-block s="Linear search for item %n in list %l"><l>3</l><block var="Test"/></custom-block></script><script x="30" y="113"><custom-block s="Binary search for item %n in list %l"><l>6</l><block var="Test"/></custom-block></script><script x="30" y="146"><custom-block s="The numbers of %l distinct?"><l/></custom-block></script><script x="30" y="218"><custom-block s="Timer %repRing"><block s="reifyReporter"><autolambda><custom-block s="List of all %n digit numbers"><l>8</l></custom-block></autolambda><list></list></block></custom-block></script><script x="30" y="261.0000000000001"><block s="doSetVar"><l>List</l><custom-block s="Sorted list of %s numbers starting from %s w/ repeats"><l>20</l><l>1</l></custom-block></block></script></scripts></sprite><watcher var="Test" style="normal" x="124" y="9.000001999999995" color="243,118,29" extX="123" extY="276"/><watcher var="List" style="normal" x="10" y="10" color="243,118,29" extX="80" extY="70"/><watcher var="Minimum" style="normal" x="10" y="103.000002" color="243,118,29"/><watcher var="Maxiumum" style="normal" x="10" y="124.00000399999999" color="243,118,29"/><watcher var="Middle" style="normal" x="10" y="145.00000599999998" color="243,118,29"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="Unsorted list of %&apos;n&apos; numbers from %&apos;a&apos; to %&apos;b&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>List</l></list></block><block s="doSetVar"><l>List</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><block var="n"/><script><block s="doAddToList"><block s="reportRandom"><block var="a"/><block var="b"/></block><block var="List"/></block></script></block><block s="doReport"><block var="List"/></block></script></block-definition><block-definition s="Sorted list of %&apos;n&apos; numbers starting from %&apos;a&apos; w/ repeats" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>Output</l><l>item</l></list></block><block s="doSetVar"><l>Output</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>item</l><block var="a"/></block><block s="doRepeat"><block var="n"/><script><block s="doChangeVar"><l>item</l><block s="reportRandom"><l>0</l><l>4</l></block></block><block s="doAddToList"><block var="item"/><block var="Output"/></block></script></block><block s="doReport"><block var="Output"/></block></script></block-definition><block-definition s="map %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>mapone</l><l>mapmany</l></list></block><block s="doSetVar"><l>mapone</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="evaluate"><block var="mapone"/><list><block s="reportCDR"><block var="data"/></block></list></block></block></block></script><list><l>data</l></list></block></block><block s="doSetVar"><l>mapmany</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportListItem"><l>1</l><block var="data lists"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></block><block s="evaluate"><block var="mapmany"/><list><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></list></block></block></block></script><list><l>data lists</l></list></block></block><block s="doIfElse"><custom-block s="empty? %l"><block s="reportCDR"><block var="lists"/></block></custom-block><script><block s="doReport"><block s="evaluate"><block var="mapone"/><list><block s="reportListItem"><l>1</l><block var="lists"/></block></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="mapmany"/><list><block var="lists"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="tell %&apos;sprite&apos; to %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportAttributeOf"><block var="action"/><block var="sprite"/></block><list></list></block></script></block-definition><block-definition s="ask %&apos;sprite&apos; for %&apos;expression&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportAttributeOf"><block var="expression"/><block var="sprite"/></block><list></list></block></block></script></block-definition><block-definition s="Sorted list of %&apos;n&apos; numbers starting from %&apos;a&apos; , no repeats" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>Output</l><l>item</l></list></block><block s="doSetVar"><l>Output</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>item</l><block var="a"/></block><block s="doRepeat"><block var="n"/><script><block s="doChangeVar"><l>item</l><block s="reportRandom"><l>1</l><l>4</l></block></block><block s="doAddToList"><block var="item"/><block var="Output"/></block></script></block><block s="doReport"><block var="Output"/></block></script></block-definition><block-definition s="Position of number %&apos;Num&apos; in sorted list %&apos;list&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>position</l></list></block><block s="doSetVar"><l>a</l><l>Not in List</l></block><block s="doSetVar"><l>position</l><l>0</l></block><custom-block s="for each %upvar of %l %cs"><l>item</l><block var="list"/><script><block s="doChangeVar"><l>position</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block var="item"/><block var="Num"/></block><script><block s="doSetVar"><l>a</l><block var="position"/></block></script></block></script></custom-block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="Linear search for item %&apos;Num&apos; in list %&apos;list&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>position</l></list></block><block s="doSetVar"><l>position</l><l>0</l></block><custom-block s="for each %upvar of %l %cs"><l>item</l><block var="list"/><script><block s="doChangeVar"><l>position</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block var="item"/><block var="Num"/></block><script><block s="doReport"><block var="position"/></block></script></block></script></custom-block><block s="doReport"><l>Not in List</l></block></script></block-definition><block-definition s="Binary search for item %&apos;Num&apos; in list %&apos;list&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%l"></input></inputs><script><block s="doSetVar"><l>Minimum</l><l>1</l></block><block s="doSetVar"><l>Maxiumum</l><block s="reportListLength"><block var="list"/></block></block><block s="doDeclareVariables"><list><l>Minimum</l><l>Middle</l><l>Maximum</l></list></block><block s="doUntil"><block s="reportEquals"><block s="reportDifference"><block var="Maximum"/><block var="Minimum"/></block><l>1</l></block><script><block s="doSetVar"><l>Middle</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportSum"><block s="reportQuotient"><block s="reportDifference"><block var="Maximum"/><block var="Minimum"/></block><l>2</l></block><block var="Minimum"/></block></block></block><block s="doSayFor"><block var="Middle"/><l>1</l></block><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><block var="Middle"/><block var="list"/></block><block var="Num"/></block><script><block s="doReport"><block var="Middle"/></block></script><script><block s="doIfElse"><block s="reportGreaterThan"><block s="reportListItem"><block var="Middle"/><block var="list"/></block><block var="Num"/></block><script><block s="doSetVar"><l>Maxiumum</l><block s="reportDifference"><block var="Middle"/><l>1</l></block></block><block s="doSayFor"><block var="Maximum"/><l>1</l></block></script><script><block s="doSetVar"><l>Minimum</l><block s="reportSum"><block var="Middle"/><l>1</l></block></block><block s="doSayFor"><block var="Minimum"/><l>1</l></block></script></block></script></block></script></block><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><block var="Minimum"/><block var="list"/></block><block var="Num"/></block><script><block s="doReport"><block var="Minimum"/></block></script><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="Maximum"/><block var="list"/></block><block var="Num"/></block><script><block s="doReport"><block var="Maximum"/></block></script></block></script></block><block s="doReport"><l>Number is not listed</l></block></script></block-definition><block-definition s="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment><header></header><code></code><translations>de:drucke _ in Größe _&#xD;ca:etiqueta _ de mida _&#xD;es:etiqueta _ de tamaño _&#xD;fr:étiquette _ d&apos;une taille de _&#xD;</translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l><l>process</l></list><l>var stage = this.parentThatIsA(StageMorph);&#xD;&#xD;if (this == stage) {&#xD;    throw new Error(&#xD;     &apos;LABEL cannot be used from the stage because the stage does not have a postion.\n&apos;&#xD;     + &apos;Use LABEL from a sprite to draw text.&apos;);&#xD;}&#xD;&#xD;if (typeof text !== &apos;string&apos; &amp;&amp; typeof text !== &apos;number&apos;) {&#xD;    throw new Error(&apos;LABEL can only draw text or numbers, not a &apos; + process.reportTypeOf(text)); &#xD;}&#xD;&#xD;var context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + &apos;px monospace&apos;;&#xD;context.textAlign = &apos;left&apos;;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();&#xD;</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations>de:ist _ leer?&#xD;ca:_ buida?&#xD;es:_ vacía?&#xD;fr:_ vide?&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:behalte Elemente, die _ aus _&#xD;ca:manté els elements on _ de _&#xD;es:mantener los elementos donde _ de _&#xD;fr:garder les items tels que _ de _&#xD;</translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:kombiniere mit _ die Elemente von _&#xD;ca:combina amb _ els elements de _&#xD;es:combinar con _ los elementos de _&#xD;fr:combine avec _ les items de _&#xD;</translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations>de:wenn _ dann _ sonst _&#xD;ca:si _ llavors _ si no _&#xD;es:si _ entonces _ sino _&#xD;fr:si _ alors _ sinon _&#xD;</translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:für _ = _ bis _ _&#xD;ca:per _ = _ fins _ _&#xD;es:para _ = _ hasta _ _&#xD;fr:pour _ allant de _ à _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:füge Wörter zusammen _&#xD;ca:uneix les paraules _&#xD;es:unir las palabras _&#xD;fr:fusionne les mots _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Liste $arrowRight Satz _&#xD;ca:llista $arrowRight frase _&#xD;es:lista $arrowRight frase _&#xD;fr:liste $arrowRight phrase _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Satz $arrowRight Liste _&#xD;ca:frase $arrowRight llista _&#xD;es:frase $arrowRight lista _&#xD;fr:phrase $arrowRight liste _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block><custom-block s="ignore %s"><l>3</l></custom-block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations>de:wirf _&#xD;ca:llança _&#xD;es:lanzar _&#xD;fr:lance _&#xD;</translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations>de:wirf _ _&#xD;ca:llança _ _&#xD;es:lanzar _ _&#xD;fr:lance _ _&#xD;</translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations>de:für jedes _ von _ _&#xD;ca:per cada _ de _ _&#xD;es:para cada _ de _ _&#xD;fr:pour chaque _ de _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><header></header><code></code><translations>de:falls _ dann _ und pause $pause-1-255-220-0&#xD;ca:si _ fes _ i atura-ho tot $pause-1-255-220-0&#xD;es:si _ haz _ y páralo todo $pause-1-255-220-0&#xD;fr:si _ faire _ et mettre tout en pause $pause-1-255-220-0&#xD;</translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Wort $arrowRight Liste _&#xD;ca:paraula $arrowRight llista _&#xD;es:palabra $arrowRight lista _&#xD;fr:mot $arrowRight liste _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations>de:ignoriere _&#xD;ca:ignora _&#xD;es:ignorar _&#xD;fr:ignore _&#xD;</translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Liste $arrowRight Wort _&#xD;ca:llista $arrowRight paraula _&#xD;es:lista $arrowRight palabra _&#xD;fr:liste $arrowRight mot _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block-definition><block-definition s="numbers from %&apos;from&apos; to %&apos;to&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:Zahlen von _ bis _&#xD;ca:nombres des de _ a _&#xD;es:números de _ a _&#xD;fr:nombres de _ à _&#xD;</translations><inputs><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doIf"><block s="reportGreaterThan"><block var="from"/><block var="to"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block var="from"/><custom-block s="numbers from %n to %n"><block s="reportSum"><block var="from"/><l>1</l></block><block var="to"/></custom-block></block></block></script></block-definition><block-definition s="map %&apos;func&apos; over %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:wende _ an auf _&#xD;ca:mapeja _ sobre _&#xD;es:mapear _ sobre _&#xD;fr:appliquer _ à _&#xD;</translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block var="data"/></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="func"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><custom-block s="map %repRing over %l"><block var="func"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script></block-definition><block-definition s="The numbers of %&apos;list&apos; distinct?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><block s="reportDifference"><block s="reportListLength"><block var="list"/></block><l>1</l></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="i"/><block var="list"/></block><block s="reportListItem"><block var="i"/><block var="list"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></custom-block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block-definition><block-definition s="Sum from 1 to %&apos;num&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>Test</l><block s="reportNewList"><list></list></block></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><block var="num"/><script><block s="doReplaceInList"><block var="i"/><block var="Test"/><block var="i"/></block></script></custom-block><block s="doReport"><custom-block s="combine with %repRing items of %l"><block s="reifyReporter"><autolambda><block s="reportSum"><l></l><l></l></block></autolambda><list></list></block><block var="Test"/></custom-block></block></script></block-definition><block-definition s="Sum from 1 to %&apos;num&apos; v2" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportProduct"><block s="reportQuotient"><block var="num"/><l>2</l></block><block s="reportSum"><block var="num"/><l>1</l></block></block></block></script></block-definition><block-definition s="List of all %&apos;Number&apos; digit numbers" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><custom-block s="List from %s to %s"><block s="reportMonadic"><l><option>10^</option></l><block s="reportDifference"><block var="Number"/><l>1</l></block></block><block s="reportDifference"><block s="reportMonadic"><l><option>10^</option></l><block var="Number"/></block><l>1</l></block></custom-block></block></script></block-definition><block-definition s="List from %&apos;a&apos; to %&apos;b&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportGreaterThan"><block var="a"/><block var="b"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><script><block s="doReport"><block s="reportCONS"><block var="a"/><custom-block s="List from %s to %s"><block s="reportSum"><block var="a"/><l>1</l></block><block var="b"/></custom-block></block></block></script></block></script></block-definition><block-definition s="Timer %&apos;function&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doDeclareVariables"><list><l>Current Time</l></list></block><block s="doSetVar"><l>Current Time</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><custom-block s="ignore %s"><block s="evaluate"><block var="function"/><list></list></block></custom-block><block s="doReport"><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="Current Time"/></block></block></script></block-definition></blocks><variables><variable name="Test"><list struct="atomic" id="1061">3,6,10,13,15,16,19,25,28,29,31,35,39,43,46,47,54,56,56,66</list></variable><variable name="List"><list struct="atomic" id="1062">2,3,7,10,10,12,12,15,17,20,23,27,30,34,36,36,40,42,46,50</list></variable><variable name="Minimum"><l>1</l></variable><variable name="Maxiumum"><l>20</l></variable><variable name="Middle"><l>0</l></variable></variables></project><media name="U5L1 - List generator blocks" app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>