<snapdata remixID="12064351"><project name="U2L12-brickwall" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAAA+dJREFUeF7t2r9qFFEUx/GbROMDWNrYCtbiC2iTWgIu+gRioZUPYYRgY2diIUELE7BwAzZaSAoLG58ggu8gjGyCkezmz56d2fx+d853S7kz59zf+eysM5OFpmmawocERAksAFCUPGUPEgAgEKQJAFAaP8UBiAFpAgCUxk9xAGJAmgAApfFTHIAYkCYAQGn8FAcgBqQJAFAaP8UBiAFpAgCUxk9xAGJAmgAApfFTHIAYkCYAQGn8FAcgBqQJAFAaP8UBiAFpAgCUxk9xAGJAmgAApfFTHIAYkCYAQGn8FAcgBqQJAFAaP8UBiAFpAgCUxk9xAGJAmgAApfFTHIAYkCYAQGn8FAcgBqQJAFAaP8UBiAFpAgCUxk9xAGJAmgAApfFTHIAYkCYAQGn8FAcgBqQJAFAaP8UBiAFpAgCUxk9xAGJAmgAApfFTHIAYkCYAQGn8FAcgBqQJAFAaP8UBiAFpAgCUxk9xAGJAmgAApfFTHIAYkCYAQGn8FAcgBqQJAFAaP8UBiAFpAgCUxk9xAFZg4P7Vm2Vl/VkZDAYVdBtrsWqA69fuHNvt4/3d8u35Ztlbe3NuCreePCi3nz4s4+c47cDRuUefyPquerlx7275+W541Nrwz3558XW7/H77uXx/9f7o3//1eO7mjRYAcAyxI8BRT6sfX5atlUcT7TWXFsve9cWyubtTlpYvG9GarhUA9gXgcLssXVmebupGqwBYAcCTfoLXvnwovzY+lR+vd/gJNvpC9bIVbkJMxxq5IYisjd5sRNfPuxfTcZ3YVq9+gs+6gZj30CPnj6yN4q4J36hXAI5NbJbHLVEkAPwfOgABKL1oVg1QmhzFO0mgaoBZ3oSMT/q0/ybwJqST78T0JwHg5KvI6dPzWMkVsIIH0VwBPb4sE11wBeQKaEqTtmpJoFc/wTyIPvyTsZo+AOQ5oNQrAAEIwFkTiLzSiqyNvlqLrp93L7PmqTiu6iugIjBqdptA1QB5DMNjmG6/DsGzARCAQTLdLgcgALsVFTwbAAEYJMNyEjieQK9uQngTwpuQC/2CR56nRdZGn+tF18+7lwsdQstiXAF5E9KSULvDAQjAdoJaHl01wJZ753CDBABoMITMLQAw8/QN9g5AgyFkbgGAmadvsHcAGgwhcwsAzDx9g70D0GAImVsAYObpG+wdgAZDyNwCADNP32DvADQYQuYWAJh5+gZ7B6DBEDK3AMDM0zfYOwANhpC5BQBmnr7B3gFoMITMLQAw8/QN9g5AgyFkbgGAmadvsHcAGgwhcwsAzDx9g70D0GAImVsAYObpG+wdgAZDyNwCADNP32DvADQYQuYW/gKR7xbVYmI3oQAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="U2L12-brickwall"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="set flag %&apos;which&apos; to %&apos;tf&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>Presentation mode&#xD;Retina display support&#xD;Long form input dialog&#xD;Plain prototype labels&#xD;Input sliders&#xD;Execute on slider change&#xD;Clicking sound&#xD;Turbo mode&#xD;Flat design&#xD;Keyboard editing&#xD;Table support&#xD;Table lines&#xD;Visible stepping&#xD;Thread safe scripts&#xD;Prefer smooth animations&#xD;Flat line ends&#xD;Codification support&#xD;Inheritance support</options></input><input type="%b"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>which</l><l>tf</l></list><l>var   stage = this.parentThatIsA(StageMorph),&#xD;        ide = stage.parentThatIsA(IDE_Morph),&#xD;        world = stage.parentThatIsA(WorldMorph);&#xD;&#xD;if (tf != !!tf) return;&#xD;&#xD;try{&#xD;ide.savingPreferences = false;&#xD;&#xD;switch (which) {&#xD;    case &apos;Presentation mode&apos;:&#xD;        if (tf != ide.isAppMode) ide.toggleAppMode();&#xD;        break;&#xD;    case &apos;Retina display support&apos;:&#xD;        if (tf != isRetinaEnabled()) ide.toggleRetina();&#xD;        break;&#xD;    case &apos;Long form input dialog&apos;:&#xD;        if (tf != InputSlotDialogMorph.prototype.isLaunchingExpanded)&#xD;            ide.toggleLongFormInputDialog();&#xD;        break;&#xD;    case &apos;Plain prototype labels&apos;:&#xD;        if (tf != BlockLabelPlaceHolderMorph.prototype.plainLabel)&#xD;            ide.togglePlainPrototypeLabels();&#xD;        break;&#xD;    case &apos;Input sliders&apos;:&#xD;        MorphicPreferences.useSliderForInput = tf;&#xD;        break;&#xD;    case &apos;Execute on slider change&apos;:&#xD;        ArgMorph.prototype.executeOnSliderEdit = tf;&#xD;        break;&#xD;    case &apos;Clicking sound&apos;:&#xD;        if (tf != !!BlockMorph.prototype.snapSound)&#xD;            BlockMorph.prototype.toggleSnapSound();&#xD;        break;&#xD;    case &apos;Turbo mode&apos;:&#xD;        if (tf != stage.isFastTracked)&#xD;            ide.toggleFastTracking();&#xD;        break;&#xD;    case &apos;Flat design&apos;:&#xD;        if (tf == MorphicPreferences.isFlat) break;&#xD;        if (tf)&#xD;            ide.flatDesign();&#xD;        else&#xD;            ide.defaultDesign();&#xD;        break;&#xD;    case &apos;Keyboard editing&apos;:&#xD;            ScriptsMorph.prototype.enableKeyboard = tf;&#xD;        break;&#xD;    case &apos;Table support&apos;:&#xD;            List.prototype.enableTables = tf;&#xD;        break;&#xD;    case &apos;Table lines&apos;:&#xD;                TableMorph.prototype.highContrast = tf;&#xD;        break;&#xD;    case &apos;Visible stepping&apos;:&#xD;        if (tf != Process.prototype.enableSingleStepping)&#xD;            ide.toggleSingleStepping();&#xD;        break;&#xD;    case &apos;Thread safe scripts&apos;:&#xD;        stage.isThreadSafe = tf;&#xD;        break;&#xD;    case &apos;Prefer smooth animations&apos;:&#xD;        if (tf != (StageMorph.prototype.frameRate &gt; 0))&#xD;            ide.toggleVariableFrameRate();&#xD;        break;&#xD;    case &apos;Flat line ends&apos;:&#xD;        SpriteMorph.prototype.useFlatLineEnds = tf;&#xD;        break;&#xD;    case &apos;Codification support&apos;:&#xD;        if (tf != StageMorph.prototype.enableCodeMapping) {&#xD;            StageMorph.prototype.enableCodeMapping = tf;&#xD;            ide.currentSprite.blocksCache.variables = null;&#xD;            ide.currentSprite.paletteCache.variables = null;&#xD;            ide.refreshPalette();&#xD;        }&#xD;        break;&#xD;    case &apos;Inheritance support&apos;:&#xD;        if (tf != StageMorph.prototype.enableInheritance) {&#xD;            StageMorph.prototype.enableInheritance = tf;&#xD;            ide.currentSprite.blocksCache.variables = null;&#xD;            ide.currentSprite.paletteCache.variables = null;&#xD;            ide.refreshPalette();&#xD;        }&#xD;        break;&#xD;};&#xD;}&#xD;finally {&#xD;ide.savingPreferences = false;&#xD;};&#xD;</l></block><list><block var="which"/><block var="tf"/></list></block></script></block-definition><block-definition s="draw brick, length: %&apos;length&apos; width: %&apos;width&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="setColor"><color>145,26,68,1</color></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="setSize"><block var="width"/></block><block s="down"></block><block s="forward"><block var="length"/></block><block s="up"></block></script></block-definition><block-definition s="set flat line ends to %&apos;flag&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%b"></input></inputs><script><custom-block s="set flag %s to %b"><l>Flat line ends</l><block var="flag"/></custom-block></script></block-definition><block-definition s="draw row A, bricks: %&apos;bricks&apos; ℓ: %&apos;length&apos; w: %&apos;width&apos; gap: %&apos;gap&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doRepeat"><block var="bricks"/><script><custom-block s="draw brick, length: %n width: %n"><block var="length"/><block var="width"/></custom-block><block s="forward"><block var="gap"/></block></script></block></script></block-definition><block-definition s="draw row B, bricks: %&apos;bricks&apos; ℓ: %&apos;length&apos; w: %&apos;width&apos; gap: %&apos;gap&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><custom-block s="draw brick, length: %n width: %n"><block s="reportQuotient"><block s="reportDifference"><block var="length"/><block var="gap"/></block><l>2</l></block><block var="width"/></custom-block><block s="forward"><block var="gap"/></block><block s="doRepeat"><block s="reportDifference"><block var="bricks"/><l>1</l></block><script><custom-block s="draw brick, length: %n width: %n"><block var="length"/><block var="width"/></custom-block><block s="forward"><block var="gap"/></block></script></block><custom-block s="draw brick, length: %n width: %n"><block s="reportQuotient"><block s="reportDifference"><block var="length"/><block var="gap"/></block><l>2</l></block><block var="width"/></custom-block></script></block-definition><block-definition s="draw Brick wall with %&apos;rows&apos; rows, bricks per row: %&apos;bricks&apos; brick length: %&apos;length&apos; brick width: %&apos;width&apos; gap thickness: %&apos;gap&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>position</l></list></block><block s="doSetVar"><l>position</l><block s="getPosition"></block></block><block s="doFor"><l>i</l><block var="rows"/><l>1</l><script><block s="gotoXY"><block s="reportListItem"><l>1</l><block var="position"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="position"/></block><block s="reportVariadicProduct"><list><block var="i"/><l>15</l></list></block></block></block><block s="doIfElse"><custom-block s="%n is %txt"><block var="i"/><l>even</l></custom-block><script><custom-block s="draw row A, bricks: %n ℓ: %n w: %n gap: %n"><block var="bricks"/><block var="length"/><block var="width"/><block var="gap"/></custom-block></script><script><custom-block s="draw row B, bricks: %n ℓ: %n w: %n gap: %n"><block var="bricks"/><block var="length"/><block var="width"/><block var="gap"/></custom-block></script></block></script></block></script><scripts><script x="410.3603515625" y="186.96666666666664"><block s="reportVariadicProduct"><list><block var="gap"/><l>1.5</l></list></block></script></scripts></block-definition><block-definition s="%&apos;x&apos; ≠ %&apos;y&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNot"><block s="reportEquals"><block var="x"/><block var="y"/></block></block></block></script></block-definition><block-definition s="%&apos;x&apos; is between %&apos;y1&apos; and %&apos;y2&apos; , inclusive? %&apos;inclusive&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%b">true</input></inputs><script><block s="doIfElse"><block var="inclusive"/><script><block s="doReport"><block s="reportOr"><block s="reportAnd"><l/><l/></block><block s="reportAnd"><l/><l/></block></block></block></script><script><block s="doReport"><block s="reportOr"><block s="reportAnd"><block s="reportGreaterThan"><block var="x"/><block var="y1"/></block><block s="reportLessThan"><block var="x"/><block var="y2"/></block></block><block s="reportAnd"><block s="reportLessThan"><block var="x"/><block var="y1"/></block><block s="reportGreaterThan"><block var="x"/><block var="y2"/></block></block></block></block></script></block></script></block-definition><block-definition s="%&apos;num1&apos; √ %&apos;num2&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportPower"><block var="num2"/><block s="reportQuotient"><l>1</l><block var="num1"/></block></block></block></script></block-definition><block-definition s="%&apos;num&apos; !" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doWarp"><script><block s="doFor"><l>i</l><block s="reportDifference"><block var="num"/><l>1</l></block><l>2</l><script><block s="doSetVar"><l>num</l><block s="reportVariadicProduct"><list><block var="num"/><block var="i"/></list></block></block></script></block></script></block><block s="doReport"><block var="num"/></block></script></block-definition><block-definition s="%&apos;num&apos; is a(n) %&apos;thing&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%s">integer<options>integer&#xD;whole number</options></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="thing"/><l>integer</l></block><script><block s="doReport"><block s="reportEquals"><block s="reportRound"><block var="num"/></block><block var="num"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="thing"/><l>whole number</l></block><script><block s="doReport"><block s="reportAnd"><block s="reportEquals"><block s="reportRound"><block var="num"/></block><block var="num"/></block><l/></block></block></script></block></script></block-definition><block-definition s="round %&apos;num&apos; to nearest %&apos;rounding&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportRound"><block s="reportQuotient"><block var="num"/><block var="rounding"/></block></block><block var="rounding"/></list></block></block></script></block-definition><block-definition s="%&apos;first/last&apos; %&apos;letters&apos; letters of %&apos;thing&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt">first<options>first&#xD;last</options></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="doIf"><block s="reportEquals"><block var="first/last"/><l>first</l></block><script><block s="doWarp"><script><block s="doFor"><l>i</l><l>1</l><block var="letters"/><script><block s="doAddToList"><block s="reportLetter"><block var="i"/><block var="thing"/></block><block var="list"/></block></script></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="first/last"/><l>last</l></block><script><block s="doWarp"><script><block s="doFor"><l>i</l><block s="reportStringSize"><block var="thing"/></block><block s="reportDifference"><block s="reportStringSize"><block var="thing"/></block><block s="reportDifference"><block var="letters"/><l>1</l></block></block><script><block s="doAddToList"><block s="reportLetter"><block var="i"/><block var="thing"/></block><block var="list"/></block></script></block></script></block><block s="doSetVar"><l>list</l><custom-block s="reverse %l"><block var="list"/></custom-block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block var="list"/></list></block></block></script></block-definition><block-definition s="reverse %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>newList</l></list></block><block s="doSetVar"><l>newList</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doFor"><l>i</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><l>1</l><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="list"/></block><block var="newList"/></block></script></block></script></block><block s="doReport"><block var="newList"/></block></script></block-definition><block-definition s="all of %&apos;preds&apos;" type="predicate" category="operators"><comment x="0" y="0" w="248" collapsed="false">Takes any number of Boolean (true/false) inputs (use the left and right arrowheads to adjust the number of input slots) and reports TRUE only if all of the inputs are TRUE, otherwise FALSE.  Like AND but for multiple inputs.</comment><header></header><code></code><translations>pt:todas as afirmações _ são verdadeiras&#xD;ca:tots _ ?&#xD;</translations><inputs><input type="%mult%boolUE"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="preds"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><block s="reportAnd"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="preds"/></block><list></list></block><custom-block s="all of %mult%boolUE"><block s="reportCDR"><block var="preds"/></block></custom-block></block></block></script></block-definition><block-definition s="any of %&apos;preds&apos;" type="predicate" category="operators"><comment x="0" y="0" w="240" collapsed="false">Takes any number of Boolean (true/false) inputs (use the left and right arrowheads to adjust the number of input slots) and reports TRUE if at least one input is TRUE, otherwise FALSE.</comment><header></header><code></code><translations>pt:alguma das afirmações _ é verdadeira&#xD;ca:qualsevol _ ?&#xD;</translations><inputs><input type="%mult%boolUE"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="preds"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doReport"><block s="reportOr"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="preds"/></block><list></list></block><custom-block s="any of %mult%boolUE"><block s="reportCDR"><block var="preds"/></block></custom-block></block></block></script></block-definition><block-definition s="signum %&apos;num&apos;" type="reporter" category="operators"><comment x="0" y="0" w="159.99999999999997" collapsed="false">Reports 1 if the input is positive,&#xD;0 if the input is zero,&#xD;or -1 if the input is negative.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="num"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="signum %n"><l></l></custom-block></autolambda><list></list></block><block var="num"/></block></block></script></block><block s="doIf"><block s="reportListContainsItem"><block s="reportNewList"><list><l>0</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block var="num"/></block><script><block s="doReport"><l>0</l></block></script></block><block s="doReport"><block s="reportQuotient"><block var="num"/><block s="reportMonadic"><l><option>abs</option></l><block var="num"/></block></block></block></script></block-definition><block-definition s="roll %&apos;amt&apos; d %&apos;num&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>total</l></list></block><block s="doSetVar"><l>total</l><l>0</l></block><block s="doWarp"><script><block s="doRepeat"><block var="amt"/><script><block s="doChangeVar"><l>total</l><block s="reportRandom"><l>1</l><block var="num"/></block></block></script></block><block s="doReport"><block var="total"/></block></script></block></script></block-definition><block-definition s="%&apos;howmany&apos; deal ? %&apos;range&apos;" type="reporter" category="operators"><comment x="0" y="0" w="177.33333333333334" collapsed="false">Report a list with left-input random integers in the range 1 to right-input.&#xD;No number appears more than once&#xD;in the result.  The left input must be less than or equal to the right input.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="evaluate"><custom-block s="scalar -&gt; hyper %repRing"><block s="reifyReporter"><autolambda><custom-block s="%n deal helper %l"><l></l><block s="reportNumbers"><l>1</l><l></l></block></custom-block></autolambda><list></list></block></custom-block><list><block var="howmany"/><block var="range"/></list></block></block></script></block-definition><block-definition s="%&apos;base&apos; log %&apos;num&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportMonadic"><l><option>ln</option></l><block var="num"/></block><block s="reportMonadic"><l><option>ln</option></l><block var="base"/></block></block></block></script></block-definition><block-definition s="datatype of %&apos;thing&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="thing"/><l><option>number</option></l></block><script><block s="doReport"><l>number</l></block></script></block><block s="doIf"><block s="reportIsA"><block var="thing"/><l><option>text</option></l></block><script><block s="doReport"><l>text</l></block></script></block><block s="doIf"><block s="reportIsA"><block var="thing"/><l><option>Boolean</option></l></block><script><block s="doReport"><l>Boolean</l></block></script></block><block s="doIf"><block s="reportIsA"><block var="thing"/><l><option>list</option></l></block><script><block s="doReport"><l>list</l></block></script></block><block s="doIf"><block s="reportIsA"><block var="thing"/><l><option>sprite</option></l></block><script><block s="doReport"><l>sprite</l></block></script></block><block s="doIf"><block s="reportIsA"><block var="thing"/><l><option>costume</option></l></block><script><block s="doReport"><l>costume</l></block></script></block><block s="doIf"><block s="reportIsA"><block var="thing"/><l><option>sound</option></l></block><script><block s="doReport"><l>sound</l></block></script></block><block s="doIf"><block s="reportIsA"><block var="thing"/><l><option>command</option></l></block><script><block s="doReport"><l>command</l></block></script></block><block s="doIf"><block s="reportIsA"><block var="thing"/><l><option>reporter</option></l></block><script><block s="doReport"><l>reporter</l></block></script></block><block s="doIf"><block s="reportIsA"><block var="thing"/><l><option>predicate</option></l></block><script><block s="doReport"><l>predicate</l></block></script></block></script></block-definition><block-definition s="inner product helper with %&apos;plus&apos; . %&apos;times&apos; %&apos;a&apos; $nl transposed %&apos;tb&apos;" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%repRing"></input><input type="%l"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="a"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="a"/></block></block><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportCONS"><block s="reportMap"><block s="reifyReporter"><script></script><list></list></block><block var="tb"/></block><custom-block s="inner product helper with %repRing . %repRing %l %br transposed %l"><block var="plus"/><block var="times"/><block s="reportCDR"><block var="a"/></block><block var="tb"/></custom-block></block></block></script></block><block s="doReport"><block s="reportCONS"><custom-block s="inner product helper with %repRing . %repRing %l %br transposed %l"><block var="plus"/><block var="times"/><block s="reportListItem"><l>1</l><block var="a"/></block><block var="tb"/></custom-block><custom-block s="inner product helper with %repRing . %repRing %l %br transposed %l"><block var="plus"/><block var="times"/><block s="reportCDR"><block var="a"/></block><block var="tb"/></custom-block></block></block></script></block-definition><block-definition s="multimap %&apos;function&apos; %&apos;data&apos;" type="reporter" category="other" helper="true"><comment x="0" y="0" w="215.33333333333334" collapsed="false">Like MAP, but can take any number of lists&#xD;as inputs.  The lists must all be the same size.&#xD;The function input must take a number of inputs&#xD;equal to the number of lists.  MULTIMAP calls&#xD;the function with all the first items, then all the&#xD;second items, and so on.</comment><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>lengths</l><l>cols</l></list></block><block s="doSetVar"><l>lengths</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListAttribute"><l><option>length</option></l><l/></block></autolambda><list></list></block><block var="data"/></block></block><block s="doFor"><l>i</l><l>2</l><block s="reportListAttribute"><l><option>length</option></l><block var="lengths"/></block><script><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="lengths"/></block><block s="reportListItem"><block var="i"/><block var="lengths"/></block></block></block><script><custom-block s="error %txt"><l>Non-conforming shapes.</l></custom-block></script></block></script></block><block s="doSetVar"><l>cols</l><block s="reportListAttribute"><l><option>columns</option></l><block var="data"/></block></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="function"/><list></list></block></autolambda><list></list></block><block var="cols"/></block></block></script></block></script></block-definition><block-definition s="%&apos;howmany&apos; deal helper %&apos;data&apos;" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block var="howmany"/><l>0</l></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doDeclareVariables"><list><l>choices</l><l>index</l></list></block><block s="doSetVar"><l>choices</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><block var="howmany"/><script><block s="doSetVar"><l>index</l><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block><block s="doAddToList"><block s="reportListItem"><block var="index"/><block var="data"/></block><block var="choices"/></block><block s="doDeleteFromList"><block var="index"/><block var="data"/></block></script></block><block s="doReport"><block var="choices"/></block></script></block></script></block-definition><block-definition s="scalar? %&apos;x&apos;" type="predicate" category="other" helper="true"><comment x="0" y="0" w="199.33333333333334" collapsed="false">Reports True if the input is an APL scalar,&#xD;i.e., either an atomic (non-list) value, or&#xD;an array (list of lists) of any depth with only&#xD;one atomic item, e.g., (list (list (list (3)))).</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="x"/><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><block s="reportEquals"><block s="reportAtomicCombine"><l/><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block><l>1</l></block></block></script></block-definition><block-definition s="scalar-value helper %&apos;x&apos;" type="reporter" category="other" helper="true"><comment x="0" y="0" w="200.66666666666666" collapsed="false">The input must be a value for which SCALAR? reports true, i.e., either an atom or a list of any depth but only one scalar item of item of... etc.  This function returns the underlying scalar (number, etc.).</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="x"/><l><option>list</option></l></block></block><script><block s="doReport"><block var="x"/></block></script></block><block s="doReport"><custom-block s="scalar-value helper %s"><block s="reportListItem"><l>1</l><block var="x"/></block></custom-block></block></script></block-definition><block-definition s="zero? %&apos;n&apos;" type="predicate" category="other" helper="true"><comment x="0" y="0" w="202.66666666666666" collapsed="true">reports True iff the input is 0 or False.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportListContainsItem"><block s="reportNewList"><list><l>0</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block var="n"/></block></block></script></block-definition><block-definition s="truth %&apos;n&apos;" type="predicate" category="other" helper="true"><comment x="0" y="0" w="198.66666666666666" collapsed="false">Reports a Snap! Boolean False if the input&#xD;is False or 0; reports True otherwise.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="n"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="truth %s"><l></l></custom-block></autolambda><list></list></block><block var="n"/></block></block></script></block><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="n"/><l><option>Boolean</option></l></block><block var="n"/><block s="reportNot"><block s="reportEquals"><block var="n"/><l>0</l></block></block></block></block></script></block-definition><block-definition s="make scalar %&apos;value&apos;" type="reporter" category="operators" helper="true"><comment x="0" y="0" w="242.66666666666666" collapsed="false">Turns list of list of ... a single scalar (e.g., ((((x)))) ) into just the scalar.  Error if called with anything else.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="scalar? %s"><block var="value"/></custom-block><script><block s="doReport"><custom-block s="scalar-value helper %s"><block var="value"/></custom-block></block></script></block><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Make scalar called with non-singleton input </l><block var="value"/></list></block></custom-block></script></block-definition><block-definition s="%&apos;array&apos; deep contains %&apos;value&apos;" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="array"/><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doIf"><block s="reportListContainsItem"><block var="array"/><block var="value"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="sort helper %&apos;rowA&apos; %&apos;rowB&apos;" type="reporter" category="other" helper="true"><comment x="0" y="0" w="166" collapsed="false">Compares two vectors for sorting.&#xD;Compare first items; if those are equal compare second items; etc.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="rowA"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doIf"><block s="reportListIsEmpty"><block var="rowB"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doIf"><block s="reportLessThan"><block s="reportListItem"><l>1</l><block var="rowA"/></block><block s="reportListItem"><l>1</l><block var="rowB"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListItem"><l>1</l><block var="rowA"/></block><block s="reportListItem"><l>1</l><block var="rowB"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doReport"><custom-block s="sort helper %l %l"><block s="reportCDR"><block var="rowA"/></block><block s="reportCDR"><block var="rowB"/></block></custom-block></block></script></block-definition><block-definition s="rowize vector %&apos;vec&apos;" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportAnd"><block s="reportEquals"><l></l><l>2</l></block><block s="reportEquals"><block s="reportListItem"><l>2</l><l/></block><l>1</l></block></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="vec"/></block><block var="vec"/></block></block></script></block-definition><block-definition s="columnwise %&apos;function&apos; %&apos;data&apos;" type="reporter" category="control" helper="true"><comment x="0" y="0" w="212" collapsed="false">Turns a row-wise (in Lisp terminology) function&#xD;into a column-wise one.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="rowize vector %l"><l/></custom-block></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><comment x="0" y="0" w="268.6666666666667" collapsed="false">Throw an error.&#xD;&#xD;Makes a red halo appear around the script that runs it,&#xD;with the input text shown in a speech balloon next to&#xD;the script, just like any Snap! error.&#xD;&#xD;This is useful to put in the second script of SAFELY TRY&#xD;after some other instructions to undo the partial work of&#xD;the first script.</comment><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="simple log base %&apos;b&apos; of %&apos;n&apos;" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportMonadic"><l><option>ln</option></l><block var="n"/></block><block s="reportMonadic"><l><option>ln</option></l><block var="b"/></block></block></block></script></block-definition><block-definition s="simple permutations of %&apos;r&apos; items out of %&apos;n&apos;" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="r"/><l>0</l></block><l>1</l><block s="reportAtomicCombine"><block s="reportNumbers"><block s="reportVariadicSum"><list><block s="reportDifference"><block var="n"/><block var="r"/></block><l>1</l></list></block><block var="n"/></block><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></block></script></block-definition><block-definition s="simple combs %&apos;r&apos; out of %&apos;n&apos;" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportQuotient"><custom-block s="simple permutations of %n items out of %n"><block var="r"/><block var="n"/></custom-block><l></l></block></block></script></block-definition><block-definition s="simple gcd %&apos;a&apos; %&apos;b&apos;" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="b"/><l>0</l></block><script><block s="doReport"><block var="a"/></block></script></block><block s="doReport"><custom-block s="simple gcd %n %n"><block var="b"/><block s="reportModulus"><block var="a"/><block var="b"/></block></custom-block></block></script></block-definition><block-definition s="de-boolean %&apos;n&apos;" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="n"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="de-boolean %s"><l></l></custom-block></autolambda><list></list></block><block var="n"/></block></block></script><script><block s="doReport"><block s="reportIfElse"><custom-block s="zero? %n"><block var="n"/></custom-block><l>0</l><block s="reportIfElse"><block s="reportEquals"><block var="n"/><block s="reportBoolean"><l><bool>true</bool></l></block></block><l>1</l><block var="n"/></block></block></block></script></block></script></block-definition><block-definition s="simple lcm %&apos;a&apos; %&apos;b&apos;" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="b"/><l>0</l></block><script><block s="doReport"><block var="b"/></block></script></block><block s="doReport"><block s="reportVariadicProduct"><list><block var="a"/><block s="reportQuotient"><block var="b"/><custom-block s="simple gcd %n %n"><block var="a"/><block var="b"/></custom-block></block></list></block></block></script></block-definition><block-definition s="simple numbers from %&apos;from&apos; to %&apos;to&apos; ascending" type="reporter" category="other" helper="true"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportGreaterThan"><block var="from"/><block var="to"/></block><block s="reportNewList"><list></list></block><block s="reportNumbers"><block var="from"/><block var="to"/></block></block></block></script></block-definition><block-definition s="$flash sort %&apos;data&apos; ordering with %&apos;function&apos;" type="reporter" category="lists"><comment x="0" y="0" w="161.14285714285708" collapsed="false">Reports a sorted version of the list in its first input slot, using the comparison function in the second input slot.  For a list of numbers, using &lt; as the comparison function will sort from low to high; using &gt; will sort from high to low.</comment><header></header><code></code><translations>ca:ordena _ segons criteri _&#xD;</translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><block var="data"/><block var="function"/></list></block></block></script><scripts><script x="13" y="147.5555555555556"><block s="doDeclareVariables"><list><l>even items</l><l>odd items</l><l>merge</l><l>split</l><l>copy of data</l><l>id</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>id</l><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block></block><block s="doSetVar"><l>copy of data</l><block s="reportMap"><block var="id"/><block var="data"/></block></block><block s="doSetVar"><l>split</l><block s="reifyScript"><script><block s="doSetVar"><l>even items</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>odd items</l><block s="reportNewList"><list></list></block></block><block s="doUntil"><block s="reportListIsEmpty"><block var="copy of data"/></block><script><block s="doAddToList"><block s="reportListItem"><l>1</l><block var="copy of data"/></block><block var="odd items"/></block><block s="doDeleteFromList"><l>1</l><block var="copy of data"/></block><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><block var="copy of data"/></block></block><script><block s="doAddToList"><block s="reportListItem"><l>1</l><block var="copy of data"/></block><block var="even items"/></block><block s="doDeleteFromList"><l>1</l><block var="copy of data"/></block></script></block></script></block></script><list></list></block></block><block s="doSetVar"><l>merge</l><block s="reifyScript"><script><block s="doIf"><block s="reportEquals"><block var="#1"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="#2"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="#2"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="#1"/></block></script></block><block s="doIfElse"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="#1"/></block><block s="reportListItem"><l>1</l><block var="#2"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="#1"/></block><block s="evaluate"><block var="merge"/><list><block s="reportCDR"><block var="#1"/></block><block var="#2"/></list></block></block></block></script><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="#2"/></block><block s="evaluate"><block var="merge"/><list><block var="#1"/><block s="reportCDR"><block var="#2"/></block></list></block></block></block></script></block></script><list><l>#1</l><l>#2</l></list></block></block><block s="doIf"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportCDR"><block var="data"/></block><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="data"/></block></script></block><block s="doRun"><block var="split"/><list></list></block><block s="doReport"><block s="evaluate"><block var="merge"/><list><custom-block s="$flash sort %l ordering with %predRing"><block var="odd items"/><block var="function"/></custom-block><custom-block s="$flash sort %l ordering with %predRing"><block var="even items"/><block var="function"/></custom-block></list></block></block></script></block></script></scripts></block-definition><block-definition s="☠︎ linked? %&apos;data&apos;" type="predicate" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>lst_linked(list)</l><list><block var="data"/></list></block></block></script></block-definition><block-definition s="☠︎ link %&apos;data&apos;" type="reporter" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><block var="data"/></block></script></block><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><block s="reportCDR"><block var="data"/></block></block></block></script></block-definition><block-definition s="scalar -&gt; hyper %&apos;func&apos;" type="reporter" category="control" helper="true"><comment x="0" y="0" w="218" collapsed="false">Takes a dyadic scalar function as input, and&#xD;hyperizes it, so that it can take lists as inputs.&#xD;&#xD;Don&apos;t use on slow functions (this has compiled map calls).  Meant for use on primitives.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doDeclareVariables"><list><l>hyper func</l><l>scalarized</l></list></block><block s="doSetVar"><l>hyper func</l><block s="reifyReporter"><script><block s="doWarp"><script><block s="doIfElse"><custom-block s="scalar? %s"><block var="a"/></custom-block><script><block s="doIfElse"><custom-block s="scalar? %s"><block var="b"/></custom-block><script><block s="doReport"><block s="evaluate"><block var="func"/><list><custom-block s="scalar-value helper %s"><block var="a"/></custom-block><custom-block s="scalar-value helper %s"><block var="b"/></custom-block></list></block></block></script><script><block s="doSetVar"><l>scalarized</l><custom-block s="scalar-value helper %s"><block var="a"/></custom-block></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="b"/></block></block><script><block s="doReport"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="func"/><list><block var="scalarized"/><l></l></list></block></autolambda><list></list></block><block var="b"/></block></block></script></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="hyper func"/><list><block var="scalarized"/><l></l></list></block></autolambda><list></list></block><block var="b"/></block></block></script></block></script><script><block s="doIfElse"><custom-block s="scalar? %s"><block var="b"/></custom-block><script><block s="doSetVar"><l>scalarized</l><custom-block s="scalar-value helper %s"><block var="b"/></custom-block></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="a"/></block></block><script><block s="doReport"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="func"/><list><l></l><block var="scalarized"/></list></block></autolambda><list></list></block><block var="a"/></block></block></script></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="hyper func"/><list><l></l><block var="scalarized"/></list></block></autolambda><list></list></block><block var="a"/></block></block></script><script><block s="doIf"><block s="reportAnd"><block s="reportEquals"><l></l><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="a"/></block></block><block s="reportEquals"><l></l><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="b"/></block></block></block><script><block s="doReport"><l></l></block></script></block><block s="doReport"><l></l></block></script></block></script></block></script></block></script><list><l>a</l><l>b</l></list></block></block><block s="doReport"><block var="hyper func"/></block></script></block-definition><block-definition s="GCD %&apos;a&apos; v %&apos;b&apos;" type="reporter" category="operators"><comment x="0" y="0" w="230.66666666666666" collapsed="false">Reports the greatest common divisor of its inputs.&#xD;If the inputs are values in {0,1} then this is equivalent to the logical OR of the values, with 0=False, 1=True.  Hence the APL symbol ∨.&#xD;Also accepts Snap! Booleans as inputs.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="evaluate"><custom-block s="scalar -&gt; hyper %repRing"><block s="reifyReporter"><autolambda><custom-block s="simple gcd %n %n"><l></l><l></l></custom-block></autolambda><list></list></block></custom-block><list><custom-block s="de-boolean %s"><block var="a"/></custom-block><custom-block s="de-boolean %s"><block var="b"/></custom-block></list></block></block></script></block-definition><block-definition s="LCM %&apos;a&apos; ^ %&apos;b&apos;" type="reporter" category="operators"><comment x="0" y="0" w="230.66666666666666" collapsed="false">Reports the least common multiple of its inputs.&#xD;If the inputs are values in {0,1} then this is equivalent to the logical AND of the values, with 0=False, 1=True.  Hence the APL symbol ∧.&#xD;Also accepts Snap! Booleans as inputs.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="evaluate"><custom-block s="scalar -&gt; hyper %repRing"><block s="reifyReporter"><autolambda><custom-block s="simple lcm %n %n"><l></l><l></l></custom-block></autolambda><list></list></block></custom-block><list><custom-block s="de-boolean %s"><block var="a"/></custom-block><custom-block s="de-boolean %s"><block var="b"/></custom-block></list></block></block></script></block-definition><block-definition s="permutations of %&apos;r&apos; items out of %&apos;n&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="evaluate"><custom-block s="scalar -&gt; hyper %repRing"><block s="reifyReporter"><autolambda><custom-block s="simple permutations of %n items out of %n"><l></l><l></l></custom-block></autolambda><list></list></block></custom-block><list><block var="r"/><block var="n"/></list></block></block></script></block-definition><block-definition s="join list %&apos;list&apos; with %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>final</l></list></block><block s="doForEach"><l>item</l><block var="list"/><script><block s="doIfElse"><block s="reportEquals"><block var="final"/><l>0</l></block><script><block s="doSetVar"><l>final</l><block var="item"/></block></script><script><block s="doSetVar"><l>final</l><block s="reportJoinWords"><list><block var="final"/><block var="text"/><block var="item"/></list></block></block></script></block></script></block><block s="doReport"><block var="final"/></block></script></block-definition><block-definition s="items in common %&apos;lists&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doDeclareVariables"><list><l>full list</l></list></block><block s="doDeclareVariables"><list><l>Boolean</l></list></block><block s="doDeclareVariables"><list><l>final list</l></list></block><block s="doSetVar"><l>full list</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>final list</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doForEach"><l>item</l><block var="lists"/><script><block s="doSetVar"><l>full list</l><block s="reportConcatenatedLists"><list><block var="full list"/><block var="item"/></list></block></block></script></block><block s="doForEach"><l>item</l><block var="full list"/><script><block s="doSetVar"><l>Boolean</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="lists"/></block><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportListItem"><block var="i"/><block var="lists"/></block><block var="item"/></block></block><script><block s="doSetVar"><l>Boolean</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block var="Boolean"/><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="reportNot"><block s="reportListContainsItem"><block var="final list"/><block var="item"/></block></block></block><script><block s="doAddToList"><block var="item"/><block var="final list"/></block></script></block></script></block></script></block><block s="doReport"><block var="final list"/></block></script></block-definition><block-definition s="%&apos;num1&apos; is divisible by %&apos;num2&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportEquals"><block s="reportModulus"><block var="num1"/><block var="num2"/></block><l>0</l></block></block></script></block-definition><block-definition s="%&apos;num&apos; is %&apos;text&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%txt">even<options>even&#xD;odd</options></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="text"/><l>even</l></block><script><block s="doReport"><custom-block s="%n is divisible by %n"><block var="num"/><l>2</l></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><block var="text"/><l>odd</l></block><script><block s="doReport"><block s="reportEquals"><block s="reportModulus"><block var="num"/><l>2</l></block><l>1</l></block></block></script></block></script></block-definition><block-definition s="number of divisors of %&apos;num&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><custom-block s="factors of %n"><block var="num"/></custom-block></block></block></script></block-definition><block-definition s="factors of %&apos;num&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>divisors</l></list></block><block s="doSetVar"><l>divisors</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doForEach"><l>item</l><block s="reportNumbers"><l>1</l><block var="num"/></block><script><block s="doIf"><custom-block s="%n is divisible by %n"><block var="num"/><block var="item"/></custom-block><script><block s="doAddToList"><block var="item"/><block var="divisors"/></block></script></block></script></block></script></block><block s="doReport"><block var="divisors"/></block></script></block-definition><block-definition s="%&apos;x&apos; ≤ %&apos;y&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNot"><block s="reportGreaterThan"><block var="x"/><block var="y"/></block></block></block></script></block-definition><block-definition s="%&apos;x&apos; ≥ %&apos;y&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNot"><block s="reportLessThan"><block var="x"/><block var="y"/></block></block></block></script></block-definition><block-definition s="delete duplicates in list %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>final list</l></list></block><block s="doSetVar"><l>final list</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doForEach"><l>item</l><block var="list"/><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block var="final list"/><block var="item"/></block></block><script><block s="doAddToList"><block var="item"/><block var="final list"/></block></script></block></script></block></script></block><block s="doReport"><block var="final list"/></block></script></block-definition><block-definition s="%&apos;num&apos; is prime" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportEquals"><custom-block s="number of divisors of %n"><block var="num"/></custom-block><l>2</l></block></block></script></block-definition><block-definition s="max %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>value</l></list></block><block s="doWarp"><script><block s="doForEach"><l>item</l><block var="list"/><script><block s="doIf"><block s="reportGreaterThan"><block var="item"/><block var="value"/></block><script><block s="doSetVar"><l>value</l><block var="item"/></block></script></block></script></block><block s="doReport"><block var="value"/></block></script></block></script></block-definition><block-definition s="min %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>value</l></list></block><block s="doSetVar"><l>value</l><l>Infinity</l></block><block s="doWarp"><script><block s="doForEach"><l>item</l><block var="list"/><script><block s="doIf"><block s="reportLessThan"><block var="item"/><block var="value"/></block><script><block s="doSetVar"><l>value</l><block var="item"/></block></script></block></script></block></script></block><block s="doReport"><block var="value"/></block></script></block-definition><block-definition s="mean %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>avg</l></list></block><block s="doSetVar"><l>avg</l><l>0</l></block><block s="doWarp"><script><block s="doForEach"><l>item</l><block var="list"/><script><block s="doChangeVar"><l>avg</l><block var="item"/></block></script></block></script></block><block s="doSetVar"><l>avg</l><block s="reportQuotient"><block var="avg"/><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block></block><block s="doReport"><block var="avg"/></block></script></block-definition><block-definition s="median %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>loc</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>loc</l><custom-block s="$flash sort %l ordering with %predRing"><block var="list"/><block s="reifyPredicate"><autolambda><block s="reportLessThan"><l></l><l></l></block></autolambda><list></list></block></custom-block></block><block s="doIf"><custom-block s="%n is %txt"><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><l>odd</l></custom-block><script><block s="doReport"><block s="reportListItem"><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><l>1</l></list></block><l>2</l></block><block var="loc"/></block></block></script></block><block s="doIf"><custom-block s="%n is %txt"><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><l>even</l></custom-block><script><block s="doReport"><custom-block s="mean %l"><block s="reportNewList"><list><block s="reportListItem"><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><l>2</l></block><block var="loc"/></block><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><l>2</l></block><l>1</l></list></block><block var="loc"/></block></list></block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="create %&apos;_scope&apos; var %&apos;_names&apos;" type="command" category="variables"><comment x="0" y="0" w="146" collapsed="false">This block creates  new variables on the selected scope: global (for all sprites), sprite (for this sprite only) or script (only for that blocks stack) with the names given (in &apos;names&apos; list).&#xD;&#xD;If there is already a variable with that name in that scope, it does nothing: no errors and no overwrites.</comment><header></header><code></code><translations>pt:cria as variáveis _ _&#xD;ca:crea les _ variables _&#xD;es:crear las _ variables _&#xD;de:erstellen _ var _&#xD;</translations><inputs><input type="%s" readonly="true">global<options>global&#xD;sprite&#xD;script</options></input><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>_item</l><block var="_names"/><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><block var="_scope"/><block var="_item"/></list></block></script></block></script></block></script></block-definition><block-definition s="delete var %&apos;_names&apos;" type="command" category="variables"><comment x="0" y="0" w="217" collapsed="false">This block deletes all the variables with the names given (inside input list).&#xD;&#xD;Each name will make only one variable deletion, and this will be the variable found following the scope order: &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos;.&#xD;&#xD;If we have a &quot;testing&quot; sprite variable and also a &quot;testing&quot; global one, deleting &quot;testing&quot; will delete only the sprite one (Yes! we can also do &quot;delete var (testing, testing)&quot; to delete both.&#xD;&#xD;If one variable does not exists (in any scope) an error happens, stopping block action in that point. You can check it before with the &quot;does var (name) exists?&quot;block. </comment><header></header><code></code><translations>pt:remove as variáveis _&#xD;ca:esborra les variables _&#xD;es:borrar variables _&#xD;de:löschen var _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>_item</l><block var="_names"/><script><block s="doApplyExtension"><l>err_ignore</l><list><custom-block s="var %s"><block var="_item"/></custom-block></list></block><block s="doApplyExtension"><l>var_delete(name)</l><list><block var="_item"/></list></block></script></block></script></block></script></block-definition><block-definition s="set var %&apos;_name&apos; to %&apos;_value&apos;" type="command" category="variables"><comment x="0" y="0" w="240.4931640625" collapsed="false">This block sets the given value (last input) to the variable named with the name givent (var input).&#xD;&#xD;It looks for that variable following the scope order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos; (the first match it finds).&#xD;&#xD;If that variable does not exist (in any scope) an error happens, stopping their script. You can check it before using the &quot;does var (name) exists?&quot; block. </comment><header></header><code></code><translations>ca:assigna a _ el valor _&#xD;es:asignar a _ el valor _&#xD;pt:altera _ para _&#xD;de:setze var _ auf _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="_name"/><block var="_value"/></list></block></script></block-definition><block-definition s="var %&apos;_name&apos;" type="reporter" category="variables"><comment x="0" y="0" w="178.00000000000003" collapsed="false">This block reports the value of the variable with the name given.&#xD;&#xD;It looks for that variable following the scope order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos; (the first match it finds).&#xD;&#xD;If that variable does not exist (in any scope) an error happens, stopping their script. You can check it before using the &quot;does var (name) exists?&quot; block. </comment><header></header><code></code><translations>pt:o valor de _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="_name"/></list></block></block></script></block-definition><block-definition s="does var %&apos;_name&apos; exist?" type="predicate" category="variables"><comment x="0" y="0" w="146" collapsed="false">This block reports &quot;true&quot; if there is a variable with this given name (input slot) in that context.&#xD;&#xD;It can be a global, sprite or script variable.&#xD;&#xD;Otherwise it reports &quot;false&quot;.</comment><header></header><code></code><translations>pt:a variável _ existe&#xD;ca:existeix la variable _ ?&#xD;es:existe la variable _ ?&#xD;de:existiert var _ ?&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doApplyExtension"><l>err_ignore</l><list><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="_name"/></list></block></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="reifyScript"><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><l></l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="show var %&apos;_name&apos;" type="command" category="variables"><comment x="0" y="0" w="181" collapsed="false">This block turns on (show) the watcher view on stage (if it was not already activated) of the variable with the given name (slot input).&#xD;&#xD;It can only access to the closest variable scope (if there different variables with the same name in different scopes) following the order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos;.&#xD;&#xD;No errors if that variable does not exist.</comment><header></header><code></code><translations>ca:mostra la variable _&#xD;es:mostrar variable _&#xD;pt:mostra a variável _&#xD;de:zeige var _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doApplyExtension"><l>var_show(name)</l><list><block var="_name"/></list></block></script></block-definition><block-definition s="hide var %&apos;_name&apos;" type="command" category="variables"><comment x="0" y="0" w="181" collapsed="false">This block turns off (hide) the watcher view on stage (if it was not already activated) of the variable with the given name (slot input).&#xD;&#xD;It can only access to the closest variable scope (if there different variables with the same name in different scopes) following the order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos;.&#xD;&#xD;No errors if that variable does not exist.</comment><header></header><code></code><translations>ca:amaga la variable _&#xD;es:esconder variable _&#xD;pt:esconde a variável _&#xD;de:verstecke var _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doApplyExtension"><l>var_hide(name)</l><list><block var="_name"/></list></block></script></block-definition><block-definition s="mode %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>mode</l></list></block><block s="doDeclareVariables"><list><l>local list</l></list></block><block s="doDeclareVariables"><list><l>mode #</l></list></block><block s="doSetVar"><l>local list</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doForEach"><l>item</l><block var="list"/><script><block s="doIfElse"><block s="reportNot"><custom-block s="does var %s exist?"><block s="reportJoinWords"><list><block s="reportUnicodeAsLetter"><l>0</l></block><block var="item"/></list></block></custom-block></block><script><custom-block s="create %s var %mult%txt"><l>script</l><list><block s="reportJoinWords"><list><block s="reportUnicodeAsLetter"><l>0</l></block><block var="item"/></list></block></list></custom-block><custom-block s="set var %s to %s"><block s="reportJoinWords"><list><block s="reportUnicodeAsLetter"><l>0</l></block><block var="item"/></list></block><l></l></custom-block><block s="doAddToList"><block var="item"/><block var="local list"/></block></script><script><custom-block s="set var %s to %s"><block s="reportJoinWords"><list><block s="reportUnicodeAsLetter"><l>0</l></block><block var="item"/></list></block><block s="reportVariadicSum"><list><custom-block s="var %s"><block s="reportJoinWords"><list><block s="reportUnicodeAsLetter"><l>0</l></block><block var="item"/></list></block></custom-block><l>1</l></list></block></custom-block></script></block></script></block><block s="doForEach"><l>item</l><block var="local list"/><script><block s="doIf"><block s="reportGreaterThan"><custom-block s="var %s"><block s="reportJoinWords"><list><block s="reportUnicodeAsLetter"><l>0</l></block><block var="item"/></list></block></custom-block><block var="mode #"/></block><script><block s="doSetVar"><l>mode</l><block var="item"/></block><block s="doSetVar"><l>mode #</l><custom-block s="var %s"><block s="reportJoinWords"><list><block s="reportUnicodeAsLetter"><l>0</l></block><block var="item"/></list></block></custom-block></block></script></block></script></block></script></block><block s="doReport"><block var="mode"/></block></script></block-definition><block-definition s="sum %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportCombine"><block var="list"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></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="flat" ternary="true" hyperops="true" codify="false" inheritance="false" sublistIDs="false" id="2481"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAE3dJREFUeF7t3cGRWzkSRVG2zJA98meiLVDJAsX4I3tkhma2WlQtmJngA1Cn18IH/kGSl4uK6H8e/iNAgAABAgReLvDPy3e0IQECBAgQIPAQYENAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIcQLclAQIECBAQYDNAgAABAgQCAgIc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</pentrails><costumes><list struct="atomic" id="2482"></list></costumes><sounds><list struct="atomic" id="2483"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="105" y="-15" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="145,26,68,1" pen="tip" id="2488"><costumes><list struct="atomic" id="2489"></list></costumes><sounds><list struct="atomic" id="2490"></list></sounds><blocks></blocks><variables></variables><scripts><script x="138" y="339.9999999999999"><custom-block s="draw row A, bricks: %n ℓ: %n w: %n gap: %n"><l>6</l><l>30</l><l>10</l><l>10</l></custom-block></script><script x="148" y="258.33333333333337"><block s="gotoXY"><l>-100</l><l>0</l></block><block s="clear"></block></script><script x="145" y="100"><custom-block s="draw brick, length: %n width: %n"><l>200</l><l>10</l></custom-block></script><script x="249" y="495"><custom-block s="draw Brick wall with %n rows, bricks per row: %n brick length: %s brick width: %s gap thickness: %s"><l>6</l><l>6</l><l>30</l><l>10</l><l>5</l></custom-block></script></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="U2L12-brickwall" app="Snap! 7, https://snap.berkeley.edu" version="2"></media></snapdata>